【HUAWEI】HCIP-AI-MindSpore Developer V1.0 | 第五章 自然语言处理原理与应用(3 And 4) | 学习笔记

news/2025/1/12 14:38:14/

目录

第五章 自然语言处理原理与应用

3 自然语言处理应用系统

■ 对话系统

■ 任务型对话系统架构

■ 对话系统关键技术-自然语言理解

■ 对话系统关键技术-对话管理

■ 对话系统关键技术-自然语言生成

4 基于 MindSpore 的自然语言处理实践

■ 模型实现

▲ MindSpore中的NLP模型实现

▲ 常用组件-嵌入层

▲ 常用组件-LSTM层

▲ 常用组件-机器翻译指标BLEU

■ 应用案例

▲ 基于MindSpore的大规模预训练模型“盘古”

▲ 盘古模型结构

▲ 训练数据集

▲ 大规模自动并行

▲ 模型预测

阅读理解

古诗 & 对联生成

文本生成

第五章 测一测

缩略语表



第五章 自然语言处理原理与应用

3 自然语言处理应用系统

■ 对话系统

■ 任务型对话系统架构

■ 对话系统关键技术-自然语言理解

■ 对话系统关键技术-对话管理

■ 对话系统关键技术-自然语言生成

4 基于 MindSpore 的自然语言处理实践

■ 模型实现

▲ MindSpore中的NLP模型实现

MindSpore 框架中支持常用的 NLP 模型组件(算子、评估方法等)。

MindSpore 的模型集市 Model Zoo 中提供了经过深度优化的模型,方便使用者基于这些模型进行个性化的开发,包括:LSTM/GRU、 TextCNN、 Seq2Seq、Transformer、BERT、 GPT。

▲ 常用组件-嵌入层

mindspore.nn.Embedding

mindspore.nn.Embedding(vocab_size, embedding_size, use_one_hot=False, embedding_table="normal", dtype=mstype.float32,padding_idx=None)

vocab_size (int) : 词典的维度。

embedding_size (int) : 嵌入向量的维度。

use_one_hot (bool) :是否使用 one-hot 形式。默认值: False 。

embedding_table (Union[Tensor, str, Initializer, numbers.Number]) : 嵌入表的初始化方法。默认值: ‘normal’ 。

dtype (mindspore.dtype) :数据类型。默认值: mindspore.float32 。

输入

input (Tensor)-维度 (batch_size,input_length) 。 其中的元素应为整数并且不应大于词典维度。p

输出

output (Tensor)-维度 (batch_size,input_length,embedding_size) 。

使用示例

net = nn.Embedding(20000, 768, True)

input_data = Tensor(np.ones([8, 128]), mindspore.int32)

# Maps the input word IDs to word embedding.

output = net(input_data)

result = output.shape

print(result)

输出结果 (8, 128, 768)

▲ 常用组件-LSTM层

mindspore.nn.LSTM

mindspore.nn.LSTM(input_size, hidden_size, num_layers=1, has_bias=True, batch_first=False, dropout=0, bidirectional=False)

input_size (int) : 输入层维度。

hidden_size (int)隐藏层维度。

num_layers (int):LSTM 层数,默认值: 1 。

has_bias (bool) :是否使用偏置值。默认值: True 。

batch_first (bool):第一个维度是否为 batch_size. 默认值: False 。

dropout (float, int) :为每一层(除了最后一层)增加 Dropout ,默认值: 0 。

bidirectional (bool)是否为双向 LSTM. 默认值: False 。

mindspore.nn.LSTM 输入值

input (Tensor): 维度 (seq_len, batch_size, input_size) 或者 (batch_size, seq_len, input_size) 。

hx (tuple): 由两个 Tensors 组成 (h_0, c_0) ,数据类型 mindspore.float32 或 mindspore.float16 ,维度 (num_directions*num_layers,batch_size,hidden_size) 。

mindspore.nn.LSTM 输出值

output (Tensor):维度 (seq_len, batch_size, num_directions * hidden_size) 。

hx_n (tuple) :由两个 Tensors 组成 (h_n, c_n) ,维度 (num_directions * num_layers, batch_size, hidden_size) 。

使用示例

net=nn.LSTM(10,16,2,has_bias=True,batch_first=True,bidirectional=False)

input = Tensor(np.ones([3, 5, 10]).astype(np.float32))

h0 = Tensor(np.ones([1 * 2, 3, 16]).astype(np.float32))

c0 = Tensor(np.ones([1 * 2, 3, 16]).astype(np.float32))

output, (hn, cn) = net(input, (h0, c0))

print(output.shape)

输出结果: (3, 5, 16)

除此之外,还有 GRU 层 mindspore.ops.DynamicGRUV2

