ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

大语言模型工作原理:从语言痕迹到世界地图的底层逻辑

大语言模型工作原理:从语言痕迹到世界地图的底层逻辑

1. 从"鹦鹉学舌"的误解说起:大语言模型到底在做什么

很多人第一次接触大语言模型,脑子里冒出来的画面是一只特别聪明的鹦鹉——你问它什么,它就从见过的语料里翻出一句最像样的回答丢给你。这个比喻听起来很直观,但它漏掉了最关键的一层:大语言模型不是在"复读",它是在用人类留下的语言痕迹,重新绘制一张关于世界的地图。

我刚开始接触这类模型的时候,也走过一段弯路。那时候我总觉得它就是个高级一点的搜索工具,直到有一次我让它解释一个我熟悉领域里的概念,它给出的答案里有一个细节是我从来没在任何一篇文章里见过的表述方式,但逻辑上完全自洽。那一刻我才意识到,它不是在检索,它是在"重建"。

这张"世界地图"的原材料,就是我们人类写下的所有文字——书籍、论文、论坛帖子、代码注释、产品说明书、聊天记录。模型做的事情,是把这些文字里隐含的规律压缩成一套参数,然后在需要的时候,沿着这些规律重新走一遍,生成一段新的文字。这个过程有点像你走过一座城市的每一条街道之后,闭上眼睛也能在脑子里画出它的路网——你并没有把每条街的照片都存下来,但你掌握了它们之间的连接关系。

理解这一点非常重要,因为它直接决定了你对模型能力的预期。如果你把它当成搜索引擎,你会失望,因为它不保证事实的精确性;如果你把它当成一个"语言规律的重建器",你就能理解为什么它有时候会一本正经地胡说八道,也能理解为什么它在某些创造性任务上表现得超出预期。

这篇文章我想做的事情,是把大语言模型这个听起来很玄的东西,拆成几个可以理解、可以验证、可以上手操作的部分。不管你是刚入门的产品经理、想转行的开发者,还是纯粹好奇的技术爱好者,我都会尽量用生活化的类比加上实际能跑的例子,让你不仅知道它是什么,还能知道它为什么是这样,以及你在用它的时候应该注意什么。

2. 语言痕迹如何变成一张"地图":训练过程的三个关键阶段

2.1 预训练:把海量文本压缩成参数

预训练这个阶段,你可以把它想象成一个人被关在一个巨大的图书馆里,任务只有一个——把每一本书的每一页都读一遍,然后不断练习"给定前文,猜下一个词"。这个练习看起来简单,但它强迫模型去学习语法、事实、逻辑关系、甚至一些常识推理。

具体来说,模型看到的每一段文本都会被切分成一个个"词元"(token)。这个词元不一定是完整的词,可能是半个词、一个标点、甚至一个字节。比如"大语言模型"这五个字,在不同的分词方案下可能被切成"大语言"+"模型",也可能被切成"大"+"语言"+"模型"。模型的任务就是:看到前面的词元序列,预测下一个词元是什么。

这个过程中,模型内部会形成一个高维的向量空间。每一个词、每一个概念,都会被映射成这个空间里的一个点。语义相近的词,在这个空间里的距离会比较近。更神奇的是,一些抽象的关系也会被编码进去——比如"国王"和"女王"之间的关系,可能和"男人"和"女人"之间的关系在向量空间里是平行的。

我经常用一个类比来解释这个过程:想象你在一个巨大的舞池里,每个人代表一个词。训练的过程就是不断调整每个人的位置,让经常一起出现的词靠得近一些,让意思相反的词离得远一些。训练结束后,这个舞池的布局就成了一张"语义地图"。模型生成文字的时候,就是在这张地图上一步步走,每一步都选择当前语境下最合理的下一个位置。

注意:预训练阶段模型学到的是"语言的统计规律",而不是"事实数据库"。它记住的是"什么样的句子更可能出现在什么样的上下文里",而不是"某个事实一定为真"。这是后面很多"幻觉"问题的根源。

