当前位置: 首页 > news >正文

面向超大规模模型的提示词工程

一段话看懂

对百亿乃至千亿参数的大语言模型(LLM)来说,“让模型做好题”有两条主线:

  • 提示工程——0 参数就能用,关键是给出“好提示”。

    • In-Context Learning(ICL):把少量“示例→答案”塞进同一次输入,靠语言模型的补全能力直接推理  。

    • Instruction-Tuning:先用大量“指令→答案”微调,让模型学会“听指令”  。

    • Chain-of-Thought(CoT):提示或输出里写下推理过程,显著提升算术/逻辑正确率  。

  • 参数高效微调(PEFT)——只改千分之几权重,让同一基座模型快速“贴题”。常见做法:Prefix/Prompt-Tuning、Adapter-Tuning、LoRA 及 QLoRA  。(下篇讲解)

三招提示法+三类 PEFT 共同撑起 2025 年企业级 LLM 落地:前者解决“怎么问”,后者解决“如何接线”。

 

1 三种提示工程

方法

最早工作

一句话原理

痛点

ICL

GPT-3 (2020)

K 条「示例+答案」放在测试样本前;模型当作长文本,一次性补全

模板敏感,结果方差大 

Instruction-Tuning

Google FLAN (2022)

用多任务「指令→答案」再训练一次,让模型学会“看到指令就执行”

需要额外微调一次,成本较高 

CoT

Chain-of-Thought Prompting (2022)

在提示或输出里显式书写中间推理步骤,模型再输出答案

只有“大模型”才显著生效,响应更长 


2 GPT-Style 中文伪代码

说明:已安装 openai 并设置 OPENAI_API_KEY。仅保留最小必要字段,演示核心逻辑。

下面把 6 种常见提示技巧 全部改写成「ChatCompletion 消息列表」风格(system / user / assistant)

说明

• 代码仍可直接运行(需 openai & 已配置 OPENAI_API_KEY)。

• 仅展示核心逻辑,异常捕获 / 分页等可按需添加。

• 若用国产大模型,只需把 model= 改成对应名称即可。


1.In-Context Learning(Few-shot 示例)

import openai, textwrapsystem_msg = "你是一位精准的中英翻译助手。"# 把 2 条演示 + 1 条测试都写进同一个 user 消息
user_prompt = textwrap.dedent("""
示例:把中文翻译成英文。
输入:你好
输出:hello示例:把中文翻译成英文。
输入:再见
输出:goodbye示例:把中文翻译成英文。
输入:销售
输出:
""").strip()rsp = openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=[{"role":"system","content":system_msg},{"role":"user",  "content":user_prompt}],temperature=0.0
)
print(rsp.choices[0].message.content.strip())   # → sell

2.Instruction-Tuning

system_msg = "你是一位精准的中英翻译助手。"
user_msg   = "请把“销售”翻译为英文,只给结果。"rsp = openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=[{"role":"system","content":system_msg},{"role":"user",  "content":user_msg}],temperature=0.2
)
print(rsp.choices[0].message.content.strip())   # → sell

3.Chain-of-Thought(Few-shot 中文算术)

import openai, textwrapsystem_msg = "你是一位善于逐步推理的数学助理。"cot_demo = textwrap.dedent("""
问:小明有 5 支铅笔,又买 2 盒,每盒 3 支,一共多少支?
答:让我们一步一步思考:
1. 原来 5 支。
2. 2 × 3 = 6 支。
3. 5 + 6 = 11 支。
因此答案是 11。
""").strip()problem = "问:盒子里有 12 本书,又放进去 7 本,现在多少本?\n答:让我们一步一步思考:"rsp = openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=[{"role":"system","content":system_msg},{"role":"user",  "content":cot_demo + "\n\n" + problem}],temperature=0.2
)
print(rsp.choices[0].message.content.strip())
# 典型输出(含推理步骤,最后给 19)

4.Self-Consistency(CoT × 多次采样投票)

import openai, collections, resystem_msg = "你是一位善于逐步推理的数学助理。"
question   = "问:盒子里有 12 本书,又放进去 7 本,现在多少本?\n答:让我们一步一步思考:"def ask_once():rsp = openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=[{"role":"system","content":system_msg},{"role":"user",  "content":question}],temperature=0.7         # ↑ 提高随机性)return rsp.choices[0].message.contentextract_num = lambda txt: int(re.findall(r"\d+", txt)[-1])  # 取答案里的数字
votes = [extract_num(ask_once()) for _ in range(5)]
answer = collections.Counter(votes).most_common(1)[0][0]
print("多数票答案 =", answer)      # 多数票 19 更稳

5.ReACT (Reason + Act + Tool Calls)

import openai, textwrapsystem_msg = "你可以调用工具 SEARCH[],如果需要外部信息请先思考再调用工具。"user_prompt = textwrap.dedent("""
问题:成吉思汗是哪一年去世?
Thought: 我需要具体年份。
Action: SEARCH[成吉思汗 去世 年份]
Observation: 1227 年 8 月 25 日
Thought: 信息已足够。
Action: ANSWER[1227]
""").strip()rsp = openai.ChatCompletion.create(model="gpt-4o-mini",messages=[{"role":"system","content":system_msg},{"role":"user",  "content":user_prompt}],temperature=0
)
print(rsp.choices[0].message.content.strip())
# 模型应按 Thought → Action → Observation → ANSWER 的格式续写
⚙️ 如需真正执行搜索,可结合 functions 或外部检索 API;这里为演示写死 Observation 内容。