▲ 常用组件-机器翻译指标BLEU

BLEU ( Bilingual Evaluation Understudy ) 是评价机器翻译模型的常用指标。

mindspore.nn.BleuScorel

mindspore.nn.BleuScore(n_gram=4, smooth=False)

n_gram (int):n_gram 值,范围 [1, 4] 。默认值: 4 。

smooth (bool):是否使用平滑,默认值: False 。

使用示例

candidate_corpus = [['i', 'have', 'a', 'pen', 'on', 'my', 'desk']]

reference_corpus = [[['i', 'have', 'a', 'pen', 'in', 'my', 'desk'],

['there', 'is', 'a', 'pen', 'on', 'the', 'desk']]]

metric = BleuScore()

metric.clear()

metric.update(candidate_corpus, reference_corpus)

bleu_score = metric.eval()

print(bleu_score)

输出结果 0.5946035575013605

■ 应用案例

▲ 基于MindSpore的大规模预训练模型“盘古”

大规模预训练语言模型( Pretrained Language model , PLM )已成为自然语言处理新范式。具有数千亿个参数的 PLM ,如 GPT-3 ,使用少量的上下文学习,就在自然语言理解和生成方面表现出了强大的性能。

PanGu-α (盘古)基于 MindSpore 进行开发,该模型具有多达 2000 亿个参数,在 2048 个 Ascend 910 AI 处理器的集群上进行训练。训练并行度策略是基于 MindSpore Auto-parallel 实现的,该策略由五个并行维度组成,将训练任务高效地扩展到 2048 个处理器,包括数据并行、算子级模型并行、 Pipeline 模型并行、优化器模型并行重计算

为了增强 PanGu-α 的泛化能力,从广泛的领域收集了 1.1TB 高质量的中文数据,对模型进行预训练。

PanGu-α 模型在中文 NLP 任务的评估中表现出了卓越的语言学习能力,在小样本学习和生成任务方面尤为突出。

▲ 盘古模型结构

基础结构为单向 Transformer 模型的 Decoder 层

在堆叠的 Transformer 层之上加上了 Query 层,显式地进行预测,如下图所示:

▲ 训练数据集

通过多种来源的文本收集,经过数据清洗、筛选去重等手段建立了 1.1TB 的高质量中文文本语料库。经统计 Token 数量约为 250B 规模。

▲ 大规模自动并行

▲ 模型预测
阅读理解

阅读文章:株洲北站全称广州铁路(集团)公司株洲北火车站。除站场主体,另外管辖湘潭站、湘潭东站和三个卫星站,田心站、白马垅站、十里冲站,以及原株洲车站货房。车站办理编组、客运、货运业务。车站机关地址:湖南省株洲市石峰区北站路 236 号,邮编 412001 。株洲北站位于湖南省株洲市区东北部,地处中南路网,是京广铁路、沪昆铁路两大铁路干线的交汇处,属双向纵列式三级七场路网性编组站。车站等级为特等站,按技术作业性质为编组站,按业务性质为客货运站,是株洲铁路枢纽的主要组成部分,主要办理京广、沪昆两大干线四个方向货物列车的到发、解编作业以及各方向旅客列车的通过作业。每天办理大量的中转车流作业,并有大量的本地车流产生和集散,在路网车流的组织中占有十分重要的地位,是沟通华东、华南、西南和北方的交通要道,任务艰巨,作业繁忙。此外,株洲北站还有连接石峰区喻家坪工业站的专用线。株洲北站的前身是田心车站。

请问:株洲北站的前身是哪个车站?

回答:田心车站。

古诗 & 对联生成

:以枯藤、老树、夕阳作一首诗。

:藤影参差绕蓝桥,野花压枝低袅风,山风习习观残雪,村舍依依麦已深。

:上联:欢天喜地度佳节。

:下联:喜气洋洋迎新年。

文本生成

:有哪些办法可以教育猫?

:我觉得猫并不是不懂事的孩子,而是不懂事的孩子才会乱咬东西,所以,最好的办法就是给猫咪找个好的主人。楼主给它找家宠物店的话,在宠物店里买猫砂,不过,家里应该再放一个猫盆或者专用的宠物用盆。还有要提醒楼主一点的是,猫咪的牙齿问题也很容易使它们咬东西,所以,一定要给猫咪好好刷牙,定期的给猫咪洗澡,因为猫咪喜欢闻自己的身体的味道,所以,洗澡也是一种很好的办法。在给猫咪买吃的东西的时候,一定要注意,那些味道重的,可能就是猫咪误食的了,那就赶紧停止吃东西,或者把饭菜都吐出来,不然的话,就很可能误食一些它没有办法去辨识的东西,所以,为了防止这些东西误食,最好还是给猫咪买猫咪专用的,防止猫咪误食的。在给猫咪换洗干净的衣服或者是被子的时候,一定要用干净的猫砂盆,不要用热水,也不要用很烫的水,因为猫咪的身体素质很好,耐热能力也很强,所以,很容易伤到它们的身体。

