
车万翔 郭江 崔一鸣
自然语言处理被誉为“人工智能皇冠上的明珠”。深度学习等技术的引入为自然语言处理技术带来了一场革命,尤其是近年来出现的基于预训练模型的方法,已成为研究自然语言处理的新范式。本书在介绍自然语言处理、深度学习等基本概念的基础上,重点介绍新的基于预训练模型的自然语言处理技术。本书包括基础知识、预训练词向量和预训练模型三大部分:基础知识部分介绍自然语言处理和深度学习的基础知识和基本工具;预训练词向量部分介绍静态词向量和动态词向量的预训练方法及应用;预训练模型部分介绍几种典型的预训练语言模型及应用,以及预训练模型的最新进展。除了理论知识,本书还有针对性地结合具体案例提供相应的PyTorch代码实现,不仅能让读者对理论有更深刻的理解,还能快速地实现自然语言处理模型,达到理论和实践的统一。本书既适合具有一定机器学习基础的高等院校学生、研究机构的研究者,以及希望深入研究自然语言处理算法的计算机工程师阅读,也适合对人工智能、深度学习和自然语言处理感兴趣的学生和希望进入人工智能应用领域的研究者参考。
2022年四月第48本书 未知率30% 预计阅读速度5000字/分钟 实际阅读速度3000字/分钟 目前研究的方向是如何用人工智能辅助阅读。 对于儿童语言学习机制的研究太少,现有的算法与人脑的差距依然很大。 本书需要一定专业背景才能阅读。 >> 本书包括基础知识、预训练词向量和预训练模型三部分: 基础知识部分介绍自然语言处理和深度学习的基础知识和基本工具; 预训练词向量部分介绍静态词向量和动态词向量的预训练方法及应用; 预训练模型部分介绍几种典型的预训练语言模型及应用,以及预训练模型的最新进展。 >> 所谓模型预训练(Pre-train),即首先在一个原任务上预先训练一个初始模型,然后在下游任务(也称目标任务)上继续对该模型进行精调(Fine-tune),从而达到提高下游任务准确率的目的。 >> 卷积操作输出的结果还可以进行进一步聚合,这一过程被称为池化(Pooling)操作。 >> 这好比人们在小学、初中和高中阶段会学习数学、语文、物理、化学和地理等基础知识,夯实基本功并构建基本的知识体系(预训练阶段)。而当人们步入大学后,将根据选择的专业(目标任务)学习某一领域更深层次的知识(精调阶段)。
《自然语言处理:基于预训练模型的方法》拆解 作者:车万翔、郭江、崔一鸣 一、一句话概括 现代自然语言处理的关键转变,是从“为每个任务单独设计特征和模型”走向“先在海量文本上学习通用语言表示,再用少量任务数据进行适配”,从而让知识在不同任务之间迁移。 二、核心逻辑 全书分为三层: 1. 基础知识:自然语言处理的任务、难点、评价方法、工具和神经网络基础。2. 预训练词向量:从Word2vec、GloVe等静态表示,发展到能够根据上下文改变词义的动态表示。3. 预训练语言模型:介绍GPT、BERT及其应用、优化、压缩、长文本处理、生成和多模态融合。 整体路径可以概括为: 文本数值化 → 神经网络学习局部任务 → 无监督预训练通用表示 → 下游任务微调 → 多语言、多模态与知识融合 本书的核心思想是:自然语言任务虽然形式不同,却共享大量词法、句法、语义和常识知识,因此可以通过预训练实现知识复用。 三、核心内容 1. 自然语言处理的难点来自语言的不确定性 语言并不是一套完全精确的规则。同一个词在不同上下文中可能含义不同,同一句话也可能存在多种结构和理解方式。 主要难点包括: 一词多义;指代和省略;句法歧义;上下文依赖;隐喻、反讽和情绪;常识与背景知识;不同领域和语言差异;输入错误与口语表达。 因此,NLP不能只靠词典查找或固定规则,而要根据上下文和数据进行概率判断。 2. NLP任务构成从基础分析到语言生成的体系 常见任务包括: 分词、词性标注和命名实体识别;句法分析和语义分析;文本分类与情感分析;信息抽取;问答与阅读理解;机器翻译;文本摘要;对话和文本生成。 基础任务为上层应用提供结构信息,但预训练模型的发展使许多任务可以在统一模型上完成,不再需要完全独立的技术管线。 3. 文本必须先转化为数值表示 计算机不能直接理解文字,需要将词、句子或文档转换为数值。 早期方法包括: 独热编码;词袋模型;N-gram;词频;TF-IDF;人工设计的词法和句法特征。 这些方法简单、可解释,在数据有限和轻量级任务中仍然有效,但难以充分表达词语之间的语义关系及上下文变化。 4. 评价指标必须与任务目标匹配 不同NLP任务需要不同评价方式。 分类任务常用准确率、精确率、召回率和F1值;序列标注通常按实体或标签计算F1;机器翻译和文本生成可以使用BLEU等指标。 单一自动指标并不等于真实质量。生成文本可能在字面上与参考答案不同,却表达相同含义;也可能获得较高指标,却事实错误或不够自然。 高风险或开放式生成任务仍需要人工评价、事实核验和多维指标。 5. 数据集和工具是NLP实验的基础设施 书中介绍NLTK、LTP、PyTorch及多种公开语料和任务数据集。 工具集负责分词、标注、数据处理和模型实现,公开数据则提供训练和比较基准。 使用数据时需要关注: 训练、验证和测试集划分;标注规范;类别不平衡;数据是否包含泄漏;领域和时间分布;授权、版权和隐私;评价集是否代表真实应用。 模型能力与数据质量无法分开讨论。 6. 多层感知器学习非线性特征组合 多层感知器由线性层和非线性激活组成,可以学习输入特征之间的复杂关系。 它适合处理固定长度的向量,但无法天然建模词序和长距离依赖。用于文本时,通常需要先把句子转换成固定维度表示。 MLP仍是许多模型输出层和特征融合模块的基础。 7. CNN擅长提取局部文本模式 卷积神经网络使用不同宽度的卷积核,在句子中识别类似N-gram的局部模式。 它可以捕捉“不太满意”“非常推荐”等与分类相关的短语,并通过池化获得固定长度表示。 CNN计算并行度高,适合文本分类,但单独使用时较难处理很长距离的依赖关系。 8. RNN通过顺序状态建模文本 循环神经网络按照词语顺序处理输入,并把前面的信息保存在隐藏状态中。 LSTM和GRU通过门控机制缓解普通RNN的梯度消失问题,曾广泛用于标注、翻译和生成任务。 RNN能够表示顺序,却难以完全并行,长文本中的早期信息也可能逐渐丢失。这为注意力机制和Transformer的发展提供了动力。 9. 注意力机制允许模型选择相关信息 注意力机制让模型在处理当前任务时,动态计算输入不同部分的重要程度。 在机器翻译中,生成目标词时可以重点关注源句中相关的词,而不必把整个句子的所有信息压缩进一个固定向量。 注意力提高了长距离信息利用能力,也为Transformer提供了核心机制。 但注意力权重不一定等同于完全可靠的人类解释,不能简单把它当作模型决策原因。 10. 静态词向量把语义编码进连续空间 Word2vec通过上下文预测学习词向量。语义或用法相近的词,在向量空间中通常距离较近。 GloVe则利用全局词语共现统计学习表示。 相较独热编码,词向量具有以下优势: 维度更低;能表示词语相似性;可以迁移到其他任务;减少人工特征工程;为神经网络提供更好的初始表示。 但每个词通常只有一个固定向量,无法区分同一个词在不同语境中的含义。 11. 动态词向量根据上下文改变表示 例如“苹果很好吃”和“苹果发布了新产品”中的“苹果”含义不同,静态词向量却使用同一个表示。 动态词向量通过语言模型同时考虑上下文,为每次出现的词生成不同向量。 ELMo等方法使用双向语言模型产生上下文化表示,标志着词表示从“查表”走向“根据句子计算”。 动态表示显著提高了多义词和上下文信息的建模能力。 12. 预训练语言模型把通用知识迁移到下游任务 预训练首先在大规模无标注文本上学习语言规律,再在标注数据较少的具体任务上微调。 它解决了两个长期问题: 高质量人工标注数据昂贵;不同任务重复学习大量相同语言知识。 预训练模型可能学习词法、句法、语义和部分世界知识。下游任务只需增加较小的输出模块,并对模型参数进行适配。 这一范式成为现代NLP的基础。 13. GPT采用自回归语言建模 GPT按照从左到右的顺序,根据前文预测下一个词。 这种自回归目标天然适合文本生成,因为训练方式与生成过程一致。 早期GPT展示了“通用预训练+任务微调”的能力,后续大规模版本进一步发展为通过提示完成多种任务。 其局限包括训练成本、事实幻觉、上下文限制,以及生成结果对提示和训练数据高度敏感。 14. BERT通过双向上下文学习表示 BERT使用Transformer编码器,并通过掩码语言模型等任务进行预训练。 训练时,一部分词被遮盖,模型需要根据左右两侧上下文恢复原词。这使每个位置能够同时利用前后信息。 BERT特别适合理解型任务,例如: 文本分类;命名实体识别;句子关系判断;阅读理解;信息抽取。 它通常需要针对下游任务微调,而不是像自回归模型那样直接连续生成长文本。 15. 微调把通用模型适配为专用模型 预训练模型并不知道某个任务的具体标签和评价标准,因此需要适配。 常见方式包括: 把模型作为固定特征提取器;微调整个模型;只训练部分层或任务头;使用领域语料继续预训练;通过知识蒸馏得到小模型。 微调数据少时容易过拟合,学习率、训练轮次、随机种子和数据划分都会显著影响结果。 16. 模型优化不仅是提高准确率 预训练模型参数多、计算量大,实际应用还要考虑: 推理延迟;显存和内存;吞吐量;能耗;移动端和边缘设备部署;训练成本;维护复杂度。 模型蒸馏让小模型学习大模型的输出或中间表示,以较少参数保留部分性能。剪枝、量化和参数共享也可以降低资源消耗。 更大的模型并不总是更适合真实产品。 17. 长文本处理面临计算与信息选择问题 标准Transformer的自注意力计算量会随序列长度快速增长,直接处理长文档成本很高。 解决思路包括: 截断或滑动窗口;分段编码与层次化聚合;稀疏注意力;先检索相关片段再进行建模;压缩历史表示;采用专门的长文本架构。 长文本的难点不只是装入更多字符,还在于识别哪些信息与当前任务真正相关。 18. 生成模型需要同时控制流畅、相关和真实 文本生成任务包括对话、摘要、翻译和开放式写作。 语言模型可以生成流畅文本,但流畅不等于事实正确。训练目标通常奖励词序概率,并不会天然验证现实世界中的真实性。 生成系统还需要结合: 检索和外部知识;事实一致性检查;重复与多样性控制;安全和偏见过滤;人工反馈;使用场景限制。 这也是今天大语言模型应用仍然面对的核心问题。 19. 多语言预训练实现跨语言知识迁移 多语言模型在多种语言文本上联合预训练,使不同语言的表示进入共享空间。 高资源语言学到的知识可以帮助低资源语言任务,减少每种语言都从头训练的成本。 但不同语言的数据规模差异可能导致模型偏向高资源语言,分词方式和文化背景也会影响公平性。 跨语言能力不能只用少数主流语言评价。 20. 多模态与知识融合扩大语言模型能力 语言理解往往需要图像、语音、视频和结构化知识。 多模态模型把不同媒体映射到共同表示空间,可用于图文检索、图片描述和视觉问答。 知识融合则通过知识图谱、数据库或外部文档补充模型信息,增强专业性和可验证性。 这条路线已经发展为今天的多模态大模型和检索增强生成系统。 四、本书最值得关注的核心观点 本书最值得关注的观点是: 预训练的本质是把“从大量无标注数据中学习通用知识”和“用少量标注数据解决具体任务”分开。 传统方法为每个任务独立准备特征和模型,大量语言知识被反复学习。预训练模型则先用大规模文本学习通用表示,再通过微调、任务头或提示适配不同任务。 这种分工带来了强大的迁移能力,也改变了NLP研发方式: 竞争重点从单个任务模型,转向基础模型、数据、适配方法和评估体系。 但通用表示并不等于通用可靠性。模型学到的是数据中的统计规律,也会继承其中的错误、偏见和缺失。 五、一段话总结 《自然语言处理:基于预训练模型的方法》从文本表示、NLP任务、评价指标、工具与数据集出发,介绍MLP、CNN、RNN和注意力等神经网络基础,再梳理Word2vec、GloVe静态词向量向ELMo等动态表示的演进,最后重点讲解GPT、BERT及其微调、长文本处理、蒸馏压缩、文本生成、多语言、多模态和知识融合。全书展示了NLP范式的核心转变:先利用海量无标注文本学习通用语言知识,再用较少任务数据完成适配,从而在不同任务之间复用能力。虽然书中模型主要对应大语言模型全面爆发前的阶段,但Transformer、上下文化表示、预训练迁移、模型压缩和外部知识融合等思想仍是理解现代NLP系统的关键基础。
生成式人工智能gpt的前世今生 1. gbt大模型的直观理解 朋友问了我个问题,我知道大模型就是大数据,这些大数据究竟是如何生成这些内容的?为什么需要这么多数据? 首先,我跟他解释,大模型就是一个分层结构,每层用到了矩阵运算,每一个矩阵都是相当大的维度,然后总共加起来就有这么多数据。 但是他又问,从直观上如何理解呢? 我想,这有点像数据压缩一样,学习训练的样本都是千亿级的数据,训练出来的大模型现在最小是70亿,效果还不错,能够在客户端上面运行。所以从数据容量上来看,是93%的压缩率。但是另外一个层面上,它的数据又不像压缩包一样是完全恢复的,而是经过一定的学习,然后能够输出不同的内容,就像是他真的学习过这些知识一样,融汇到脑海里,有自己的理解了。这个就是本文续论里面提到的,现在的机器学习经过了三个阶段的发展:以前的运算智能,感知智能,和现在的认知智能。 上一本《生成式人工智能》提到,人的认知模型是分层的,从最底层的数据,到信息,到知识,逻辑,哲学,信仰。现在的人工智能已经到了逻辑认知层次,他能回答问题,归纳中心思想,生成文章,生成图片,视频等等,甚至比一般人都要做的好。 2.自然语言处理的发展阶段 本书中更侧重于文本相关的人工智能领域,也就是自然语言处理nlp,这就是chatgpt背后的技术。它的发展同样,也经历两个阶段,一是特征提取工程,二是现在的序列到序列模型。 1) 特征提取工程就是依赖人类的经验,提取语言的某些特征,包括语法语义等等,然后用这些特征去训练模型。 2) 序列到序列模型,就是把模型只依赖机器自动提取特征,从深度学习之后开始就是这类的,一是因为人类经验是有限的,二是深度学习更适合机器去学习。 nlp序列到序列的模型主要经历了三种技术,rnn CNN和现在的transformer模型。 rnn是首个nlp上有效的Deep learning模型,它用于翻译任务,情感分类等等都不错,但它很大的问题就是,无法并行,并且无法处理长文本。 CNN并行度高一些,但同样无法处理长文本。 transformer模型用attention获取长文本的自注意力,并且能够并行处理。 从2017年谷歌提出之后,就是它Transformer时代了,后面各家以此为基础,都是在解决大语言模型预训练的问题,从有监督到无监督到自监督,用少量人工标注的小样本训练奖励模型,然后用大量的文本网上的比如说维基百科等等的文本,自监督训练,减少人工,从而使llm大语言模型成为可能。 3. nlp的基本步骤 一是标记化tokenization,就是把这些输入语言文本变成序列号, 二是embedding嵌入,也就是把语语言token转换为计算机表示,现在一般是词向量。另外,为了保留位置信息,还会加入位置嵌入步骤。 三是transformer,就是Attention加上前向反馈。 四是是线性化以及输出。 4.学习新领域的心得体会 经过这段时间的学习,总结一下学习一个新领域的步骤: 一是去看看大神的博客,写的不错的文章,对这个领域有一些直观的了解。 二是找这些专业的书籍来了解,来更深入的了解一些细节。 三是找例子,跟着跑一遍pytorch模型训练,从而对整个步骤有更清楚的了解,消除模糊。 最后,接下来有几个方面去深化: 一是去使用chat gpt的工具,这是谁都可以用的,主要作用是提高工作效率,有些是办公,有些是内容创作的工具。 二是继续深入gpt每个模块以及算子的优化。 三是可以了解一下AI工具方面的公司和行业情况,看看哪些有前途? 总的来说,本书专业度高,结合我上述提到的一些资源,可以基本入门gpt。不过,本书着重于bert自编码模型,对现在chatgpt为首的自回归模型提到不多。
读过的国内自然语言处理领域最好的一本书。内容全面,知识点和概念较新,紧跟学术前沿;语言通俗易懂又不失严谨性,概念解释言简意赅,一针见血;表述方式丰富,图标、数学公式和代码一应俱全,适合相关专业各个层次的读者阅读学习。
自然语言在预训练模型中应用的百科全书,学术氛围浓厚,适合科班人员专注推理公式,同时又提供了大量的pytorch示例。既上接学术,又下接落地。不需要对本书中所有的模型都要细细研读,通读理解后,需要形成的是自上而下的这种预训练模型的知识体系,然后把它当工具书,当遇到具体场景问题时,再来细细研究。
近来 ChatGPT 如此火热,你一定非常想知道这将要革命生产力的大语言模型、生成式 AI 浪潮到底是什么魔法?对于有一定技术基础但非自然语言处理领域的同学来说,这是我最推荐的一本书,作者深入浅出、简洁明快地讲清楚了生成式预训练(GPT)模型的所有关键技术基础,将理论、学界演进、业界应用、python 实践等融汇得很好,而且在 NLP 书籍里面算内容较新的。
自然语言处理——研究人类的甜言蜜语[旺柴] 本书当然强烈推荐了,内容详实并且当下NLP领域的研究热点都有涉及,可以说是一本全面介绍预训练语言模型方法的基础书了,值得反复学习。
在 2023 年看来这本书已经过时了,后半段以bert为主,在过于因为相对gpt较小大小和谷歌影响力还有更加擅长常规测试,学术界很喜欢,但是现在都是自回归的天下.已经没人去用这些.各种 transformer 的介绍也过时,因为基本没人用,实际上各种魔改有百种,但是大规模应用和有影响力论文都一概不用, 本书更多是新时代前所有的 nlp 的总结介绍
这本书适合通读一遍,再拿起来当工具书还是不错的。
看过很多NLP的书,这本书真正让我从0到1了解复杂的机器学习算法。相对一些书籍上来堆概念,希望劝退一些读者好让自己竞争少一些,这本书更像是讲故事一般解释内在机理,先了解原理,再深入理解公式和训练方法,会事半功倍