2.2 微调与对齐:让地图变得"好用"

预训练出来的模型,能力很强但不太听话。你问它一个问题,它可能会给你续写一段看起来像问题答案的文字,也可能给你编一个故事。这时候就需要第二步:微调和对齐。

微调的做法是,准备一批"问题-答案"对,让模型在这些数据上继续训练,学会"当用户问什么的时候,我应该给出什么样的回答"。这一步相当于给那张语义地图加了一层"导航层"——地图还是那张地图,但现在有了明确的路线指引。

再往后是"基于人类反馈的强化学习"(RLHF)。简单说,就是让人类评估员对模型的多个回答进行排序,然后训练一个"奖励模型"来模拟人类的偏好,最后用这个奖励模型去引导主模型生成更符合人类期望的回答。这一步解决的是"什么样的回答算是好回答"这个问题——是有帮助、诚实、无害的回答,而不是仅仅"看起来像答案"的回答。

我自己的体会是,经过对齐的模型和没经过对齐的模型,用起来完全是两种体验。前者像一个受过职业训练的助手,后者像一个知识渊博但不太会聊天的学者。你在实际项目中如果发现模型回答总是"跑偏",很多时候不是模型能力不够,而是对齐阶段没有覆盖到你的使用场景。

2.3 推理:在地图上"走"出一条新路

推理阶段就是模型实际生成文字的过程。你给它一个输入(通常叫 prompt),它一个词元一个词元地往外吐。每吐出一个词元,就把这个词元加到输入后面,再预测下一个,如此循环。

这个过程有一个很重要的特性:它是"自回归"的,也就是说,每一步的生成都依赖于前面已经生成的内容。这意味着模型一旦在某一步选了一个不太合适的词,后面的内容可能会沿着这个方向越走越偏。这也是为什么在实际使用中,"提示词工程"(prompt engineering)会这么重要——你给的开头越清晰,模型走偏的概率就越低。

还有一个常被忽略的点:模型在推理时并没有"重新学习"。它的参数是固定的,所有的"智能"都来自预训练和微调阶段压缩进参数里的那些规律。所以如果你发现模型对某个最新事件一无所知,那不是它笨,而是它的"地图"里还没有那块区域——除非你通过外部检索或者上下文注入的方式,临时把这块信息补给它。

3. 为什么它会"胡说八道":理解幻觉的底层机制

3.1 幻觉不是bug,是统计规律的副产品

很多人第一次遇到模型"一本正经地胡说八道"时,会觉得这东西根本不可靠。但如果你理解了它的工作原理,就会发现幻觉其实是这套机制的必然产物。

模型的目标是"生成最可能的下一个词元",而不是"生成真实的事实"。当它在某个上下文里,发现某个虚构的细节比真实的细节"更可能"出现时,它就会选择那个虚构的细节。比如你问它"某本不存在的书的作者是谁",它可能会给你一个听起来很合理的名字,因为在它的训练数据里,"书名+作者名"这个模式太常见了,它只是顺着这个模式往下走。

我踩过的一个坑是:早期我用模型来查一些技术参数的细节,它给出的数字看起来非常合理,但实际去查文档发现完全对不上。后来我学乖了,凡是涉及具体数字、日期、引用来源的内容,一律要求模型给出出处,或者自己二次核实。这不是不信任模型,而是理解它的能力边界。

3.2 如何在实际使用中降低幻觉风险

降低幻觉有几个实操层面的方法,我自己常用的有这么几条:

第一,把问题限定在模型"见过"的范围内。如果你问的是一个非常小众的领域,模型很可能没有足够的训练数据来支撑准确回答。这时候更好的做法是先给它提供相关背景材料,再让它基于材料回答。

第二,要求模型"不确定就说不确定"。你可以在提示词里明确写:"如果你不确定答案,请直接说不知道,不要编造。"实测下来,这句话能显著减少胡编乱造的情况。

