ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

提示词工程入门

提示词工程入门 提示词工程提示词工程入门从结构化 Prompt 到 Few-shot 与 CoT本节核心提示词工程不是“套一句万能咒语”而是通过明确任务、补足上下文、提供示例、约束输出并持续测试迭代让模型更稳定地给出所需结果。一、什么是提示词工程Prompt Engineering是通过优化提示词和生成策略获得更优模型输出的一类工程方法。基本过程可以概括为Prompt → LLM → Completion → 评估 → 调整 Prompt说清楚目标准确描述希望模型完成的任务。补充必要细节不要让模型猜测关键背景和约束。持续迭代好提示词通常需要多轮测试和修改。灵活使用技巧方法应随模型、任务和数据变化不宜机械套模板。二、Prompt 的 5 个组成部分组成作用示例Instruction说明模型要做什么根据上下文回答问题Context提供任务相关背景资料、规则、角色设定Examples用样例展示回答方式输入与期望输出对Input本次任务的实际输入问题、文本、数据Output Format约束结果结构JSON、表格、固定字段并非每个 Prompt 都必须包含全部五项但任务越复杂结构越明确输出通常越稳定。三、准备模型调用函数课程使用 OpenAI 兼容接口调用通义千问完整代码如下import os import pandas as pd from openai import OpenAI from dotenv import load_dotenv load_dotenv() client OpenAI( api_keyos.getenv(“DASHSCOPE_API_KEY”), # 替换为你的 API Key base_url“https://dashscope.aliyuncs.com/compatible-mode/v1”, ) def generate_responses(prompt, model“qwen-plus”): response client.chat.completions.create( modelmodel, messages[ {“role”: “user”, “content”: prompt}, ], temperature0.7, # max_tokens128, ) return response.choices[0].message.content四、把自然语言问题改造成结构化 Prompt课程以 OKT3 的来源问答为例。关键做法是把指令、上下文和问题拆开再使用清晰的分隔符组合起来。instruction “” 根据下面的上下文回答问题。保持答案简短且准确。 如果不确定答案请回答“不确定答案”。 “” context “” Teplizumab 起源于一个位于新泽西的药品公司名为 Ortho Pharmaceutical。 在那里科学家们生成了一种早期版本的抗体被称为 OKT3。 最初这种分子是从小鼠中提取的能够结合到 T 细胞的表面 并限制它们的细胞杀伤潜力。在 1986 年它被批准用于帮助预防 肾脏移植后的器官排斥成为首个被允许用于人类的治疗性抗体。 “” query “” OKT3 最初是从什么来源提取的 “” prompt f“” {instruction} ### 上下文 {context} ### 问题 {query} “” response generate_responses(prompt) print(response)预期输出OKT3 最初是从小鼠中提取的。如果把问题改成资料里没有的OKT4模型应按指令回答“不确定答案”而不是自行编造。约束输出格式当结果还要交给程序处理时应明确指定输出格式例如instruction “” 根据下面的上下文回答问题。保持答案简短且准确。 如果不确定答案请回答“不确定答案”。 以 JSON 格式输出 {“具体问题”: “答案”} “”“示例结果{“OKT3 最初是从什么来源提取的”: “小鼠”}五、Zero-shot、One-shot 与 Few-shot方法示例数量适用情况Zero-shot0 个任务简单、模型已熟悉该任务One-shot1 个需要快速说明格式或风格Few-shot多个分类边界、规则或输出形式较难描述1. Zero-shot直接描述任务prompt “”” 将文本分类为中性、负面或正面。 文本明天要放假了又要带娃啊好烦。 情感 “” response generate_responses(prompt) print(response)预期输出情感负面2. Few-shot让模型从示例中理解规则示例不只是在教模型“答案是什么”也可以让模型理解新词、格式和表达规律。课程中的造词示例prompt “” “whatpu”是坦桑尼亚的一种小型毛茸茸的动物。 一个使用 whatpu 这个词的句子的例子是 我们在非洲旅行时看到了这些非常可爱的 whatpus。 “farduddle”是指快速跳上跳下。 一个使用 farduddle 这个词的句子的例子是 “” response generate_responses(prompt) print(response)模型生成孩子们在看到彩虹时兴奋地开始 farduddle。六、少样本提示的限制增加示例不等于一定得到正确答案。课程用“奇数之和是否为偶数”展示了这一点这组数字中的奇数加起来是一个偶数[4, 8, 9, 15, 12, 2, 1] A答案是 False。 这组数字中的奇数加起来是一个偶数[17, 10, 19, 4, 8, 12, 24] A答案是 True。 这组数字中的奇数加起来是一个偶数[16, 11, 14, 4, 8, 13, 24] A答案是 True。 这组数字中的奇数加起来是一个偶数[17, 9, 10, 12, 13, 4, 2] A答案是 False。 这组数字中的奇数加起来是一个偶数[15, 32, 5, 13, 82, 7, 1] A少样本效果受以下因素影响示例是否正确、清晰且具有代表性示例格式是否一致标签是否互相矛盾示例与真实输入的分布是否接近模型自身的推理能力是否足够模型是否遗漏数字、条件或上下文。实用建议不要只测试一个输入。应准备覆盖正常、边界和异常情况的小型评测集批量验证 Prompt 的稳定性。七、Chain-of-Thought思维链思维链的核心是把复杂任务拆成多个稍微简单的步骤让模型分步分析。课程中的基础示例小明有 20 个苹果吃了两个又买了 5 个小明现在一共有多少苹果 通过思维链 CoT 的方式来分析。在奇数求和任务中可以把只给真假标签的示例改成展示计算过程这组数字中的奇数加起来是一个偶数[4, 8, 9, 15, 12, 2, 1] A将所有奇数相加9、15、1得到 25答案为 False。这种写法能帮助能力较弱的模型模仿推理路径但CoT 不是正确性的保证。课程演示中模型仍可能漏掉数组元素或算错因此最终结果仍需程序校验或人工复核。八、实战检查清单任务目标是否明确是否只要求一件主要事情上下文是否完整边界条件是否写清是否使用标题或分隔符区分指令、资料和输入能否通过一个或多个高质量示例消除歧义是否指定 JSON、表格、字段名或字数等输出约束资料不足时是否要求模型明确回答“不确定”是否用多组测试数据验证而不是只看一次结果总结提示词工程的主线可以记成一句话明确任务 → 补足上下文 → 给出示例 → 约束格式 → 分步推理 → 批量验证 → 持续迭代。掌握结构化 Prompt、Zero/One/Few-shot 和思维链后还要把注意力放在评测上稳定、可复现、可校验的输出才是真正有价值的工程结果。strong
返回列表