提示工程:与大模型对话的“语法“
摘要2026 年的大模型能力已经非常强大但同样的模型给不同的人用效果天差地别。差别不在于模型而在于提示词Prompt——你如何向模型描述任务。提示工程就是研究如何写出更好的提示的学科。这篇文章从零样本到思维链系统讲解提示工程的核心技术全部基于本地运行的 Qwen3 模型无需 API。一、为什么提示词如此重要本质原因大模型在训练时学会了海量的知识但在推理时它需要在记忆中定位到正确的部分。提示词就是定位器——告诉模型应该调用哪些知识来处理当前任务。不好的提示 分析这个 → 模型不知道分析什么、怎么分析、输出格式是什么 → 输出质量差 ❌ 好的提示 你是一个金融分析师。请分析以下财报数据 从营收增长、利润率、现金流三个维度给出评估 用表格形式输出。 → 模型知道角色、任务、维度、格式 → 输出质量高 ✅提示词对结果的影响有多大任务类型差提示好提示提升幅度文本分类60%92%32%信息提取45%88%43%推理题30%82%52%代码生成50%85%35%一个好的提示词带来的提升可能比换一个更大的模型还明显。二、零样本提示Zero-shot最简单的形式直接告诉模型任务不给任何示例。from transformers import AutoModelForCausalLM, AutoTokenizer # 加载本地 Qwen3 模型 model_name d:/ai/models/Qwen3-0.6B tokenizer AutoTokenizer.from_pretrained(model_name, trust_remote_codeTrue) model AutoModelForCausalLM.from_pretrained( model_name, trust_remote_codeTrue, device_mapauto ) def qwen3_prompt(prompt, max_new_tokens200): 对 Qwen3 模型发送提示并获取回复 messages [{role: user, content: prompt}] text tokenizer.apply_chat_template( messages, tokenizeFalse, add_generation_promptTrue ) inputs tokenizer(text, return_tensorspt).to(model.device) outputs model.generate( **inputs, max_new_tokensmax_new_tokens, temperature0.7, do_sampleTrue, ) response tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokensTrue) return response.strip() # 零样本分类 prompt 以下句子的情感是正面还是负面\n句子这部电影太精彩了演员演技一流。\n情感 print(qwen3_prompt(prompt)) # 正面 # 零样本信息提取 prompt 从以下文本中提取日期、金额和用途三个字段 文本我在2026年6月15日向希望工程捐款500元。 输出格式JSON print(qwen3_prompt(prompt)) # {日期: 2026年6月15日, 金额: 500元, 用途: 向希望工程捐款}零样本的五个标准任务模板# 1. 分类任务 prompt_cls 将以下评论分类为正面或负面。 评论{text} 分类 # 2. 提取任务 prompt_ext 从以下文本中提取{fields}。 文本{text} {fields} # 3. 生成任务 prompt_gen 写一篇关于{topic}的短文{requirements}。 文章 # 4. 改写任务 prompt_rewrite 将以下句子改写得{style} 原句{sentence} 改写后 # 5. 推理任务 prompt_reason 问题{question} 请一步步推理然后给出答案。 推理过程 答案零样本的局限零样本虽然简单但对复杂任务效果不稳定——模型可能猜错任务格式。这时就需要少样本提示。三、少样本提示Few-shot核心思想在提示词中给模型提供几个示例exemplars让模型照葫芦画瓢。零样本 少样本 任务描述 任务描述 ↑ ↓ 示例1: ... → ... 模型自己猜 ← 不确定性高 示例2: ... → ... 示例3: ... → ... ↑ ↓ 模型模仿模式 ← 稳定性高代码实现# 少样本分类 few_shot_prompt 将以下评论分类为正面或负面。 评论这东西质量太差了用了三天就坏了。 分类负面 评论价格实惠效果超出预期非常满意。 分类正面 评论一般般吧不算好也不算差。 分类中性 评论{test_comment} 分类 test 快递很慢但产品本身还不错。 print(qwen3_prompt(few_shot_prompt.replace({test_comment}, test)))示例数量的影响from tqdm import tqdm import numpy as np # 对比 0-shot、1-shot、3-shot、5-shot 的效果 def evaluate_n_shot(n_shots, test_samples): 评估不同 shot 数量的准确率 correct 0 for sample in tqdm(test_samples): if n_shots 0: prompt zero_shot_template.format(textsample[text]) else: # 选前 n 个示例 examples few_shot_examples[:n_shots] prompt build_few_shot_prompt(examples, sample[text]) pred qwen3_prompt(prompt) if pred.strip() sample[label]: correct 1 return correct / len(test_samples) # 假设测试结果 print(示例数 vs 准确率) print(0-shot: 62.5% ← 最差) print(1-shot: 75.0% ← 提升显著) print(3-shot: 87.5% ← 再提升) print(5-shot: 91.5% ← 边际递减开始) print(7-shot: 92.0% ← 几乎不涨)规律从 0→1 提升最大12.5%从 1→3 再提升12.5%超过 5 个后提升明显放缓一般 3-5 个示例足够示例选择的策略不是随便选的示例都有效策略做法效果随机选择从训练集中随便抽⭐⭐⭐ 一般相似选择选和测试样本最相似的作为示例⭐⭐⭐⭐ 好多样性选择覆盖不同类别、不同难度⭐⭐⭐⭐⭐ 最好最近邻选择用 embedding 找最近邻⭐⭐⭐⭐⭐ 最佳四、思维链Chain-of-Thought, CoT为什么需要 CoT对于复杂推理问题直接让模型给出答案往往不正确——它跳过了推理过程。❌ 直接问标准提示 Q: 一个商店有 15 个苹果卖掉了 7 个又进了 9 个现在有多少个 A: 17 个 → 可能蒙对的也可能算错 ✅ 思维链提示 Q: 一个商店有 15 个苹果卖掉了 7 个又进了 9 个现在有多少个 A: 原来有 15 个。卖掉 7 个15 - 7 8 个。又进 9 个8 9 17 个。所以答案是 17 个。 → 推理过程可见即使答案错也能定位到哪步错了CoT 的两种方式方式 1手动 CoT在提示中给出推理示例cot_prompt 问题一个班级有 24 名学生其中 1/3 是女生其余是男生。后来转来了 4 名女生现在女生占多少比例 推理过程 1. 原来有 24 名学生1/3 是女生24 × 1/3 8 名女生 2. 原来男生人数24 - 8 16 名 3. 转来 4 名女生后女生总数8 4 12 名 4. 学生总数变为24 4 28 名 5. 女生占比12 / 28 3/7 ≈ 42.9% 答案42.9% 问题小明买了 3 支钢笔和 5 支铅笔钢笔每支 12 元铅笔每支 2 元他付了 50 元应该找回多少 推理过程 print(qwen3_prompt(cot_prompt))方式 2零样本 CoT简单加上一步步思考# 零样本 CoT——最简单有效的技巧 zero_shot_cot 问题{question} 让我们一步步思考。 question 一个长方形的长是 8 厘米宽是 5 厘米它的周长和面积各是多少 print(qwen3_prompt(zero_shot_cot.replace({question}, question))) # 输出: # 让我们一步步思考。 # 1. 长方形的周长 2 × (长 宽) 2 × (8 5) 2 × 13 26 厘米 # 2. 长方形的面积 长 × 宽 8 × 5 40 平方厘米 # 答案周长 26 厘米面积 40 平方厘米让我们一步步思考——这是在零样本提示中激活推理能力最有效的一句话。CoT 的效果任务类型标准提示CoT 提示提升算术推理58%92%34%常识推理72%88%16%符号推理30%76%46%事实问答85%87%2%几乎无影响CoT 对需要多步推理的任务提升巨大对简单事实问答效果不明显。五、结构化提示模板一个好提示的五个要素一个高质量的提示通常包含以下组件角色Role 你是一个{角色} 上下文Context 当前的情况是{上下文} 任务Task 你需要完成的任务是{任务} 格式Format 请用{格式}输出 约束Constraint 请注意{约束条件}通用模板def build_structured_prompt(role, task, context, examples, output_format, constraints): 构建结构化提示 parts [] if role: parts.append(f你是一个{role}。) if context: parts.append(f\n背景信息{context}) if task: parts.append(f\n任务{task}) if examples: parts.append(f\n示例\n{examples}) if output_format: parts.append(f\n输出格式{output_format}) if constraints: parts.append(f\n约束条件{constraints}) parts.append(\n请开始) return \n.join(parts) # 示例用结构化模板做文章摘要 prompt build_structured_prompt( role资深编辑, context以下是一篇科技新闻文章, task用 3 句话总结文章的核心内容, output_format- 第一句文章主题\n- 第二句关键发现\n- 第三句行业影响, constraints每句话不超过 30 字 ) print(prompt)项目符号 vs 段落# ❌ 模糊的段落描述 bad_prompt 请分析这个产品的用户评论告诉我用户喜欢什么和不喜欢什么。 # ✅ 结构化的项目符号 good_prompt 请分析以下产品评论按类目输出分析结果 评论内容 {reviews} 分析要求 - 正面反馈列出 Top 3 - 负面反馈列出 Top 3 - 改进建议列出 Top 2 - 总体评分1-10 分 每个点用一句话概括。 六、系统提示System PromptSystem Prompt vs User Prompt许多大模型包括 Qwen3支持两段式对话结构类型作用示例System Prompt设定模型的角色、行为规则、输出风格你是一个乐于助人的助手用中文回答保持简洁User Prompt当前的具体问题量子计算的基本原理是什么# Qwen3 的系统提示用法 messages [ {role: system, content: 你是一个资深的Python技术作家。你的回答始终保持简洁、准确包含代码示例。}, {role: user, content: 解释Python中的装饰器是什么} ] text tokenizer.apply_chat_template(messages, tokenizeFalse, add_generation_promptTrue) # → 模型会按照系统提示中设定的角色和风格来回答系统提示的最佳实践# 角色设定——最有效 system_role 你是一个{专业角色}。你有{经验}年的{领域}经验。 # 行为规则——具体而非抽象 system_rules 回答规则 1. 始终保持客观中立 2. 如果不确定请明确说不确定 3. 用 bullet point 组织信息 4. 每点不超过 20 字 # 输出偏好——指定格式 system_format 输出格式偏好 - 技术概念定义 → 原理 → 示例 → 类比 - 步骤说明用数字序号列出 - 对比使用表格 # 组合成完整的系统提示 system_prompt f{system_role}\n{system_rules}\n{system_format}七、温度参数与采样策略TemperatureTemperature 控制模型输出的随机性def generate_with_temp(prompt, temperature0.7): 不同 temperature 的生成效果 messages [{role: user, content: prompt}] text tokenizer.apply_chat_template(messages, tokenizeFalse, add_generation_promptTrue) inputs tokenizer(text, return_tensorspt).to(model.device) outputs model.generate( **inputs, max_new_tokens200, temperaturetemperature, do_sampleTrue, ) return tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokensTrue)Temperature效果适用场景0.0 ~ 0.2确定性输出几乎每次一样分类、提取、翻译0.3 ~ 0.5轻度随机一般问答0.6 ~ 0.8创造性输出写作、头脑风暴0.9 ~ 1.0高随机性诗歌、创意故事Top-pNucleus Sampling另一种控制随机性的方式只考虑累积概率达到 p 的 token。# Top-p 建议和 Temperature 配合使用 outputs model.generate( **inputs, temperature0.7, top_p0.9, # 只考虑累积概率前 90% 的 token do_sampleTrue, )参数组合建议任务类型TemperatureTop-pmax_new_tokens分类/提取0.11.050-100问答0.30.9200-500文本生成0.70.9500-2000代码生成0.20.9500-2000创意写作0.80.95500八、提示工程的常见错误错误 1提示太模糊❌ 帮我看看这个数据 ✅ 你是一个数据分析师。请分析以下 CSV 数据\n1. 计算每月的销售额趋势\n2. 找出销售额最高的品类\n3. 用表格输出错误 2没有指定输出格式❌ 提取邮件中的信息 ✅ 从以下邮件中提取发件人、日期、主题、优先级。用 JSON 格式输出。错误 3忽略了模型的能力边界❌ 让 0.6B 模型做复杂的多步推理它可能做不了 ✅ 把复杂任务拆成多个简单步骤分别提示错误 4一次性给太多信息❌ 在提示中塞入 5000 字的信息小模型上下文有限 ✅ 只提供最关键的信息必要时分多次对话九、总结技术一句话适用场景零样本直接描述任务不给示例简单任务格式明确少样本给 3-5 个示例让模型模仿复杂任务需要稳定格式思维链 CoT让模型一步一步推理数学、逻辑、多步推理结构化模板角色任务格式约束生产环境一致性要求高系统提示设定模型的角色和行为规则需要固定风格的场景核心三句话提示词是编程语言的新形态——和写代码一样需要精确、结构化、可测试让我们一步步思考是最强大的单句提示技巧——在推理任务上平均提升 20%提示工程不是玄学有规律可循——角色设定、示例选择、格式指定都有科学方法

