Natural Language Processing (NLP)
自然语言处理 (NLP) 是 AI 的一个领域,使计算机能够分析、理解和生成人类语言,涵盖从 token 到 LLM 的技术。
自然语言处理(NLP)是人工智能(AI)的一个分支,它让计算机能够分析、理解并生成文本和语音中的人类语言。它的任务范围从找出句子中的姓名,到翻译整本书或进行对话;它结合了计算语言学、机器学习和深度学习。网页搜索、垃圾邮件过滤器、语音助手、手机键盘联想,以及基于大型语言模型(LLM)构建的聊天机器人,都依赖 NLP。
从规则到大型语言模型#
1954 年,乔治城大学与 IBM 的实验使用 250 个词和 6 条语法规则,将 60 多个俄语句子翻译成英语;Joseph Weizenbaum 的 ELIZA(1966)则通过匹配关键词并给出预设回复,模仿心理治疗师。手写规则难以应对真实文本的歧义和多样性,因此从 20 世纪 80 年代末开始,统计 NLP 转而从带注释的文本中学习概率:隐马尔可夫模型为词性打标签,而统计机器翻译则从数百万个翻译句对中学习。
神经网络在 2010 年代占据主导地位。Word2vec(2013)学会了将相关词语放在彼此附近的嵌入,而循环神经网络(RNN)则一次读取句子中的一个词。Transformer(2017)用自注意力取代了循环结构,使每个词能够并行关联其他所有词。BERT和 GPT 等预训练 Transformer 从无标签文本中学习语言,因此每项任务只需少量带标签数据;自 ChatGPT 于 2022 年 11 月发布以来,LLM 仅凭一条文字指令就能处理许多 NLP 任务。
NLP 系统如何表示文本#
现代 NLP 系统首先会将文本切分为词元,即由分词生成的完整词语或子词片段,再将每个词元映射到一个嵌入向量。神经网络(通常是 Transformer)会将这个序列转换为上下文向量,使每个词元的向量都能反映其邻近词元;随后,特定任务的输出层会读取这些向量:为整段文本生成一个标签、为每个词元生成一个标签、标出答案片段的起止位置,或生成新的词元。由于含义存在于向量中,词语不同的句子也可能彼此接近,all-MiniLM-L6-v2句子编码器就展示了这一点:
from sentence_transformers import SentenceTransformer
# A small sentence encoder maps each text to a 384-dimensional vector
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
query = "How do I reset my password?"
candidates = ["I forgot my login credentials", "How do I reset my router?"]
# Encode all texts, then compare the query with each candidate by cosine similarity
embeddings = model.encode([query, *candidates])
scores = model.similarity(embeddings[0], embeddings[1:])[0]
for text, score in zip(candidates, scores):
print(f"{score:.2f} {text}")改述句“我忘了登录凭据”与问题的匹配分数为 0.68,而“如何重置我的路由器?”虽然重复了问题六个词中的五个,分数却只有 0.53。语义搜索和检索增强生成(RAG)的检索步骤都使用同样的比较方式为文档排序。
常见 NLP 任务#
- 情感分析: 将评论、帖子或调查答复中的观点分类为正面、负面或中性。
- 命名实体识别(NER): 标记每个提到人物、组织、地点或日期的位置。
- 问答: 直接返回问题的答案,而不是文档列表。
- 文本摘要: 将文档浓缩成更短的文本,同时保留其要点。
- 文本生成: 一次生成一个词元来撰写新文本,这是聊天机器人和编程助手背后的任务。
计算机视觉中的 NLP#
人们也通过语言告诉计算机视觉模型要查找什么,而将 NLP 与视觉结合催生了能够读写图像相关内容的模型。视觉语言模型(VLM)可以回答有关照片的问题并撰写图像说明;CLIP则从 4 亿组图像说明配对中学到了图像和文本共享的嵌入空间。开放词汇检测器将类别列表作为文本接收:在Ultralytics YOLOE-26模型上调用 set_classes(["double-decker bus", "person"]) 时,模型会使用 CLIP 分词器对每个名称进行分词,并用 Apple 的 MobileCLIP2 文本编码器对其编码;检测器再将这些文本嵌入与图像区域进行匹配,以查找并分割从未用于训练的类别。
NLP 与相关术语#
- 自然语言理解(NLU): NLP 中关注含义的部分,例如用户的意图或代词指代什么。自然语言生成(NLG)负责生成文本,是另一个主要部分。
- 大型语言模型: 拥有数十亿参数的 Transformer 语言模型,通过提示执行许多 NLP 任务;与针对单一任务训练的小型模型相比,每次请求的成本更高。
- 语音识别: 将语音音频转换为文本,再由 NLP 模型进行理解。
- 光学字符识别(OCR): 将印刷体或手写文本的图像转换为字符,是 NLP 读取扫描文档前的第一步。










