大语言模型,作为自然语言处理领域火热的方向,如今已经真正“破圈”成为了科技界的明星。特别是其中的佼佼者——ChatGPT,每次重大更新都能引发一场科技界的狂欢,轻易霸占各大社交媒体的热搜榜。
这一现象并非偶然。随着人工智能技术的飞速发展,大语言模型逐渐展现出了强大的应用潜力,其出色的对话生成和语义理解能力,赢得了广大用户的喜爱,并逐渐扩展到了教育、金融、医学、法律、娱乐、客服等多个领域,成为了人工智能领域的一颗璀璨明星。
然而,对于许多没有NLP背景的人来说,大语言模型的技术原理和应用方式可能并不容易理解。尽管有大量的专业论文和文献可供参考,但对于初学者来说,其中的专业术语和复杂概念读起来像天书,网络上关于大语言模型的解读文章也往往过于碎片化,难以形成系统的知识体系。
不过不用担心,中科院为初学者准备了一篇大语言模型综述,从历史到发展,再到原理、应用、缺点和未来方向,试图用更易理解的方式讲解LLMs。
赶紧来看看吧,让我们一起揭开大语言模型的神秘面纱!
论文标题:
History, Development, and Principles of Large Language Models—An Introductory Survey
公众号「夕小瑶科技说」后台回复“History”获取论文pdf。
语言模型的演变:从统计语言模型到大语言模型
为了更好地理解LLMs, 本节将按照语言模的发展阶段,介绍统计语言模型(SLMs)、 神经语言模型(NLMs)、预训练语言模型(PLMs)和LLMs。下图提供了语言模型发展历史的可视化地图。
1. 统计语言模型(SLMs)的起源与原理
20世纪90年代,统计语言模型作为数学模型的一种,开始应用于自然语言的概率统计特性。这些模型的核心在于计算一个句子在文本中出现的概率。例如,对于句子“I am very happy”,模型计算出每个单词出现的条件概率,并通过最大似然估计法来估算这些概率。
其中代表单词”I”出现的概率,表示在”I”出现的条件下出现”am”的概率。而”I am”同时出现的概率为。
那么如何计算每个单词发生的条件概率?答案在于最大似然估计,它能够在样本量足够大的情况下,用频率替代概率进行估计,如公式3所示:
其中,表示在训练集中子序列出现的次数,这样可以计算每个词作为第个词在前个词给定的条件下的概率。然后选择与最高概率相关的词作为第个词。这种方法通常被称为n-gram模型。
这种方法很简单,符合人类直觉,但它受限于存储空间和计算能力,通常只能处理前1或2个单词的上下文,较短的词序列限制了模型的准确性。
2. 神经语言模型(NLMs)的进步与词向量的重要性
神经语言模型(NLMs)运用神经网络来预测单词序列中后续单词的概率,有效克服了统计语言模型因n值较小而带来的局限性,并能轻松处理更长的序列。
NLMs的核心在于词向量的应用。词向量能将单词转化为数值向量,使得语义相近的单词在向量空间中相互靠近,从而使计算机具备了与人类相似的归类能力,比如通过词向量的夹角大小,比较“猫”、“狗”、“树”之间的关系,哪两个更相近。
Word2Vec是一种广受欢迎的词向量计算工具,它通过神经网络将单词转化为密集的数值表示。在NLMs中,每个单词的概率仅依赖于其前面的n-1个单词。模型通过输入层、隐藏层和输出层的结构来预测下一个单词。这一过程可以通过下图进行形象展示:
3. 预训练语言模型(PLMs)
预训练语言模型(Pre-trained Language Models,PLMs)在大规模未标记文本中进行了预训练,从而掌握了语言的基本结构,包括词汇、语法、语义和逻辑。当这些模型应用于特定的下游任务时,通过微调可以进一步提升性能。这种“预训练+微调”的学习模式让模型能够迅速且高效地掌握特定技能。
为了更好地理解这一概念,我们可以借鉴武侠小说中的比喻。一个想要成为武术大师的人,首先需要打下坚实的内功基础。这就像是PLMs的预训练阶段,通过大量的技巧训练来建立基础。有了这个坚实的基础后,他们就可以更快速、更有效地学习并掌握特定的技能,如剑术或掌法,这就像是模型在下游任务上的微调过程。
众多关于预训练语言模型的研究都是基于这一学习范式,其中还涉及了不同的模型架构,如GPT-2和BERT等。这些架构在预训练阶段帮助模型更好地捕捉语言结构,为后续的微调阶段提供了坚实的基础。
4. 大型语言模型(LLMs)
LLMs的出现引领了语言模型的新纪元。这些模型在庞大的文本语料库上进行训练,参数数量高达数百亿甚至更多。
LLMs的核心目标是让机器能够精准理解并执行人类的指令,同时恪守人类的价值观。与之前的PLMs不同,LLMs将预训练和对齐人类价值观两个阶段相结合,而不是局限于特定领域。这种转变使得LLMs展现了出色的通用性和适应性。
随着模型规模、数据集容量和计算能力的显著增长,LLMs在各种任务上的性能都得到了极大的提升,展现出超越小模型的强大能力。例如,GPT-3能够利用上下文信息来增强解决问题的能力,而GPT-2在这方面则相对较弱。
LLMs的参数数量通常庞大到超过千亿,训练数据也从几百GB扩展到几TB。以GPT-2为例,其最大版本拥有15亿个参数,并使用40GB的文本数据进行训练。而GPT-3的最大版本更是拥有惊人的1750亿个参数,并使用了570GB的文本数据进行训练。这些数字直观地展示了LLMs与PLMs在参数数量和训练数据量上的巨大差异。
推动大型语言模型发展的关键因素
1. 数据多样性的影响
LLMs的发展离不开数据多样性的重要推动作用。随着互联网数据源的激增,模型训练数据包含了丰富的语言和世界知识。数据的质量和来源对LLMs的有效性和能力有着显著的影响。
早期的研究通常只在单一领域(如新闻文章、维基百科或小说书籍)上训练语言模型。然而,随着网络上各种各样的文本语料库的出现,研究者开始转向在多领域文本上训练模型,这增强了模型的泛化和多任务处理能力。例如,Meta AI的开源大型语言模型LLaMA就是在公开可获取的数据集上进行训练,包括CommonCrawl、C4、Github、Wikipedia、Books、ArXiv和StackExchange等。
2. 计算能力的提升
LLMs作为具有大量参数的神经网络模型,其规模和效能的显著提升与深度学习技术的进步密切相关。同时,它们也因其庞大的计算需求而带来了严峻的挑战。
计算能力是指计算机系统执行计算任务的能力,通常以每秒浮点运算次数来量化。自2012年以来,全球AI训练所使用的计算量呈指数级增长,平均每3.43个月翻倍,增长了300,000倍,远超计算能力增长的速度。
幸运的是,硬件创新者如Nvidia不断推出如GPU、TPU和NPU等具有更强计算能力的专用设备,使得LLMs能够快速训练。例如,OpenAI在2020年5月发布的GPT-3模型,如果在单个NVIDIA Tesla V100 GPU上训练,估计需要355年。而使用1024个A100 GPU,研究人员估计可以在34天内完成GPT-3的训练。这清楚地表明了强大硬件在LLMs的发展和训练中的不可或缺性。
3. 算法创新的驱动作用
算法创新是推动LLMs发展的关键驱动力,它塑造了模型的结构和功能。从最初基于规则和统计的方法,到后来基于深度学习的方法,语言模型的算法不断演进和改进。
目前,所有LLMs都基于transformer架构,该架构采用自注意力机制。这种架构相比传统的循环(RNN)和卷积神经网络(CNN),能够实现完全并行计算,并且能够有效捕捉长距离依赖。
此外,transformer还有许多迭代和改进版本,如Transformer-XL、XLNet和ALBERT等,每个版本都针对特定方面进行优化。这些变体旨在增强注意力机制,完善预训练目标,并减少参数数量,从而在不同方面推进transformer架构的发展。
大型语言模型的原理解析
在本章节中,将深入探讨大型语言模型(LLMs)的基本原理。这些模型通过深度神经网络理解和生成语言的统计模式和语义细微差别,从而实现对人类语言的处理、理解和生成。接下来将以GPT-3模型为例,详细解析LLMs的工作原理。为了简化和说明目的,仅展示了 2 个Transformer层,实际模型由12个Transformer 层组成。
1.输入
GPT模型架构以一系列符号表示(,,)作为输入。该序列包含个单词,也称为token,GPT-3明确地将输入序列长度定义为2048个单词。
2. 编码
将单词转化为向量的目的是为了让机器学习模型能够处理数字输入。在输入嵌入层,首先会构建一个全面的词汇表,涵盖所有可能的单词,并为每个单词分配一个在词汇表中独一无二的位置。例如,“a”可能是第一个词,对应位置0,“an”可能是第二个词,对应位置1,依此类推。对于GPT-3模型,它的词汇表包含了50,257个单词。
接下来,每个单词都可以转换成一个50,257维的one-hot向量。在这个向量中,只有一个位置的值是1,代表该单词在词汇表中的位置,而其他位置的值都是0。例如,“a”表示成[1,0,0,0,…],而“an”表示成[0,1,0,0,0,…]。整个输入序列被编码为一个矩阵,记作。
3. 嵌入层
这种one-hot向量存在高度稀疏的问题,大部分元素都是0,导致空间效率低下。为了解决这个问题,输入嵌入层的下一步使用一个嵌入矩阵将50,257维的输入向量压缩成更短的数值向量。在GPT-3中,这个压缩后的向量的长度被设置为12,288。这种方法将有关词义的 信息压缩到更紧凑的空间中,有效地减小了向量的长度。表示为,
其中。
4. 位置编码
在序列理解和生成中,元素的位置和顺序非常重要。例如,句子“He is a good person and does not do bad things”与“He is a bad person and does not do good things”之间的微小词序变化导致了完全不同的语义含义。在GPT模型的架构中,位置编码层补充了输入嵌入层,帮助transformer层理解数据中的位置和序列线索。
GPT-3使用以下实现进行位置编码:
其中是句子中当前单词的位置,例如在句子“A survey of Large Language Model”中,是嵌入向量的长度12,288,是维度。
为什么要引入如此复杂的位置编码呢?最初,对于长度为T的文本,位置编码的基本方法是简单计数,即使用[0, 1, 2...T-1]来表示文本中每个单词的位置。但这种方法存在缺陷:在长句子中,后面单词的位置编码值远大于前面单词的,与单词嵌入结合时,这种差异会引入数值偏差。
为了解决这个问题,有人考虑归一化,即将每个位置编码除以T,使其范围限制在[0,1]内。但这样做又带来了新问题:位置值现在与文本长度相关,导致短文本和长文本中相邻单词之间的位置区别不一致。如下图所示,在句子 ① 中相邻单词位置的位置编码差异为0.5,而在句子 ② 中,相邻单词位置的位置编码差异为0.125。
因此,这两种方法都不理想。为了找到更好的解决方案,Google提出了一种使用三角函数的方法。这种方法生成了一个位置编码矩阵记为,能够更有效地表示单词在文本中的位置信息。
5. 输入矩阵
输入序列通过输入嵌入层和位置编码层的处理,生成了输入矩阵。具体来说,输入矩阵 = 嵌入矩阵 + 位置编码矩阵,其中,,。
6. 掩码多头自注意力(Masked Multi-Head Self-Attention)
掩码多头自注意力结合了掩码技术和多头机制。
-
自注意力Self-Attention:是transformer层的核心,它通过预测序列中每个输出应该关注的输入单词,并评估它们的重要性。例如,在分析输入“I am very”并预测输出“happy”时,三个单词“I am very”对输出“happy”的相对贡献可能分别为0.7、0.1和0.2。
在自注意力的过程中,通过初始化投影矩阵并与输入矩阵相乘,得到查询、键和值三个矩阵。然后,使用Softmax函数和这些矩阵计算出一个新的矩阵,再将其与值矩阵相乘,得到输出。举个例子,就像在音乐软件中搜索歌曲,查询矩阵就像你输入的歌曲名称,键矩阵就像数据库中的所有歌曲名称,值矩阵就像所有歌曲的音频数据。最后得到的输出,就是你想要的歌曲的音频数据。
-
遮蔽自注意力Masked Self-Attention:是自注意力的一个改进版本,它引入了遮蔽技术,防止模型在预测下一个词时窥探到未来的词语。例如当预测“a”的下一个词时,GPT只能看到“a”,当预测“ab”的下一个词时,它只能看到“ab”。这样,模型就能够在一次接收整个句子的同时,为每个词生成输出。
自注意力允许一个位置关注其右的所有单词,通常用于BERT等模型中;而遮蔽自注意力防止一个位置关注在其之后的单词,用于GPT-3等模型。下图为我们提供了一个直观的视觉说明。
-
多头自注意力Masked Multi-Head Self-Attention:通过将自注意力细分为个独立的“头部”来工作,每个头部并行计算并关注序列中的不同方面和连接。对于GPT-3,这些头部数量。每个头部都有其独特的投影矩阵,维度为,即12288/96=128。每个头部的输出表示为,当这些输出被组合(通过连接)时,得到的结果包含了从不同表征子空间获得的信息,从而增强了模型的表达能力。
-
前馈神经网络:GPT模型中的每个Transformer层都包含一个全连接的前馈神经网络,非线性转换输入,提高模型的整体表达能力。
-
Add & Norm模块:“add”代表跳过连接,它有助于缓解深度模型中的梯度消失问题,使得Transformer层可以堆叠到相当深的深度。而“norm”代表层归一化,作为一种正则化策略,它有助于防止网络过拟合。层归一化在每个样本上独立计算均值和方差,不受其他数据影响,从而减少了批处理大小变化的影响。
-
解码与输出:在经过12个Transformer层的处理后,输入矩阵转化为一个信息丰富的矩阵,代表输入序列的最终表征。为了得到预测结果,使用,其中,50257是词汇量大小。这个过程生成了词汇表中每个单词的概率分布,从而能够选择最可能的输出作为GPT对每个单词的预测。
以上就是大型语言模型的基本原理解析,通过这些步骤,模型能够将单词转换为向量,并通过自注意力机制理解和生成语言序列。
大型语言模型的应用
1. 药物发现
药物发现领域面临挑战和成本问题,但人工智能、深度学习和量子力学等技术为药物发现提供了新可能。LLM作为强大工具,为识别药物靶点提供了初步见解,并助力后续的药物设计和筛选。虽然结果需进一步验证,但利用LLM等先进技术有望为药物发现带来更高效、准确的解决方案。
2. 金融
LLM在金融领域的应用正日益广泛,为交易、投资组合管理、金融风险建模、金融文本挖掘以及金融咨询和客户服务等方面带来了巨大的创新和便利。尤其是AI聊天机器人,在金融咨询和客户服务中已成为重要力量,支持了超过三分之一的电子服务场景。这些LLM不仅简化了之前复杂棘手的任务,还推动了AI在金融行业的更广泛应用。特别值得一提的是,像BloombergGPT这样的金融专用LLM,在拥有庞大参数的同时,不仅在金融任务上表现出众,还在通用语言模型测试中名列前茅。
3. 医学
LLMs在医学领域展现出了巨大的潜力,正在改变临床、教育和研究工作的方式,提升效率和效果。以MedQA数据集为例,这是一个模拟美国医学执照考试(USMLE)风格的生物医学问答数据集。在这个领域,ChatGPT等LLMs已经能够达到人类水平的表现。另外,Med-PaLM2在短短六个月内,其表现已经接近人类专家水平。
GPT-4和Med-PaLM2在医学测试中的卓越表现意味着,可以辅助教学。GPT-4的元提示功能允许用户为聊天机器人设定特定的角色,如“苏格拉底导师模式”。这种模式通过逐步降低问题难度,鼓励学生独立思考,从而提升他们的批判性思维和问题解决能力。
ChatGPT在不需要专业知识或在用户提示中已经存在专业知识的任务中表现出色。以出院总结为例,这是一个涉及信息解释和压缩的重复任务,通常需要一定的专业知识和用户提示。然而,ChatGPT能够出色地完成这项任务,进一步证明了LLMs在医学领域的广泛应用前景。
4. 法律
LLMs在法律领域展现出了强大的实力,特别是在预测案件和撰写法律文件方面。ChatGPT在模拟法律考试中取得了令人瞩目的成绩,准确率远超随机猜测,甚至在某些学科中达到了及格线。这一技术的应用潜力巨大,有望重塑整个法律行业。有律师事务所尝试用ChatGPT来起草诉状,其效果与初级律师相当。
尽管有观点认为ChatGPT目前还不能完全取代诉讼律师,因为它在法律文本的精确性和时效性方面还有所欠缺,特别是不能及时获取最新的法律研究成果。但最新的技术如DeLilegal,通过与外部法律数据库的整合,提升了检索能力,减少了误解的可能性。与此同时,新的LLMs如ChatLaw也在法律领域崭露头角。这些技术正在推动法律行业的变革,提高效率和专业水平。
缺点与未来发展方向
1. 公平性
尽管LLMs在许多领域的决策制定中越来越重要,但它们在公平性方面存在明显的不足。例如,在筛选编程职位简历时,LLMs可能会偏向男性候选人,这反映了一种性别歧视。这种偏见主要源于LLMs训练时所使用的大量非结构化互联网数据,这些数据中包含了刻板印象、误解、贬损性语言和排他性行为,这些对已经处于不利地位的边缘化群体造成了不成比例的影响。
目前,人们常采用的一种策略是从训练数据中移除带有偏见的数据,但这种方法既不能完全消除偏见,又可能降低语言建模的有效性。因此,未来的研究应更加注重弱势群体的需求,需要发展更加公平的算法,以确保所有群体的长期福祉。
2. 安全性
LLM在金融和医疗保健等行业的应用广泛,也带来了严重的安全挑战。由于LLM可能生成与上下文、用户输入或事实知识不符的输出等“幻觉”,降低了它们在实际应用中的可靠性,特别是在医学等关键领域。
为了应对这些问题,研究人员正在探索将人类纳入训练过程,并利用来自人类反馈的强化学习(RLHF)来开发更加精准的LLM。在RLHF过程中,加入与安全相关的提示也很重要,例如GPT-4中的做法。然而,RLHF高度依赖专业标注员提供的高质量人类反馈数据,这既昂贵又耗时。
因此,我们需要改进RLHF框架,减轻人工标注的负担。同时,探索更高效的标注方法,并利用LLMs来辅助标注过程,以提升整体安全性。
3. 知识产权
LLMs拥有与人类相似的创作能力,但它们可能会侵犯用户的知识产权。这些模型通过学习和优化用户的文本数据来运作,这些数据可能包含个人信息、专有知识和专利技术。以AI生成的代码为例,当在开源代码库上训练代码生成模型时,它可能会生成与现有代码相似的程序,这可能会违反相关的许可证规定。事实上,已经有针对Microsoft、GitHub和OpenAI的版权诉讼案例,原因是Copilot未遵守许可条款而复制了受许可的代码。因此,我们急需加强对LLMs在知识产权方面的监管,以保护原创作者、用户和公众的权益,同时推动LLMs技术的健康发展。
结论
LLMs作为人工智能领域的一大突破,其在多个领域的应用潜力巨大。然而,为了更好地发挥这些模型的优势并解决其带来的问题,我们需要深化对其原理的理解,并在实际应用中采取更加负责任的态度。未来的研究应当在确保公平性、安全性和尊重知识产权的前提下,持续推动LLMs的创新与发展。
公众号「夕小瑶科技说」后台回复“History”获取论文pdf。