产品经理的人工智能课 02 - 自然语言处理
- 1 自然语言处理是什么
- 2 一个 NLP 算法的例子——n-gram 模型
- 3 预处理与重要概念
- 3.1 分词 Token
- 3.2 词向量化表示与 Word2Vec
- 4 与大语言模型的交互过程
- 参考链接
大语言模型(Large Language Models, LLMs)是自然语言处理(NLP)领域的一个重要分支和核心技术,两者关系密切。
所以我们先了解一些自然语言处理的基础概念,为后续了解大语言模型做一些铺垫。
作为一篇“科普”性质的文章,我会尽量避免使用数学公式、抽象的表述。
1 自然语言处理是什么
自然语言处理(Natural Language Processing,NLP)是人工智能和语言学的一个交叉领域,致力于让计算机理解、生成和处理人类语言,这对应了自然语言处理的三个重要领域,分别是:
- 自然语言理解(Natural Language Understanding, NLU):给定文本输入,分析其中的情感、抽取意图、匹配语义、进行摘要
- 自然语言转换(Natural Language Transformation, NLT):把一段文本进行翻译、风格转换,把语音识别成文字等等
- 自然语言生成(Natural Language Generation, NLG):根据指令生成文字、形成互动聊天、生成语音等
我们可以看出大语言模型结合了自然语言理解、自然语言转换和自然语言生成。
2 一个 NLP 算法的例子——n-gram 模型
为了方便大家理解 NLP,这里举一个 NLP 算法的例子。
我们先引入一个问题:want i english food 和 i want english food 哪个更像人话?
解决思路:我们准备一大堆的“人话”,即语料库,并对语料库中的前后关系进行统计,例如 i 后边是 want 的数量是多少、eat 后边是 food 的数量是多少。计算一句话是人话的可能性,就转化成了计算这句话中每两个词都挨着的可能性。
这个图片就非常直观地体现了这个思想
图片来源:自然语言处理中N-Gram模型介绍
明显看出 i want to eat lunch、food to eat、i want to spend 都是比较像“人话”的表述。
回到最初问题,即:want i english food 和 i want english food 哪个更像人话?就是分别计算两句话成立的可能性。
以 i want english food 为例,就是计算几件事同时发生的概率:
- 句子以 i 开头
- i 后边是 want
- want 后边是 english
- english 后边是 food
- 句子以 food 结尾
算法名称 n-gram,上面这个就是 n=2,即二元语言模型的示例,如果让 n=3,就是考虑连续 3 个单词同时出现的概率。
n-gram 算法的一个常见应用是推荐词备选
图片来源:自然语言处理中N-Gram模型介绍
3 预处理与重要概念
NLP 方法,通常都以文本数据集开始,可以来自于电子邮件、用户创作的内容、文学作品等等。
首先需要对这些文本数据集进行“预处理”,形成语料库(复数:corpora) ,常见的预处理操作包括:
- 文本清理:例如去除表情符号、多余的空格、大小写统一等
- 词形还原:将单词还原为词典中的标准形式(lemma),更准确但计算成本较高。例如:
"running"
→"run"
- 分词:将文本分割成最小单元(如单词、子词或字符)的过程,这里的“最小单元”是 NLP 处理中的最小单元,例如:
"我爱自然语言处理"
→["我", "爱", "自然语言", "处理"]
- 词向量化表示:将文本转换为数值形式,以便模型能够处理
其中“分词”和“词向量化表示”是在大语言模型中也常常提到,这里做一些重点介绍
3.1 分词 Token
分词(Tokenization) 是自然语言处理(NLP)中的一项基础且关键的任务,目的是将连续的文本分割成有意义的单元(如单词、子词或字符)。
其中最小单元称为标记(Token) ,也叫“令牌”,大模型接口收费中提到的 Token 就是这个“标记”。
用来完成分词任务的算法或者程序,被称为分词器(Tokenizer) 。
图片来源:传统 NLP 快速回顾
每种 NLP 算法都会根据自己的需求设置分词方式,常见的分词器种类包括:
- 基于规则的分词器: 这种分词器使用预定义的规则来分割文本,例如根据标点符号或特定的词语
- 基于统计的分词器: 这种分词器使用统计模型来预测词元的边界,例如基于 n-gram 或隐马尔可夫模型
- 基于词典的分词器:通过预先构建好的词典,将文本中的词语与词典中的词条进行匹配,从而实现分词
顺嘴一提,huggingface 中的 Tokenizer 实际上不光光是分词器,还包含了词向量化和语句编码的功能。
3.2 词向量化表示与 Word2Vec
为什么需要词向量化呢?因为计算机比较擅长处理数字,所以需要把文本数据转换成计算机可以理解的数值形式。
词的向量化表示方法有很多,目前被大语言模型广泛应用的方法是 Word2Vec,是 Google 在 2013 年推出的一个用于生成词向量的方法。
Word2Vec 通过训练一个浅层的神经网络,把每个 token 会变成一个多维向量(50 维或 100 维比较常见),当我们对这些向量进行运算, 会发现
v
(
国王
)
−
v
(
男人
)
+
v
(
女人
)
=
v
(
女王
)
v(国王) - v(男人) + v(女人) = v(女王)
v(国王)−v(男人)+v(女人)=v(女王),也就是说这些词向量能够捕捉到词语之间的语义关系,例如相似性、类比关系等。
我们也可以想象,代表红灯的向量,在某些维度上一定与代表太阳向量有比较大的相似性(都是红色的发光物体),在另一些维度上和代表自行车的向量有较大的相似性(都和交通有关)。
4 与大语言模型的交互过程
大语言模型(Large Language Models, LLMs)是自然语言处理(NLP)领域的一个重要分支和核心技术。
大语言模型基于深度学习的模型,通过大规模文本数据训练,能够生成和理解自然语言。ChatGPT、Gemini、豆包、QWen 等等大模型,都属于这个范畴。
当我们与大语言模型交互时,你会输入一系列文字。
大模型首先会对你的输入文本进行预处理,形成 token,把每个 token 变成一个向量,甚至把整句话或者段落变成一个个向量,并在回话期间保存在模型中,然后进行一些计算。
如上文所述,词向量是可以捕捉词语之间的语义关系的,所以这个计算过程就有机会分析输入文本的语法结构、语义关系和上下文信息,从而理解你的意图。
而大语言模型的输出过程,实际上是预测下一个词语或句子的概率分布,根据概率给出对应的文本,最终形成完整的文本回复。
关于大语言模型的训练和算法选择和更多的原理,将在后续文章中介绍。
参考链接
传统NLP与大模型入门:基础概念篇
PyTorch 自然语言处理
自然语言处理中N-Gram模型介绍