【HCIP-AI 进阶之路(三)】NLP 与 语音处理深度解析:从 RNN 到 Transformer
《HCIP-AIEIDeveloper认证通关指南(三)》聚焦NLP与语音处理两大模块,解析RNN/LSTM序列建模原理、Transformer/BERT架构革新及语音识别关键技术。
摘要:本文为《HCIP-AI EI Developer 认证通关指南》系列的第三篇。NLP(自然语言处理)和语音处理在 HCIP 考试中合计占比约 20%。本文将深入解析 RNN/LSTM 处理序列数据的原理、Transformer/BERT 的架构革新,以及 语音识别 (ASR) 的关键流程,并结合 MindSpore 讲解文本数据处理的实战技巧。
0. 考点地图:NLP 与 语音考什么?
相比于 CV 的“所见即所得”,NLP 和语音处理更加抽象。考试重点在于理解模型如何处理“序列(Sequence)”数据。
|
核心领域 |
必考知识点 |
难度系数 |
|---|---|---|
|
传统 NLP |
Word2Vec (词向量)、TF-IDF、N-gram 模型 |
⭐⭐ |
|
序列模型 |
RNN 循环神经网络、LSTM 门控机制(输入/遗忘/输出门)、梯度消失问题 |
⭐⭐⭐⭐ |
|
预训练模型 |
Transformer (Self-Attention)、BERT (Masked LM)、GPT 的区别 |
⭐⭐⭐⭐⭐ (必考) |
|
语音处理 |
MFCC 特征提取、GMM-HMM vs 端到端 (CTC)、WER (词错误率) |
⭐⭐⭐ |
|
MindSpore NLP |
|
⭐⭐⭐ |
1. 序列建模基石:从 RNN 到 LSTM
1.1 RNN (循环神经网络)
-
核心思想:当前的输出不仅取决于当前的输入,还取决于上一时刻的隐藏状态 (Hidden State)。
-
致命缺陷:梯度消失 (Gradient Vanishing) 和 梯度爆炸。当序列过长时,模型“记不住”开头的单词。
-
考试直觉:
-
题目问“为什么 RNN 难以处理长文本?”,选 BPTT (随时间反向传播) 导致的梯度消失。
-
1.2 LSTM (长短期记忆网络)
这是解决 RNN 短视问题的关键,HCIP 必考其内部结构。
-
三个门 (Gates):
-
遗忘门 (Forget Gate):决定丢弃上一时刻的哪些信息(sigmoid 函数)。
-
输入门 (Input Gate):决定当前时刻存入哪些新信息。
-
输出门 (Output Gate):决定当前时刻输出什么。
-
-
细胞状态 (Cell State):LSTM 的“高速公路”,信息可以在上面无损传输,解决了长距离依赖问题。
2. NLP 的工业革命:Transformer 与 BERT
2.1 Attention Is All You Need
Transformer 抛弃了 RNN 的循环结构,完全基于 Attention (注意力) 机制。
-
Self-Attention (自注意力):计算句子中每个词与其他所有词的相关性。
-
Q (Query), K (Key), V (Value):考试常考这三个矩阵的物理含义。
-
-
Positional Encoding (位置编码):因为 Transformer 并行处理所有词,它不知道词序,所以必须手动加上位置信息。
2.2 BERT (双向 Encoder 表示)
-
架构:Transformer 的 Encoder 部分(GPT 是 Decoder 部分)。
-
预训练任务 (必考):
-
MLM (Masked Language Model):随机遮住 15% 的词,让模型去猜(完形填空)。这让 BERT 学会了双向上下文。
-
NSP (Next Sentence Prediction):判断两个句子是否相邻。
-
-
应用:BERT 不适合生成(写小说),适合理解(分类、问答、实体识别)。
3. 语音处理:让机器“听懂”人话
语音部分在 HCIP 中考得不深,但概念很杂。
3.1 语音识别 (ASR) 流程
-
预处理:预加重、分帧、加窗。
-
特征提取 (必考):MFCC (梅尔频率倒谱系数) 是最常用的语音特征。
-
声学模型 (Acoustic Model):
-
传统:GMM-HMM (混合高斯-隐马尔可夫)。
-
深度学习:DNN-HMM 或 End-to-End (CTC / Attention)。
-
-
语言模型 (Language Model):解决同音词歧义(如“期权” vs “弃权”),通常基于 N-gram 或 RNN。
3.2 评价指标
-
WER (Word Error Rate):词错误率。计算公式涉及 插入 (I)、删除 (D)、替换 (S) 的操作次数。WER 越低越好。
4. MindSpore 实战:文本数据处理
MindSpore 处理文本的核心模块是 mindspore.dataset.text。
4.1 分词与词表构建
考试可能会展示一段代码,问你这是在做什么。
import mindspore.dataset.text as text
# 1. 定义分词器 (Tokenizer)
tokenizer = text.BertTokenizer(vocab=vocab_content)
# 2. 构建词表 (Vocab)
vocab = text.Vocab.from_list(["home", "is", "behind", "world", "ahead"])
# 3. 查表 (Lookup) - 将单词转为 ID
lookup_op = text.Lookup(vocab)
4.2 Embedding 层
在定义网络时,如何将 ID 转为向量?
import mindspore.nn as nn
class MyNet(nn.Cell):
def __init__(self):
super(MyNet, self).__init__()
# vocab_size: 词表大小, embedding_size: 向量维度
self.embedding = nn.Embedding(vocab_size=1000, embedding_size=128)
self.lstm = nn.LSTM(input_size=128, hidden_size=64)
5. 本章高频真题演练 (NLP 篇)
Q1 (单选):在 LSTM 网络中,用于控制上一时刻的细胞状态 $C_{t-1}$ 有多少信息保留到当前时刻 $C_t$ 的是哪个门? A. 输入门 (Input Gate) B. 输出门 (Output Gate) C. 遗忘门 (Forget Gate) D. 更新门 (Update Gate)
答案:C。解析:遗忘门负责决定“丢弃”或“保留”旧信息。
Q2 (多选):关于 BERT 和 GPT 模型的区别,以下描述正确的有哪些? A. BERT 采用 Transformer 的 Encoder 结构,GPT 采用 Decoder 结构 B. BERT 是双向语言模型,GPT 是单向自回归语言模型 C. BERT 适合做文本生成任务,如机器翻译 D. GPT 适合做理解类任务,如情感分析
答案:AB。解析:C 错,BERT 适合理解,不适合生成;D 错,GPT 擅长生成。这是考试中非常经典的对比题。
Q3 (判断):在语音识别中,MFCC 特征提取是利用人耳对高频声音更敏感的特性设计的。
答案:错误。解析:反了! 人耳对低频声音更敏感,Mel 滤波器组在低频分布密,高频分布疏,正是为了模拟这一特性。
6. 下篇预告
CV 和 NLP 两座大山已经翻越,接下来的两篇将聚焦于“工具与平台”。
下一篇:《HCIP-AI 进阶之路(四):MindSpore 高阶开发与分布式训练》 我们将深入华为自研框架 MindSpore 的核心特性,如自动微分、动静图切换以及如何在 Ascend 910 上进行分布式训练。
更多推荐


所有评论(0)