【Python大语言模型系列】科普文章:大模型是如何理解和生成语言的?
这是我的第483篇原创文章。
一、引言
你可能会好奇,为什么这些模型能理解我们说的话呢?其实,AI大语言模型的“理解”并不是像人类那样的理解,而是通过大量的数据训练(算法+算力)出来的。所以,要理解为什么AI大语言模型可以理解语言,我们需要知道它们是如何训练的。
二、大模型是如何理解生成语言的?
首先,训练必须建立在大量的文本数据基础之上。
这些模型在训练时,使用了大量的文本数据,比如各种书籍、文章、对话等。通过阅读和分析这些数据,模型就学会了这些文本数据中出现的语言结构和用法。形象点说,AI大语言模型就像一个背诵过很多很多文章、对话片段、书籍内容的“人”,它是从这些内容中,自己学习到了一定的语言规律。在这个环节中,大模型训练学习所用的文本数据质量与数量对于未来这个模型能生成的内容来说是至关重要的。如果训练数据的质量不好,所有的内容并不符合现代语言的表述习惯或者所有训练文本的内容所体现出的价值观就是不符合人们普世价值观的,都会影响其训练出的模型最终会朝什么方向生成内容。比如我们所有的训练语料都是文言文,那大模型最终就不可能生成现代汉语的表述出来;再比如如果所有的训练语料都是英文,那大模型是不可能生成正确的汉语出来的。另外,如果训练数据的数量不够,就会导致大模型在总结语言规律时,出现不全面、不准确或表达生硬的问题。所以,对于大模型训练来说,大量的学习数据是必要的。甚至,理论上来说,数据量越大,学习的效果应该是越好的。但具体需要多大量的数据,其实是因实际情况而定的。就好像是我们都知道,一个人书读的越多,懂的知识就越多,这个人就会越博学,解决起工作、生活中的问题时,可能就会有更好的见解或方案。但在现实生活中,一个人要把所有书都读完,才能进行工作生活吗?答案显然是否定的。其实,这一点上,大模型跟人挺像的。如果我们把想用大模型解决的问题框定在一个具体场景下,那训练模型时,也真的不必让它的训练数据面面俱到,只要让它在对应场景领域内的训练数据达到足够的量,可能就可以帮我们解决相关问题了。这会大大减少训练所需花费的资金、电力、时间等各项成本。
其次,大语言模型训练的核心目标就是实现“上下文理解”。
对于大语言模型来说,所谓的“上下文理解”就是指大模型
不仅仅是记住了很多单词和句子,它还要学会字与字之间,字与词之间,词与词之间,词与句子之间,句子与句子之间等多重的关联性,最终这些多层级间的关联性的外在表现就成了“大语言模型”对“上下文的理解”能力了。举个例子,比如有这样一句话“我今年把我的苹果换成华为手机了。”其中,“苹果”一词如果单独来看,它本身在现在的语言使用场景下,就有多种意思。它的常规意思是一种常见的水果,而它也会指一家美国的科技公司,也会指这家美国科技公司生产的手机或手机品牌。这个时候,因为大模型经过了大量的语料训练,它掌握了“苹果”一词与后文中“华为”、“手机”的关联性,以及“苹果”一词在整个句子中的含义定位,从而使大模型“理解”了整句话的含义和逻辑。而这些都是通过Transformer架构实现了这些文本语义关联定位的数学参数达成的,其“理解”行为的本质是背后一系列的复杂的数学计算逻辑。
最后,大语言模型通过生成式表达来展现其对文字的理解能力。
在大语言模型对语言有了以上基础“理解”之后,它也就可以根据自己的“理解”去对我们新输入的文本内容进行“理解”了。然后,它会根据它所掌握的语言逻辑规律,识别出语言的语法规则、句子结构等,再根据这些模式特征和规律特征,开始预测接下来的“下一个字或词”的文本内容应该是什么,然后从预测结果中拿出“预测概率”最高的结果,添加在原有的内容之后,再根据添加后的完整内容,继续上面的预测循环,直到它预测到一个“预测完结”的特定标识,就结束预测。这样,大语言模型就可以基于我们给出的文本内容,继续生成出符合人类语法和逻辑的句子。让它看上去具备了对文字的“理解能力”啦!
三、大模型为什么会有幻觉?
AI “幻觉”指的是大语言模型(LLM)在缺乏真实依据的情况下生成不准确、误导性甚至完全虚构的内容。其幻觉现象源于模型架构的局限性以及基于概率的生成方式的限制。尽管它们目前无法被完全消除,但理解幻觉产生的原因为有效的缓解提供了基础。
LLM 的幻觉现象源于三个核心技术挑战:模型架构限制、基于概率的生成方式限制,以及训练数据不足。
1)设计和架构限制
Transformer 架构限制:LLM 中基于 Transformer 的注意力机制使模型能够专注于输入中相关的部分。在 Transformer 模型中,固定的注意力窗口限制了模型可以保留的输入上下文长度,当序列过长时,会导致较早的内容被“丢弃”。这一限制常常导致连贯性崩溃,并增加在较长输出中出现幻觉或不相关内容的可能性。
序列化 Token 生成:大语言模型以一次生成一个 Token 的方式输出结果。每个Token仅依赖于先前生成的Token,且无法对之前的输出内容进行修改。这种设计限制了实时纠错的能力,导致最初的错误可能进一步升级,最终生成错误的内容。
2) 基于概率的生成方式限制
生成式模型的限制:生成式 AI 模型可能会产生看似合理但缺乏对主题真实理解的响应。例如,一家超市的 AI 餐食规划器建议了一种氯气(有毒)的配方,称其为“完美的无酒精饮料”,显示即使训练在有效数据上,AI 也可能在不理解上下文的情况下生成不安全的输出。
处理不明确的输入:在面对模糊或不明确的提示时,LLM 会自动尝试“填补空白”,导致推测性和有时不正确的内容响应。
3) 训练数据不足
数据准确性的偏差:在训练期间,模型依赖于人类注释者提供的“真实数据”作为预测下一个词的基础。然而,在推理阶段,模型必须依赖自己先前生成的合成数据。这会产生反馈回路,早期过程中的轻微错误会随着时间放大,导致系统在连贯性和准确性上偏离。
训练数据覆盖不足:尽管训练在庞大的数据集上,模型通常不会涵盖不太常见或小众的信息。因此,当被测试在这些方面时,模型不可避免地会产生包含幻觉的响应。欠代表的模式或对常见信息的过拟合影响了泛化,尤其是在超出范围的输入上。
如何减轻 AI 幻觉?
虽然 LLM 的幻觉问题不可避免,但可以通过三层防御策略让模型幻觉显著减少:1)输入层:优化查询和上下文 2)设计层:增强模型架构和训练 3)输出层:过滤和验证生成的内容。每一层都是一个关键的检查点,共同提高 AI 输出的可靠性和准确性。让我们对每一层中应用的这些技术做一个更加深入介绍。

作者简介:
读研期间发表6篇SCI数据挖掘相关论文,现在某研究院从事数据算法相关科研工作,结合自身科研实践经历不定期分享关于Python、机器学习、深度学习、人工智能系列基础知识与应用案例。致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。需要数据集和源码的小伙伴可以关注底部公众号添加作者微信。
更多推荐


所有评论(0)