大语言模型的本质
LLM 是什么?
大语言模型(Large Language Model,LLM)是一种基于 Transformer 架构的深度学习模型,通过在海量文本数据上进行预训练,学习了人类语言的统计规律。从本质上说,LLM 在做一件事:预测下一个 token 的概率分布。
当你输入"巴黎是法国的"时,模型根据训练数据中的统计模式,预测下一个词最可能是"首都"(概率 0.92),其次是"城市"(0.05),再次是"首席"(0.02)……然后根据这个概率分布采样出一个词,再预测下一个,如此循环,直到生成完整的回复。
LLM 不是在"查找"正确答案,而是在"生成"最可能的文本序列。这解释了为什么它会"幻觉"(生成听起来合理但实际错误的内容)——因为统计上合理不等于事实上正确。理解这一点,是学好提示词工程的第一步。
核心术语词典
Temperature 与 Top-P 的实用指南
按任务类型选择参数
| 任务类型 | 推荐 Temperature | 推荐 Top-P | 说明 |
|---|---|---|---|
| 代码生成、Bug 修复 | 0 – 0.2 | 0.1 | 需要确定性和准确性,低随机性 |
| 数据提取、格式转换 | 0 | 0.1 | 结构化输出,要求完全可重复 |
| 问答、摘要生成 | 0.3 – 0.7 | 0.9 | 准确性优先,允许轻微变化 |
| 文案写作、内容创作 | 0.7 – 1.0 | 0.9 | 平衡创造性与连贯性 |
| 头脑风暴、创意生成 | 1.0 – 1.5 | 0.95 | 高创造性,允许意外发现 |
对于生产环境的应用,建议将 temperature 固定为确定值(如 0 或 0.3),而不是使用默认值,这样输出更稳定可预期。在调试阶段可以尝试不同值找到最优设置。
提示词的基本结构
四要素框架
一个完整的提示词通常由四个要素组成,并不是所有要素都必须包含,但理解每个要素的作用有助于构建更有效的提示词:
结构化提示词示例
下面是一个将四要素结合的完整示例:
# 指令
你是一位资深产品经理,请分析以下用户反馈,提取主要问题和改进建议。
# 上下文
这是我们 App 在应用商店的用户评论,产品是一款待办事项管理应用,
目标用户是职场人士,我们下个月有版本迭代计划。
# 输入数据
---
"同步经常出问题,手机和电脑的数据不一致,很烦躁"
"界面还不错,但是没有日历视图,不知道本周有哪些任务"
"标签功能很好用,希望能支持子标签"
"提醒通知太频繁了,能不能自定义提醒时间间隔"
---
# 输出格式
以 JSON 格式返回,包含三个字段:
- issues: 主要问题列表(按严重程度排序)
- suggestions: 改进建议列表
- priority_feature: 下个版本最应该优先做的功能(1个)
当提示词中同时包含指令和输入数据时,使用 ---、``` 或 XML 标签(<text>...</text>)明确分隔两者,可以防止"Prompt Injection"——恶意输入通过模拟指令格式劫持模型行为。这是生产环境中的重要安全实践。
不同模型的特性对比
主流 LLM 对比
| 模型 | 上下文窗口 | 擅长领域 | 提示词特点 |
|---|---|---|---|
| GPT-4o | 128K tokens | 代码、推理、多模态 | 遵循指令能力强,对格式要求敏感 |
| Claude 3.5 Sonnet | 200K tokens | 长文档分析、写作、安全 | 偏好 XML 标签结构,拒绝有害请求更严格 |
| Gemini 1.5 Pro | 100 万 tokens | 超长文档、视频理解 | 超大上下文优势明显,适合全文档分析 |
| Llama 3.1 405B | 128K tokens | 开源、可本地部署 | 遵循标准聊天模板,可微调 |
模型无关的提示词原则
尽管不同模型有各自的特点,以下原则在所有主流 LLM 上均有效:
- 越具体越好:模糊的指令带来随机的结果,具体的指令带来可预期的输出
- 正面表达优于负面表达:"请用简洁语言回复"优于"请不要啰嗦"
- 示例胜过说明:与其描述你想要的格式,不如直接给一个例子
- 角色设定增强效果:让模型扮演专家角色通常能提升相关领域的输出质量
- 迭代优化:第一版提示词很少是最优的,通过测试和修改不断改进
为什么提示词质量直接影响输出?
信息压缩与解压的视角
可以把 LLM 理解为一个巨大的压缩文件——训练数据中的所有知识和模式都被压缩进了模型参数中。而提示词就是"解压密码":不同的提示词会激活模型参数空间的不同区域,解压出不同的知识和能力。
一个精心设计的提示词,能激活模型中最相关的"知识区域",引导其沿着最有价值的推理路径前进。一个模糊的提示词,则会导致模型在概率最高的"平均路径"上行进,输出的是最"普通"的内容,而非最有价值的内容。
提示词长度和质量不成正比。超长的提示词可能导致模型"注意力分散",尤其是关键指令被淹没在大量背景信息中。研究表明,最重要的指令应该放在提示词的开头或结尾,而不是中间(模型对首尾位置的注意力更强)。
实验:相同问题,不同提示词
差的提示词:
帮我写一封邮件
结果:模型不知道收件人、主题、语气、长度,只能生成通用模板。
好的提示词:
写一封给客户 A 公司
CTO 的合作邀请邮件。
背景:我们是 B 公司(SaaS 工具),
希望探讨在他们的开发流程中
集成我们产品的可能性。
语气:专业但不刻板,
长度:200-250 字,
在第二段提及我们的核心价值点:
节省 40% 的代码审查时间。