LLM 核心参数配置
随机性控制参数
参数 | 作用原理 | 低值效果 | 高值效果 | 适用场景 | 使用建议 |
---|---|---|---|---|---|
温度 | |||||
(Temperature) | 调整输出概率分布形状 | 确定性高,聚焦最可能结果 | 随机性强,输出多样化 | 低值:事实问答 | |
高值:创意生成 | 与Top_p二选一 | ||||
Top_p | |||||
(核采样) | 限定概率质量前p%的词元采样池 | 输出精准稳定 | 输出多样性提升 | 低值:技术文档生成 | |
高值:故事续写 | 与温度参数互斥 |
长度控制参数
参数 | 功能 | 典型设置 | 使用场景 |
---|---|---|---|
最大长度 | |||
(Max Length) | 限制生成token总数 | 128-2048 tokens | 控制响应篇幅,避免冗余 |
停止序列 | |||
(Stop Sequences) | 检测到指定字符串时终止生成 | 如"11." 、"\n\n" |
限制列表项数量/强制分段 |
重复性控制参数
参数 | 惩罚机制 | 低值效果 | 高值效果 | 使用建议 |
---|---|---|---|---|
频率惩罚 | ||||
(Frequency Penalty) | 按词元出现次数惩罚 | 允许适度重复 | 强制词汇多样性 | 与存在惩罚二选一 |
存在惩罚 | ||||
(Presence Penalty) | 对出现过的词元施加固定惩罚 | 允许主题聚焦 | 推动探索新概念 | 创意写作首选 |
关键原则
温度/Top_p、频率惩罚/存在惩罚避免同时调整
参数效果因模型版本而异,需任务驱动实验
提示工程核心方法论
提示词基础结构
一个基础的样式
[指令] + [上下文] + [输入数据] + [输出指示]
指令:明确任务动作(
分类翻译
)上下文:补充背景知识(可省略)
输入数据:待处理内容(用户问题/文本)
输出指示:格式约束(
用JSON输出
)
示例
提示类型对比
类型 | 结构 | 优势 | 适用场景 |
---|---|---|---|
零样本提示 | 直接指令/问题 | 简洁高效 | 模型熟悉的简单任务 |
少样本提示 | 示例1+答案1 → 示例2+答案2 → 待回答问题 | 激发上下文学习能力 | 复杂推理/格式敏感任务 |
例子
提示设计五大黄金法则
从简到繁迭代
基础指令 → 添加上下文/格式约束 → 引入少样本示例
例子:
翻译文本
→翻译成西班牙语并输出为JSON
指令明确具体
使用强动作动词
生成、分类、总结
避免模糊:❌“简短说明” → ✅“用2句话解释,每句≤20字”
输出格式约束
显式声明格式
列表、JSON、Markdown表格
例子:
输出:<关键词1>,<关键词2>,...
正向引导原则
聚焦“要做什么”:✅“直接推荐全球热门电影”
替代“不要做”:❌“不要询问用户兴趣”
上下文精准投放
专业任务添加术语解释
长文本使用
###
分隔指令与输入
参数与提示的协同策略
任务类型 | 推荐参数配置 | 提示设计重点 |
---|---|---|
事实性问答 | 温度=0.2, Top_p=0.3 | 零样本+明确指令(用事实回答 ) |
创意写作 | 温度=0.8, 存在惩罚=0.5 | 少样本示例+开放式指令 |
技术文档生成 | Top_p=0.5, 频率惩罚=0.7 | 输出格式约束(Markdown标题 ) |
多轮对话 | 停止序列="\n用户:" |
注入历史对话上下文 |
提示词任务应用指南
文本概括
核心目标:压缩长文本为精炼摘要
关键技巧:指令精度控制:通过限定语句实现精准概括
原始指令:"解释抗生素" → 模型生成详细解释
优化指令:"用一句话解释以上内容:" → 模型生成单句摘要
长度调节:
"用一段话总结" → 生成中等篇幅的摘要
"用三句话概括" → 从多个角度提炼内容
信息提取
核心目标:精准定位并提取特定信息
高效模板:
[提取对象描述] + [原文段落]
↓
"提及上述[目标信息类型]:"
成功要素:
明确指定提取对象的属性(例如:产品名称、人名、数据)
使用冒号结尾以强制模型聚焦于目标信息
提取对象描述:某款药物
原文段落:青霉素是一种常见的抗生素...
→ 提及上述产品名称:青霉素
问答系统
核心目标:基于给定的上下文生成准确的回答
黄金结构:
指令:"基于上下文回答问题。答案要简短。"
语境:"上下文:[背景信息]"
问题:"问题:[具体问题]"
响应:"答案:[模型输出位]"
增强技巧:
设置容错机制(例如:"如果不确定,请说'不确定'")
案例:
上下文:张华是北京大学的学生。
问题:张华就读于哪所大学?
→ 答案:北京大学
文本分类
核心目标:生成标准化的分类输出
致命细节:
标签拼写校验(避免错误拼写)
使用冒号分隔符锁定输出格式(例如:"情感:")
对话系统
核心目标:控制对话的角色和风格
角色提示模板:
场景设定:"以下是与[角色]的对话"
风格指令:"助手的语气是[风格描述]"
对话历史:"人类:... AI:..."
当前输入:"人类:[新问题]"
AI:[待生成]
风格切换实例:
示例:
场景设定:以下是与老师的对话
风格指令:助手的语气是专业的
人类:什么是化学反应?
AI:化学反应是指物质之间发生相互作用,生成新物质的过程。
代码生成
核心目标:生成可执行的代码
任务分级策略:
简单任务(直接指令)
"/* 询问用户姓名并说你好 */"
→ JavaScript:
let name = prompt("请输入您的姓名");
console.log("你好," + name);
复杂任务(先提供数据结构)
表结构:部门表(部门ID,部门名称)... 学生表(学生ID,姓名,部门ID)...
查询指令:创建查询计算机系学生的MySQL查询
→ 输出:SELECT 姓名 FROM 学生表 WHERE 部门ID IN (SELECT 部门ID FROM 部门表 WHERE 部门名称 = '计算机系');
成功铁律:对于数据库操作,必须提供完整的表结构(schema)
推理任务
核心目标:解决逻辑推理问题
突破性方法:使用分步指令
原始指令:"奇数相加得偶数?15,32,5..." → 错误回答"否"
优化指令:
"通过以下步骤解决:
1. 识别奇数
2. 将它们相加
3. 指出总和是奇数还是偶数"
→ 正确步骤:15 + 5 + 13 + 7 + 1 = 41(奇数)
思维链雏形:
强制将复杂问题分解为多个步骤
显式定义每个计算步骤
跨任务核心原则
指令决定输出精度
模糊指令 → 随机输出
"用两句话解释" → 精准控制输出长度
格式约束高于内容
文本分类示例输出 → 确保100%格式匹配
"答案:"占位符 → 锁定响应位置
任务复杂度分级处理
简单任务:通过基础指令直接生成输出。
复杂任务:通过分步指令引导,使用思维链生成输出。
专业任务:基于数据结构生成精确输出。
容错机制不可或缺
知识边界声明:"不确定"
格式校验:预先提供示例输出