第三,用"分步推理"的方式引导。让模型先列出它知道的已知条件,再一步步推导结论,而不是直接给答案。这样即使最终答案有偏差,你也能从中间步骤看出问题出在哪里。

第四,交叉验证。对于关键信息,用不同的问法问两到三次,看答案是否一致。如果每次答案都不一样,那基本可以判定这个信息不可靠。

提示:幻觉问题在创意写作场景里可能是优点,在事实查询场景里是缺点。你在设计产品功能时,要先想清楚你的场景更偏向哪一边。

3.3 一个真实的排查案例

有一次我帮一个团队排查他们的问答系统为什么总是给出错误答案。表面上看是模型"不听话",但实际排查下来发现,问题出在他们的检索环节——检索到的文档本身就是过时的,模型只是忠实地基于过时文档生成了回答。

这个案例给我的启发是:当你遇到模型输出问题时,不要一上来就怀疑模型本身。先检查输入,再检查提示词,最后才怀疑模型能力。大部分实际问题都出在前两个环节。

4. 从"地图"到"工具":实际应用中怎么用好它

4.1 提示词的本质是"给地图标注起点和方向"

很多人把提示词工程想得很神秘,其实它的本质很简单:你是在告诉模型"从地图的哪个位置出发,往哪个方向走"。

一个好的提示词通常包含这几个要素:角色设定(你是一个什么领域的专家)、任务描述(你要完成什么)、约束条件(有什么限制)、输出格式(结果长什么样)。这四个要素不需要每次都写全,但写得越清楚,模型走偏的概率就越低。

我自己的习惯是,在写提示词之前先问自己三个问题:我希望模型扮演什么角色?我希望它输出什么形式的内容?有哪些事情是它绝对不能做的?把这三个问题的答案写进去,基本就能得到一个可用的提示词。

4.2 不同场景下的使用策略

场景类型核心需求推荐策略注意事项
事实查询准确性提供参考资料,要求引用出处必须二次核实
创意写作多样性放宽约束,鼓励发散注意版权和原创性
代码生成可运行性明确语言和框架版本必须实际运行测试
数据分析逻辑性要求分步推理检查中间计算过程
翻译润色风格一致性提供风格样例注意专业术语准确性

这张表是我在实际项目中总结出来的,不同场景对模型的要求差异很大。你不能用同一套提示词去应对所有场景,就像你不能用同一把钥匙去开所有的锁。

4.3 上下文窗口:模型的"短期记忆"怎么用

上下文窗口指的是模型在一次对话中能"看到"的最大文本长度。这个长度是有限的,超出部分会被截断。理解这一点对于设计多轮对话系统非常关键。

我见过很多团队在做一个长对话产品时,把所有历史消息都塞进上下文,结果要么超出限制,要么因为上下文太长导致模型注意力分散,回答质量下降。更好的做法是:只保留最近几轮对话,加上一个对更早对话的摘要。这样既节省了上下文空间,又保留了关键信息。

还有一个技巧是"上下文注入":如果你希望模型在回答时参考某些特定文档,可以把文档内容直接放在提示词里。这相当于临时给模型的地图"补了一块区域",让它在这个区域内进行推理。

4.4 温度参数:控制"走地图"的随机性

温度(temperature)是一个很关键的参数。温度低的时候,模型倾向于选择概率最高的那个词,输出比较稳定但可能缺乏创意;温度高的时候,模型会更多地选择概率较低但可能更有趣的词,输出更多样但可能不太连贯。

我的经验是:事实类任务用低温度(0.1到0.3),创意类任务用高温度(0.7到1.0),一般对话用中间值(0.5左右)。这个不是绝对的,你需要根据实际效果去调。有时候同一个任务,温度从0.7调到0.3,输出质量会有明显提升。

5. 这张"地图"的边界在哪里:能力与局限的清醒认知

5.1 它擅长什么,不擅长什么

大语言模型擅长的东西,本质上都是"语言规律密集"的任务:文本分类、摘要、翻译、改写、代码补全、问答。这些任务的共同点是,输入和输出之间存在比较稳定的语言模式,模型从海量数据里学到的规律可以直接迁移过来。

