【提示词工程 02 理解大模型】
【提示词工程 02 理解大模型】本章围绕大语言模型Large Language Model, LLM的底层运行逻辑展开从文档补全的本质定位、文本分词的处理方式到逐令牌生成的自回归机制系统讲解大模型的工作原理、能力边界与典型特性为后续提示工程的学习建立完整的理论基础。2.1 本质定位大模型是文档补全与模式模仿引擎在日常交互中使用者很容易将大模型视作“智能问答助手”但从技术底层来看大模型的核心身份是文档补全引擎——它的核心目标是基于输入文本续写统计概率上最合理的后续内容而非主动解答问题。2.1.1 文档补全的底层逻辑大模型的所有输出本质都是对已有文本的续写。以一段简单的日常描述为例昨天我的电视坏了。现在我根本打不开它对人类而言这句话有明确的语义和场景但对大模型而言它只需要判断在海量的训练语料里这句话之后最常出现的内容是什么。不同的续写方向对应着不同类型的训练数据叙事向续写对应小说、散文等叙事类文本的训练数据对话向续写对应邮件、聊天记录等对话类文本的训练数据教程向续写对应客服对话、产品说明书等指导类文本的训练数据训练数据的分布差异会直接导致大模型的续写方向与输出内容产生区别。2.1.2 模式模仿而非知识记忆大语言模型从海量训练数据中学习各类文本的表达模式包括散文、代码、对话、说明书等各类体裁。它并不会“回答问题”只是在补全训练数据中常见的“问答模式”。与搜索引擎不同大模型没有记忆完整的数据库而是对学到的模式进行重组应用。这也是其输出的核心特点内容往往看起来非常合理可信但未必符合客观事实——这一特性正是大模型“幻觉”现象的根源。2.1.3 幻觉Hallucination现象定义幻觉指大模型生成的内容无实际依据、不符合给定的源信息却以极高的自信度输出的现象。常见表现包括捏造事实、生成虚假的文献引用等例如生成看似正规的学术论文引用但对应的文献与链接并不真实存在。三类典型幻觉输入冲突型幻觉输出内容与用户的输入要求矛盾例如用户要晚餐食谱模型却给出午餐食谱。上下文冲突型幻觉输出内容与前文语境不符例如前文从未提及牛排回复中却突然出现牛排相关内容。事实冲突型幻觉输出内容违背客观事实例如声称西红柿富含钙元素。幻觉的核心成因属性本质大模型是概率生成引擎而非知识库生成目标是补全文本模式而非传递真相。数据压缩模型将海量互联网信息压缩进参数权重中记忆的是概念与规律而非精确的事实条目。源信息分歧训练数据中存在相互冲突的内容或是虚构内容与真实内容混杂模型无法区分事实与文笔流畅的虚构内容。2.1.4 真实偏差Truth Bias大模型存在天然的真实偏差它会默认提示词Prompt中的所有内容都是真实的并顺着预设的前提继续生成内容。例如向模型提问“约翰·塞纳为什么成为西班牙大使”即使这个前提完全不成立模型也会顺着该前提编造对应的原因而非指出前提错误。关键认知模型并不会“意识到自己在说谎”。它只是在预测最符合文本模式的后续内容没有判断前提真伪的主动意识。应用与风险可利用的价值你可以让真实偏差为你所用——如果你希望模型评估一个假设性的或反事实的情况可以直接通过陈述假设场景的方式引导模型无需额外添加“假设”“假装”等表述。例如不说”假设今年是2026年…”而是改为“今年是2026年…”潜在风险默认轻信输入的特性会放大事实错误的传播带来信息失真风险。应对原则大模型信任输入的内容但是要对输入的内容进行验证。使用者需要对输入提示词的准确性负责对关键输出进行独立核实。2.1.5 人类思维与大模型处理的差异人类与大模型的文本生成逻辑存在本质区别人类的写作模式写作过程中会随时停顿遇到未知信息会主动检索、核实后再继续是“写作-核查-修正-完成”的多环节流程。大模型的生成模式全程基于训练数据的模式进行逐词猜测无法停顿、无法主动检索、也无法修改已输出的内容是线性的持续生成过程。这一本质差异也是提示工程这一领域存在的核心原因我们需要通过设计输入内容来引导模型的生成方向弥补其自身机制的局限。2.2 文本的底层处理分词Tokenization机制人类通过识别字母、单词来理解文本但大模型无法直接理解自然语言。文本在进入模型计算前必须经过分词处理转换为模型可识别的数值单元。2.2.1 词元Token与分词的基本概念核心定义分词是将自然语言文本切分为一个个最小处理单元即词元Token再将每个词元映射为数字ID与向量嵌入Embedding的过程。大模型看不到字符也不理解人类意义上的单词它只能看到一串代表词元的整数序列。人类 vs. 大型语言模型人类感知我们看到一连串的文字并能识别字母形状。我们会下意识地自动纠正拼写错误。语言学习模型LLM感知语言学习模型看不到字符。语言学习模型看不到人类意义上的单词。语言学习模型看到的是序列。词元Token定义作为单个单元处理的“一小段”文本。组成完整单词例如 apple、computer 等高频常用词单词组成部分例如 playing 中的 ing、unfriendly 中的 un 等词缀空白字符单词前的空格也会被包含在词元中用于区分单词边界。 PS特殊字符例如__用于标记包含空格的单词的结尾。去标记化通常是将标记直接连接起来并将这些特殊字符替换为实际的空格。经验换算规则英文场景1个词元 ≈ 4个英文字符1个词元 ≈ 0.75个英文单词2.2.2 分词与解码的完整流程文本与令牌序列的转换是双向过程分词Tokenization由分词器Tokenizer完成将人类可读的自然文本拆分为词元并映射为数字 ID输入给大模型。解码Detokenization由解码器Detokenizer完成将模型输出的数字 ID还原为人类可读的自然文本。词尾会通过特殊标记区分分词的逆过程解码只需将词元拼接、替换特殊标记即可还原为自然文本。2.2.3 分词的典型问题Tokenization Issues分词机制看似简单但在实际场景中受词汇形态、语言特性、格式差异的影响会出现大量歧义与适配问题也是分词技术需要解决的核心难点。2.2.3.1 通用文本场景的分词歧义在英文等通用文本场景中分词的歧义主要来自词汇形态、专有名词与数字格式所有格与形态变化例如短语Maine’s state capital中Maines会被如何拆分存在不确定性是作为一个完整令牌还是拆分为Maine和s两个令牌不同的分词结果会影响模型对语义的识别。连字符词汇带连字符的复合词存在拆分歧义例如Self-esteem可能作为一个完整令牌也可能被拆分为Self和esteem两个令牌例如state-of-the-art这类多连字符词汇会被拆分为多个子词片段破坏词汇的整体性多词专有名词例如地名Hong Kong分词器可能将其识别为一个完整词元也可能拆分为Hong和Kong两个独立词元影响专有名词的语义完整性。数字与格式问题数字、日期、电话号码等格式化内容会因书写格式不同产生完全不同的分词结果日期January 20, 2024和20/1/2024的分词结果完全不同电话号码(852)3411-7599会被拆分为多个零散词元传统的信息检索系统甚至不会对数字建立索引通常会将这类元数据单独处理。【图文排版建议】此处粘贴第一张图片的上半部分Tokenization Issues 通用场景板块集中展示各类通用场景的分词问题示例。2.2.3.2 多语言场景的分词挑战不同语言的文字特性差异巨大给分词带来了更多适配难题法语省音与缩合法语中大量存在省音现象例如Lensemble这个整体分词器需要判断是作为一个完整令牌还是拆分为L和ensemble两个令牌。同时还需要保证lensemble能和un ensemble实现语义匹配对分词的一致性要求很高。德语超长复合名词德语习惯将多个名词拼接为一个复合词例如Kraftfahrzeughaftpflichtversicherung机动车责任保险整词长度极长。若不进行拆分会出现大量未登录词拆分粒度不当又会破坏复合词的完整语义。中文与日文无空格分隔中文、日文的书写没有单词间的空格例如“自然语言处理课程”对应英文的“Natural Language Processing Course”。分词器无法通过空格切分需要先进行语义层面的分词难度远高于英文。波斯语与阿拉伯语从右到左书写这类语言不仅书写方向是从右到左字母还会根据位置发生连写变形同一个字母在词首、词中、词尾形态不同进一步提升了分词的复杂度。2.2.4 三类主流分词方案针对上述分词问题业界提出了三类不同的分词技术路线分别在易用性、词表规模、语义表达上各有取舍。1. 基于单词的分词原理按照空格、标点等分隔符拆分文本优点实现逻辑简单缺点未登录词生词多不适用于中文等无空格分隔的语言词表体积庞大拼写错误的单词会被识别为全新词汇2. 基于字符的分词原理将文本拆分为单个字符优点几乎不存在未登录词适合字符本身承载语义的语言词表体积小易实现缺点单个字符通常无语义无法学习单词层面的语义文本序列长度大幅增加计算成本上升3. 子词分词当前主流方案原理高频使用的单词保留完整形式低频罕见的单词拆分为有意义的子词单元通过特殊符号标记词元的起止位置优点解决了未登录词问题同时将词表规模控制在合理范围代表算法字节对编码Byte-Pair Encoding, BPE、WordPiece是当前自然语言处理领域的主流方案2.2.5 字节对编码BPE的工作流程与分步示例字节对编码BPE是当前应用最广泛的子词分词算法基于贪心策略与词频统计迭代构建词表核心逻辑是不断合并出现频率最高的相邻字符对生成新的子词词元直到词表达到预设大小。使用霍夫曼编码进行分词贪婪算法训练步骤首先将输入单词拆分成单个字符每个字符对应于最终词汇表中的一个符号在实际应用中我们通常会在空格前添加特殊的词尾符号“__”从当前词汇表中找出出现频率最高的符号对将此符号对添加到词汇表中词汇表大小增加 1重复步骤 (2) 和 (3)直到生成指定数量的词元或者不再存在符合要求频率的新符号组合第一步初始化语料与基础词表训练语料low low low low low lowest lowest newer newer newer newer newer newer wider wider wider new new预处理给每个单词末尾添加词尾标记__按字符拆分并统计频次5 *l o w __2 *l o w e s t __6 *n e w e r __3 *w i d e r __2 *n e w __初始基础词表所有的单个单词词尾标记__, d, e, i, l, n, o, r, s, t, w第二步第一次迭代合并最高频字符对er统计所有相邻字符对的出现频率er在newer__中出现6次在wider__中出现3次总计9次是当前频率最高的字符对。将er合并为一个独立的新词元加入词表。更新后词表__, d, e, i, l, n, o, r, s, t, w, er第三步第二次迭代合并er__继续统计相邻字符对的频率er__在newer__中出现6次在wider__中出现3次总计8次是当前频率最高的组合。将er__合并为新词元加入词表。更新后词表新增er__第四步第三次迭代合并ne统计剩余字符对的频率ne在newer__中出现6次在new__中出现2次总计8次为当前最高频。将ne合并为新词元加入词表。更新后词表新增ne第五步后续迭代与最终效果按照相同的逻辑算法会继续合并new、low、newer__、low__等组合不断扩充词表直到达到预设的词表大小。最终的分词效果输入newer__→ 分词结果newer__一个完整词元输入lower__→ 分词结果low, er__两个子词元2.2.6 词元配套预处理技术在词元化的基础上通常还会配合一系列文本预处理技术优化后续模型处理的效率与效果。1. 停用词Stopwords定义仅承担语法结构功能、无实际核心语义的虚词例如 the、of、and、to 等。补充说明针对特定领域的应用可以构建专属的领域停用词表适配场景需求。移除停用词的优势缩减索引文件与数据的体积降低存储与计算成本通常不会影响自然语言处理任务的效果部分场景下还能提升任务准确率潜在问题与局限过度移除会破坏固定短语的语义例如 “to be or not to be”“let it be”“flights to Hong Kong”移除虚词 to 会丢失关键语义信息因此部分任务会使用极小的停用词表极端场景下甚至只保留 the 一个停用词2. 词元标准化Token Normalization定义将不同形式的同义或近义词元映射为统一的标准形式建立语义等价类减少词元冗余。常见操作与典型示例去除句点合并例如U.S.A标准化为USA但存在歧义风险如C.A.T卡特彼勒公司和CAT会被错误合并去除连字符合并例如anti-discriminatory标准化为antidiscriminatory同义词映射例如car和automobile归为同一语义类拼写统一统一英式与美式拼写如color和colour合并为同一标准多语言适配例如法语的résumé和resume做归一化处理3. 词干提取Stemming定义将由同一个词根衍生出的不同词汇映射为统一的词干例如fish、fishes、fishing统一映射为fish。整体效果通常能小幅提升文本类任务的效果。三种处理粒度激进式将同词根的所有变形视为完全等价例如fish和fishing视作同一个词保守式仅识别复数等简单变形例如只通过后缀s识别名词复数但会出现错误如Centuries会被错误处理为Centurie不处理保留所有词汇的原始形态不做词干提取语言差异阿拉伯语等形态复杂的语言词法变化丰富词干提取的作用更显著中文等孤立语词汇几乎无形态变化词干提取几乎没有效果2.2.7 词元化带来的三大核心差异词元化的机制特性直接决定了大模型的典型能力边界也是很多“反常识”错误的根源。差异一分词器的零容错性人类的灵活性人类看到ghost和gohst会自动修正拼写识别为同一个概念。模型的刚性分词规则是完全确定的正确拼写ghost对应1个词元ID: 3821拼写错误的gohst会被拆分为3个词元IDs: 71, 281, 492。后果拼写错误会彻底改变输入的数据结构大幅影响模型的语义识别效果。差异二子词盲区核心问题模型无法“查看”一个词元内部的字母构成只能识别词元的整体ID不能像人类一样逐字母检查文本。典型失败案例要求“反转单词Lollipop的字母顺序”模型通常无法准确完成因为它只能看到Lollipop对应的词元ID依赖训练记忆而非逐字母分析。差异三大小写与格式的影响现象大小写变化会改变分词结果例如Time和TIME对应的词元不同普通写法的“strange new worlds”是4个词元全大写的“STRANGE NEW WORLDS”会被拆分为6个词元。影响全大写、特殊格式的文本会消耗更多词元与计算资源挤占模型用于逻辑推理的算力。建议简单的格式转换、大小写统一等操作应通过脚本预处理完成不要占用模型的计算能力。经典案例草莓问题当被问及“strawberry这个单词里有多少个字母r”时大模型往往会答错。错误原因单词会被拆分为straw和berry两个词元模型只能识别berry里的2个r遗漏了straw中的r。解决方法通过提示词强制将单词拆分为单个字母如用连字符分隔让每个字母成为独立词元模型即可准确计数。2.2.8 词元经济学与上下文窗口词元经济学不同类型的内容分词效率差异极大直接影响调用成本普通英文散文分词效率最高程序代码效率中等随机字符串、密码、哈希值、日志密钥效率极低单个字符就会占用一个词元大模型通常按词元数量计费处理随机字符、复杂密钥的成本远高于普通自然文本。上下文窗口Context Window上下文窗口指模型单次能够处理的最大文本长度满足公式提示词词元数 生成内容词元数 ≤ 上下文窗口上限特性如果输入输出的总长度超出窗口限制模型会“遗忘”最开头的内容。实用建议主动统计词元数量确保核心指令不会被后续的大量数据挤出窗口范围。2.3 生成的运行逻辑自回归机制与概率采样大语言模型的文本生成遵循**自回归Autoregressive**的运行逻辑通过逐词元预测的方式完成内容续写。在生成过程中模型会先计算全词表的概率分布再通过采样策略选出最终输出的词元而温度参数则是调节采样随机性、控制输出风格的核心手段。2.3.1 自回归生成的基本原理大语言模型是典型的自回归模型它每一步只预测一个词元将该词元拼接到输入文本的末尾再基于更新后的完整文本预测下一个词元循环往复直到生成终止。完整的生成流程可以拆解为五步读取完整的提示词内容作为生成的初始上下文基于当前上下文计算词表中所有词元作为下一个内容的概率通过采样策略选出最终的下一个词元并输出将刚输出的词元拼接到原输入文本的末尾形成新的上下文重复上述步骤直到生成终止词或达到最大生成长度这个过程可以类比为手机输入法的联想词推荐每一步都基于当前句子推荐下一个词选中一个词之后再基于新的句子推荐下一个逐步推进完成整段文本。2.3.2 自回归机制的核心局限无法回溯、无法修改自回归的线性生成方式决定了模型存在三个不可避免的原生局限这也是大模型很多典型问题的根源。1. 没有“思考”的停顿时间模型不能暂停下来梳理逻辑、反思内容它必须在每一步都输出一个词元没有额外的思考缓冲。人类写作时可以停下来构思、打草稿但模型必须逐词元持续输出无法中途停顿整理思路。2. 没有“橡皮擦”输出即锁定词元一旦被输出模型就必须沿着这个结果继续生成无法回头修改。哪怕前面出现了拼写错误、事实偏差或者逻辑漏洞模型也不能撤回修正只能将错就错地续写下去。前期的微小错误会在后续生成中被不断放大。3. 易陷入重复循环模型的核心能力是模式匹配。如果生成过程中不小心进入了重复的句式模式重复的内容就会变成“最合理的续写方向”导致模型持续输出重复的内容无法自行跳出循环。例如在列举场景中模型可能会反复重复同一句式与同类内容就是陷入了重复循环的典型表现。2.3.3 输出层全词表概率计算很多人会误以为模型是“直接选出一个最合适的词”但实际生成过程并非如此。全词表概率计算模型不会直接选定唯一的输出而是会先对整个词表中的每一个词元都计算出作为下一个词元的生成概率。这个计算由输出层的Softmax激活函数完成它把模型输出的原始得分转换成总和为1的概率分布最终生成一份按概率从高到低排序的词元列表。以句子The sky is…为例模型输出的概率分布示例为blue蓝色85%gray灰色10%clear晴朗的4%其余所有词元合计1%采样的定义从这份概率列表中选出最终作为输出的下一个词元的过程就叫做采样Sampling。采样策略的不同会直接决定输出的风格与质量。2.3.4 两类核心采样策略有了概率分布之后模型如何选出最终的词元业界有两类基础的采样方案分别对应不同的输出效果。1. 贪心解码Greedy Decoding规则永远选择概率排名第一的词元每一步都选最“正确”的选项。效果输出内容非常重复、机械、单调读起来生硬刻板缺乏变化与创造力。适用场景对确定性要求极高、完全不允许发散的极端场景。2. 概率采样Probabilistic Sampling规则按照概率权重随机抽取词元概率越高的词元被选中的概率越大但低概率词元也有被选中的可能。效果大多数时候会选中高概率的词比如85%的概率选中blue偶尔会选中低概率的词10%的概率选中gray为输出带来创造性和多样性。适用场景绝大多数通用生成场景兼顾通顺性与丰富度。2.3.5 温度Temperature参数的作用温度是控制采样随机性的核心参数取值范围通常为0.0到2.0之间常用调节区间为 0.0 ~ 1.0。它通过调整概率分布的陡峭程度改变输出的确定性与创造性。以 OpenAI 的官方接口为例温度参数的合法取值范围是 0 ~ 2温度的核心作用逻辑温度越低概率分布越陡峭高概率词元的优势被放大输出越稳定温度越高概率分布越平缓低概率词元的机会增加输出越发散低温度0 - 0.3效果放大高概率词元的优势让“优胜者”的概率进一步提升。例如原本85%概率的blue低温度下概率会被放大到99%几乎成为唯一选项。特性输出确定性极强相同输入基本会得到完全相同的结果。最佳适用场景数学计算、代码生成、事实类问答等需要精准、稳定输出的场景。高温度0.7 - 1.0效果拉平概率分布曲线给低概率词元更多“参与竞争”的机会。原本概率很低的gray、clear也会获得可观的被选中概率。特性输出更多样、更有创意内容重复性大幅降低。风险当温度过高时输出会出现逻辑混乱、语句不通顺的问题内容质量显著下降。最佳适用场景创意写作、头脑风暴、发散性内容创作等需要创造力的场景。总结低温度保证稳定精准高温度提升创意多样性2.4 本章小结本章从三个层面拆解了大语言模型的核心工作原理核心结论可总结为四点本质定位大语言模型本质是文档补全引擎而非事实数据库以模式模仿为核心逻辑因此天然存在幻觉与真实偏差特性。词元处理词元化是模型处理文本的基础步骤受词汇形态、多语言特性影响存在大量适配难题子词分词是当前主流方案BPE是应用最广的核心算法词元化机制直接决定了模型的能力边界与典型缺陷。停用词、词元标准化、词干提取是配套预处理技术可根据场景灵活选用。生成机制大模型采用自回归的逐词元生成方式无法回溯、无法停顿、易陷入重复循环线性生成的特性带来了不可避免的原生局限。采样与温度模型生成时会先计算全词表的概率分布再通过采样选出最终词元温度参数可调节采样的随机性低温度保证稳定精准高温度提升创意多样性不同场景下需要选择适配的取值。