背景与问题

很多开发者第一次接触大语言模型时,容易把它当成一个“更聪明的接口”:传入一段话,等待一段回答。真正落地后,问题很快出现:模型为什么会忘记前面的要求?为什么长文档粘贴进去后反而答非所问?为什么同样的问题,不同提示词会得到截然不同的结果?要理解这些现象,绕不开三个基础概念:Transformer、上下文窗口和提示词。

观山静思
观山静思

本文面向开发者与 AI 从业者,尝试用工程视角讲清楚:大语言模型是如何处理文本的,一次请求的可见范围有多大,以及我们应如何组织输入,让模型更稳定地完成任务。

核心概念

Transformer:大语言模型的主流骨架

据公开资料,当前主流大语言模型大多基于 Transformer 架构。它的核心突破并不神秘:不再像早期循环网络那样逐词顺序处理,而是通过自注意力机制一次性计算序列中各个词之间的关系。

可以把自注意力理解成一种“查找与加权”过程:每个词会生成 Query、Key、Value 三类向量,模型通过 Query 和 Key 的相似度得到注意力分数,再用这些分数对 Value 加权求和。这样,句子中的每个位置都能参考其他位置的信息。

# 极简示意:自注意力中的分数计算
scores = Q @ K.T / (d_k ** 0.5)
weights = softmax(scores)
output = weights @ V

这段伪代码不是为了实现完整模型,而是说明:注意力本质上是一组可学习的权重,决定模型在当前任务中更关注哪些上下文。实际 Transformer 还包含多头注意力、位置编码、残差连接、层归一化和前馈网络等模块。原始论文中常见编码器与解码器结构;而当前许多对话模型更常见 decoder-only 自回归结构,即根据前文逐个预测下一个 token。不同模型在结构细节上有差异,请以官方文档为准。

上下文窗口:模型一次能看见的范围

上下文窗口通常指模型在一次推理中能够处理的 token 上限。注意,这里说的是 token,不完全等于汉字、单词或字符。中文场景下,一个汉字可能对应一个或多个 token,具体取决于分词器。

工程上要把上下文窗口理解为“工作记忆”而不是“长期记忆”。如果历史对话、系统说明、检索资料、用户问题加起来超过窗口,通常会被截断或报错;即使没有超过,信息过多也可能导致关键内容被稀释。

提示词:输入组织方式,而不是咒语

提示词并不只是“问一句话”,而是整个输入的结构化设计。常见输入包括系统指令、背景资料、用户问题、示例、输出格式约束等。好的提示词往往不是堆砌形容词,而是明确任务边界、输入格式和验收标准。

实践步骤或检查清单

  • 先定义任务:是摘要、分类、抽取、改写,还是代码生成?不同任务需要不同的上下文和输出约束。
  • 控制上下文:不要把全部资料原样塞入窗口。优先保留与当前问题强相关的内容,必要时先做摘要、分段或检索。
  • 使用结构化指令:明确角色、目标、输入、限制和输出格式。例如要求模型只输出 JSON,或先给出结论再给出依据。
  • 提供少样本示例:如果任务格式复杂,可以给一到两个高质量示例,减少模型对格式的猜测。
  • 设置参数并测试:温度、最大输出长度等参数会影响结果稳定性。分类、抽取类任务通常更适合较低温度。
# 一个常见的消息组织示例
messages = [
  {'role': 'system', 'content': '你是严谨的技术编辑,回答要简洁。'},
  {'role': 'user', 'content': '用三句话解释上下文窗口。'}
]

这段代码展示的是对话式接口中常见的消息结构。实际字段名和调用方式会因平台而异,请以官方文档为准。

常见坑与建议

  • 把上下文窗口当永久记忆:模型不会自动记住窗口之外的历史。跨会话记忆需要外部存储、摘要或检索系统。
  • 盲目追求长上下文:窗口越大不等于效果越好。无关内容过多会增加成本,也可能让模型抓不住重点。
  • 忽略 token 计数:长文本应用应提前估算输入与输出 token,避免超限截断。
  • 提示词含糊:例如只写“帮我优化一下”,模型可能无法判断优化目标是性能、可读性还是风格。
  • 缺少验证:大语言模型可能生成看似合理但错误的内容。关键字段、数字、代码都应加入校验或测试。
  • 泄露敏感信息:不要把密钥、隐私数据或内部机密直接拼进提示词,除非已确认合规与安全边界。

延伸阅读方向

  • 注意力机制与模型结构:进一步理解 Query、Key、Value、多头注意力与位置编码。
  • Tokenizer 与 token 计数:了解不同分词器如何影响长度、成本与多语言效果。
  • RAG 检索增强生成:当知识量大且更新频繁时,可结合检索系统管理上下文。
  • 结构化输出与函数调用:学习 JSON Schema、工具调用和 Agent 设计。
  • 评估与回归测试:建立提示词版本管理、样例集和自动评估流程,让效果可度量。

总体来说,大语言模型不是黑盒魔法,而是可以被工程化约束的概率序列模型。理解 Transformer 的处理方式、上下文窗口的边界和提示词的组织方法,是进入 LLM 应用开发的第一步。

参考来源

免责声明:本文内容整理自公开网络资料,仅供学习交流参考,不代表观山书院立场。如涉及版权侵权,请联系我们删除。

联系邮箱:chenxj.g@gmail.com