第五章 测一测

 

缩略语表

ASR : Automatic Speech Recognition ,自动语音识别技术。

BERT : Bidirectional Encoder Representations from Transformers ,基于 Transformer的双向编码表示模型。

CNN : Convolutional Neural Network ,卷积神经网络。

CRF : Conditional Random Field ,随机场模型。

DM : Dialog Management ,对话管理。

GPT : Generative Pre-Training ,生成式预训练模型。

GRU : Gated Recurrent Unit ,门控循环单元。

HMM : Hidden Markov Model ,隐马尔可夫模型。

LSTM : Long Short Term Memory ,长短期记忆模型。

MEMM : Maximum-Entropy Markov Model ,最大熵马尔科夫模型。

NLG : Natural Language Generation ,自然语言生成。

NLP : Natural Language Processing ,自然语言处理

NLU : Natural Language Understanding ,自然语言理解。

RNN : Recurrent Neural Network ,循环神经网络。

TF-IDF : Term Frequency-Inverse Document Frequency ,词频 - 逆文本频率方法。

TTS : Text to Speech ,文字到语音。

SVM : Support Vector Machine ,支持向量机。

说明:本文内容来源于网络,仅作为学习用途,如有侵权,请联系作者删除。


http://www.ppmy.cn/news/1562533.html

相关文章

[Linux]Mysql9.0.1服务端脱机安装配置教程(redhat)

前言 本教程适用于在yum源不可用的LInux主机上安装Mysql的场景。 以redhat系主机做操作示例,debian系主机可参照步骤,将对应的rpm -ivh命令换成dpkg -i。 1. 官网下载安装包 https://dev.mysql.com/downloads/mysql/ 1.1 版本分类 MySQL Enterprise…

牛客网刷题 ——C语言初阶(5操作符)——BC90 矩阵计算

1. 题目描述:BC90 矩阵计算 牛客网OJ链接 输入NxM矩阵,矩阵元素均为整数,计算其中大于零的元素之和。 输入描述: 第一行为N M(N: 矩阵行数;M: 矩阵列数,且M,N10),接下来的N行为矩阵各行。 输出描述:一行,…

点赞系统设计(微服务)

点赞业务是一个常见的社交功能,它允许用户对其他用户的内容(如帖子、评论、图片等)表示喜欢或支持。在设计点赞业务时,需要考虑以下几个方面: 一、业务需求 点赞业务需要满足以下特性: 通用:…

《拉依达的嵌入式\驱动面试宝典》—计算机网络篇(一)

《拉依达的嵌入式\驱动面试宝典》—计算机网络篇(一) 你好,我是拉依达。 感谢所有阅读关注我的同学支持,目前博客累计阅读 27w,关注1.5w人。其中博客《最全Linux驱动开发全流程详细解析(持续更新)-CSDN博客》已经是 Linux驱动 相关内容搜索的推荐首位,感谢大家支持。 《…

基于华为ENSP的OSPF不规则区域划分深入浅出(5)

本篇技术博文摘要 🌟 OSPF不规则区域划分及其问题解决方案涉及多个技术手段,包括隧道、虚链路和路由重发布等。合理的网络设计和配置对于避免网络中出现的环路问题至关重要。通过多进程双向重发布等方式,能够有效地优化路由协议的互通性和网络…

人工智能之基于阿里云快速搭建Llama-3.2-11B-Vision-Instruct

人工智能之基于阿里云快速搭建Llama-3.2-11B-Vision-Instruct 需求描述 基于阿里云搭建图片生成文字模型,模型名称:LLM-Research/Llama-3.2-11B-Vision-Instruct使用上述模型输入图片生成文字,模型路径 业务实现 阿里云配置 阿里云配置如…

数据库事务:确保数据一致性的关键机制

1. 什么是数据库事务 定义:事务(Transaction)是数据库管理系统中的一个逻辑工作单元,用于确保一组相关操作要么全部成功执行,要么全部不执行,从而维护数据的一致性和完整性。重要性:在多用户环…

iOS实际开发中使用Alamofire实现多文件上传(以个人相册为例)

引言 在移动应用中,图片上传是一个常见的功能,尤其是在个人中心或社交平台场景中,用户经常需要上传图片到服务器,用以展示个人风采或记录美好瞬间。然而,实现多图片上传的过程中,如何设计高效的上传逻辑并…