它不擅长的东西,通常是"需要精确计算"或"需要实时信息"的任务。比如复杂的数学运算,模型可能会在中间步骤出错;比如查询今天的天气,模型没有实时数据来源,只能靠训练时的旧数据或者你提供的信息。

还有一个容易被忽略的局限是"长程依赖"。虽然现在的模型上下文窗口越来越大,但在处理很长的文本时,模型对开头部分的记忆可能会衰减。如果你有一个很长的文档需要分析,分段处理再汇总,往往比一次性塞进去效果更好。

5.2 一个常见的认知误区

很多人觉得模型"越大越聪明",参数越多效果越好。这个说法在大方向上没错,但在实际应用中,一个经过良好微调的小模型,在特定任务上完全可能超过一个通用的大模型。

我参与过一个项目,一开始用的是一个很大的通用模型,效果一般,而且推理成本很高。后来换成了一个参数量小很多但在特定领域数据上微调过的模型,效果反而更好,成本还降了一大截。这个经历让我明白:选模型不是选最大的,而是选最合适的。

5.3 数据质量比数据数量更重要

预训练阶段的数据量固然重要,但数据的质量和多样性同样关键。如果训练数据里充斥着低质量的文本,模型学到的规律也会偏向低质量。这也是为什么很多团队在微调阶段会花大量时间清洗和筛选数据。

对于使用者来说,这个道理同样适用:你给模型的输入质量,很大程度上决定了它的输出质量。如果你给的是一个模糊、矛盾、信息不全的提示词,就不要指望模型能给出一个清晰、准确、完整的回答。

6. 我在这条路上踩过的几个坑

第一个坑是"过度信任"。刚开始用模型的时候,我对它的输出几乎不加怀疑,结果在一次技术方案里引用了一个它编造的API名称,差点闹笑话。从那以后,我养成了一个习惯:凡是模型给出的具体事实、数字、名称,一律标记为"待核实"。

第二个坑是"提示词太随意"。我曾经觉得提示词就是随便写几句话,后来发现同样的任务,提示词写得好和写得差,输出质量差距巨大。现在我写提示词的时间,有时候比写代码的时间还长。

第三个坑是"忽略上下文管理"。在做多轮对话的时候,我一开始把所有历史都塞进去,结果模型经常"跑题"。后来学会了做上下文摘要和关键信息提取,效果好了很多。

第四个坑是"用错场景"。我曾经试图用模型来做精确的数值计算,结果发现它在多步计算中很容易出错。后来我把计算任务交给专门的工具,模型只负责理解问题和解释结果,整个流程就顺畅多了。

这些坑说起来都不复杂,但每一个都是实际踩过之后才真正记住的。如果你刚开始接触大语言模型,我的建议是:从小任务开始,逐步建立对它的"手感",不要一上来就把它当成万能工具。

7. 如果你也想深入理解它,可以从这几个方向入手

如果你想从使用者变成理解者,我建议从三个方向入手。第一个方向是动手实践:找一个开放的模型接口,自己写几段提示词,观察不同参数下的输出变化。这种"手感"是看多少篇文章都替代不了的。

第二个方向是理解原理:不需要从头推导数学公式,但至少要理解"词元""注意力机制""温度"这些核心概念在说什么。理解了这些,你在调参和写提示词的时候会更有方向感。

第三个方向是关注边界:多去尝试模型不擅长的任务,看看它在什么情况下会失败,失败的模式是什么样的。这种对边界的认知,比单纯知道它能做什么更有价值。

这张由人类语言痕迹绘成的世界地图,还在不断扩展和细化。我们今天看到的版本,可能只是未来某个更大图景的草图。但不管它怎么变,理解它的底层逻辑——语言规律的压缩与重建——这个核心不会变。掌握了这个核心,你就能在它每一次迭代的时候,快速找到自己的位置。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进