相关新闻

AI专著撰写新利器!一键生成20万字专著,高效解决写作难题!

AI专著撰写新利器!一键生成20万字专著,高效解决写作难题!

AI 写专著工具助力学术创作 撰写学术专著需要严谨的态度,而这一切都离不开大量的文献与数据支持。资料的收集和数据的整合,往往是写作过程中最耗时费力的环节。研究者必须全面地查阅国内外的前沿文献,这不仅要求文献具备权威性和相关性&…

2026/6/20 13:49:00阅读更多 →
爱享素材下载器:跨平台网络资源一键获取终极指南

爱享素材下载器:跨平台网络资源一键获取终极指南

爱享素材下载器:跨平台网络资源一键获取终极指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 在当今内容为王的…

2026/6/20 13:49:00阅读更多 →
Noto字体:彻底解决全球900+语言显示问题的终极方案

Noto字体:彻底解决全球900+语言显示问题的终极方案

Noto字体:彻底解决全球900语言显示问题的终极方案 【免费下载链接】noto-fonts Noto fonts, except for CJK and emoji 项目地址: https://gitcode.com/gh_mirrors/no/noto-fonts 你是否曾在浏览网页或使用应用时,看到奇怪的方框符号代替文字&am…

2026/6/20 13:49:00阅读更多 →
如何用OpenVR-SpaceCalibrator实现VR设备跨品牌兼容:终极免费解决方案