6.Tree-of-Thought(单分支简化示例)

import openaisystem_msg = "你是一位善于枚举多种解法并选择最优的规划助理。"root_state = ("目标:用 1, 2, 3, 7 通过四则运算得到 9。\n""当前状态:[]  当前结果:0\n""请给出一步扩展及新的中间结果,只输出 '步骤: ...' 和 '结果: ...'。")rsp = openai.ChatCompletion.create(model="gpt-3.5-turbo",messages=[{"role":"system","content":system_msg},{"role":"user",  "content":root_state}],temperature=0.3
)
print(rsp.choices[0].message.content.strip())
# 真实 ToT 会递归展开多分支并打分;此处只示范首步格式

 

技巧对照速查

场景

推荐技巧

把它写进 messages

零代码改模型,快速 Demo

Few-shot ICL

多条示例塞进同一个 user

RAG / API 服务

Instruction-Tuning 基座

system 给角色,user 写指令

算术 / 逻辑推理

CoT ± Self-Consistency

user 里带示例或加“让我们一步一步思考”

需要外部检索

ReACT / 检索-CoT

在推理链中显式写 Action: SEARCH[…]

多方案规划

Tree-of-Thought

逐步展开分支,选最高分答案

一句话:把示例、指令或推理链放进 messages 就能“零修改”驱动 GPT 系列及国产指令模型;若需要更稳、更强,可再叠加 Self-Consistency、ReACT、ToT 这些 2023–2025 年的新玩法。

一句话:提示工程已从“塞几条示例”升级到“让模型自己思考、检索甚至搜索分支”;配合国产指令+CoT 预烤模型,2025 年企业可在 0 参数极小参数之间自由切换,把复杂推理跑上云端或手机端。

核心 takeaway 2020 – 2022 解决了“链式提示可提升推理”;

2023 – 2024 把链式提示接上 检索 / 工具 / 自演化,并完成了 国产模型预烤;

2025 的关键词是 “端侧 & 量化” —— 指令 + CoT 已嵌入轻量基座,零参数即可本地运行。


4 相关阅读 / 引用

  1. GPT-3 Few-shot 原论文 

  2. Google FLAN 系列 Instruction-Tuning 

  3. Chain-of-Thought Prompting 原论文 

  4. Google Scaling Instruction-Tuned Models 博文 

  5. “Let’s think step by step” Zero-shot CoT 示范 

  6. OpenAI ChatCompletion API 文档(temperature & messages) 

  7. Anthropic CoT Demo Notebook 

  8. FLAN-T5 互动教程 

  9. Google Symbol Tuning 研究提高 ICL 稳定性 

  10. OpenAI 产品文档主页 


一句话:提示工程关心“问得巧不巧”,PEFT 关心“改得省不省”;选好工具,你就能在 0 参数到极小参数之间自由切换,把 LLM 落到业务场景。

 

http://www.xdnf.cn/news/620479.html

相关文章:

  • UE5 图片导入,拖到UI上变色
  • 解决 cursor 中不能进入 conda 虚拟环境
  • PDF 转 JPG 图片小工具:CodeBuddy 助力解决转换痛点
  • 实现tdx-hs300-mcp
  • 【动态规划】简单多状态(二)
  • RIP 协议实验全记录:从配置到问题解决
  • HTTP基本概述
  • 在WPF程序中设置背景图片
  • ModbusRTU转profibusDP网关与RAC400控制器快速通讯
  • 【大模型面试每日一题】Day 27:自注意力机制中Q/K/V矩阵的作用与缩放因子原理
  • 计算机网络中的路由算法:互联网的“路径规划师”
  • 笔记本电脑右下角wifi不显示,连不上网怎么办?
  • 30-消息队列
  • .NET ORM开发手册:基于SqlSugar的高效数据访问全攻略
  • LangChain构建RAG的对话应用
  • Windows 11 电源计划进阶——通过异类策略优化大小核CPU调度
  • 机器学习的一些基本概念
  • DNS Server在高可用高并发系统中的应用
  • 基于cornerstone3D的dicom影像浏览器 第二十二章 mpr + vr
  • 如何选择支持AI接入的开发语言与框架
  • 错误原因详解
  • windows10重装ssh无法下载
  • List<Integer> list=new ArrayList<>()
  • SpringAI 大模型应用开发篇-纯 Prompt 开发(舔狗模拟器)、Function Calling(智能客服)、RAG (知识库 ChatPDF)
  • 万亿参数背后的算力密码:大模型训练的分布式架构与自动化运维全解析
  • 开源与闭源之争:AI时代的创新博弈与未来抉择
  • 记录将网站从http升级https
  • 【前端系列】ECharts:数据可视化的强大工具
  • 打卡第27天:函数的定义与参数
  • 通过shell脚本检测服务是否存活并进行邮件的通知