摘要:本文为《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

mindspore.dataset.text 分词、Embedding 层的使用

⭐⭐⭐

1. 序列建模基石:从 RNN 到 LSTM

1.1 RNN (循环神经网络)

  • 核心思想:当前的输出不仅取决于当前的输入,还取决于上一时刻的隐藏状态 (Hidden State)。

  • 致命缺陷梯度消失 (Gradient Vanishing)梯度爆炸。当序列过长时,模型“记不住”开头的单词。

  • 考试直觉

    • 题目问“为什么 RNN 难以处理长文本?”,选 BPTT (随时间反向传播) 导致的梯度消失

1.2 LSTM (长短期记忆网络)

这是解决 RNN 短视问题的关键,HCIP 必考其内部结构。

  • 三个门 (Gates)

    1. 遗忘门 (Forget Gate):决定丢弃上一时刻的哪些信息(sigmoid 函数)。

    2. 输入门 (Input Gate):决定当前时刻存入哪些新信息。

    3. 输出门 (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 部分)。

  • 预训练任务 (必考)

    1. MLM (Masked Language Model):随机遮住 15% 的词,让模型去猜(完形填空)。这让 BERT 学会了双向上下文。

    2. NSP (Next Sentence Prediction):判断两个句子是否相邻。

  • 应用:BERT 不适合生成(写小说),适合理解(分类、问答、实体识别)。

3. 语音处理:让机器“听懂”人话

语音部分在 HCIP 中考得不深,但概念很杂。

3.1 语音识别 (ASR) 流程

  1. 预处理:预加重、分帧、加窗。

  2. 特征提取 (必考)MFCC (梅尔频率倒谱系数) 是最常用的语音特征。

  3. 声学模型 (Acoustic Model)

    • 传统:GMM-HMM (混合高斯-隐马尔可夫)。

    • 深度学习:DNN-HMMEnd-to-End (CTC / Attention)

  4. 语言模型 (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 上进行分布式训练。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