如何用OpenVR-SpaceCalibrator实现VR设备跨品牌兼容:终极免费解决方案

如何用OpenVR-SpaceCalibrator实现VR设备跨品牌兼容:终极免费解决方案 【免费下载链接】OpenVR-SpaceCalibrator Use tracked VR devices from one company with any other. 项目地址: https://gitcode.com/gh_mirrors/op/OpenVR-SpaceCalibrator 你是否曾经…

2026/6/20 17:24:35阅读更多 →
3个革命性技巧:深度解析KubeEdge如何重塑边缘计算架构

3个革命性技巧:深度解析KubeEdge如何重塑边缘计算架构

3个革命性技巧:深度解析KubeEdge如何重塑边缘计算架构 【免费下载链接】kubeedge Kubernetes Native Edge Computing Framework (project under CNCF) 项目地址: https://gitcode.com/GitHub_Trending/ku/kubeedge KubeEdge作为CNCF毕业项目,是业…

2026/6/20 17:24:35阅读更多 →
数字员工来袭:成本大降、效率飞升,各行业从业者体验如何?

数字员工来袭:成本大降、效率飞升,各行业从业者体验如何?

数字员工:从科幻到现实“数字员工”这个曾带科幻色彩的词,正成为现实工作方式。近一两年,AI能力明显提升,今年年初OpenClaw引发的“龙虾热”中,AI Agent能接管浏览器等,让人感觉AI开始“动手干活”。百度创…

2026/6/20 17:24:35阅读更多 →
3分钟掌握视频压缩:CompressO免费开源工具完整指南

3分钟掌握视频压缩:CompressO免费开源工具完整指南

3分钟掌握视频压缩:CompressO免费开源工具完整指南 【免费下载链接】compressO Convert any video/image into a tiny size. 100% free & open-source. Available for Mac, Windows & Linux. 项目地址: https://gitcode.com/gh_mirrors/co/compressO …

2026/6/20 17:24:35阅读更多 →
2026更新版!AI论文工具深度测评与推荐

2026更新版!AI论文工具深度测评与推荐

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/6/20 17:24:35阅读更多 →
Adobe-GenP 3.0终极指南:5分钟免费激活Adobe全系列软件的完整解决方案

Adobe-GenP 3.0终极指南:5分钟免费激活Adobe全系列软件的完整解决方案

Adobe-GenP 3.0终极指南:5分钟免费激活Adobe全系列软件的完整解决方案 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP Adobe-GenP 3.0是一款专为Adobe C…

2026/6/20 17:19:35阅读更多 →
【课程设计/毕业设计】基于 Web 的高校县志馆藏信息综合管理系统设计与实现 基于Django的青岛滨海学院特色文献捐赠流转管理系统的设计与实现【附源码、数据库、万字文档】

【课程设计/毕业设计】基于 Web 的高校县志馆藏信息综合管理系统设计与实现 基于Django的青岛滨海学院特色文献捐赠流转管理系统的设计与实现【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/6/20 0:02:40阅读更多 →
MC68HC908RF2A定时器PWM生成原理与实战:无缓冲与缓冲模式详解

MC68HC908RF2A定时器PWM生成原理与实战:无缓冲与缓冲模式详解

1. 项目概述与核心价值在嵌入式开发,尤其是电机驱动、LED调光、开关电源这些需要精确控制“能量”的领域,脉冲宽度调制(PWM)技术是工程师手中的一把瑞士军刀。它的本质很简单:用一个固定频率的方波,通过改变…

2026/6/20 0:02:40阅读更多 →
在银河麒麟V10桌面(2205版本)上实战部署软RAID 1:从模块黑名单到自动挂载

在银河麒麟V10桌面(2205版本)上实战部署软RAID 1:从模块黑名单到自动挂载

1. 银河麒麟V10桌面系统与软RAID 1基础认知 第一次在银河麒麟V10桌面上折腾软RAID 1时,我踩了不少坑。这个国产操作系统基于Linux内核,但2205版本对软RAID模块做了特殊处理,需要额外操作才能正常使用。软RAID 1其实就是磁盘镜像技术&#xff…

2026/6/20 0:02:40阅读更多 →