行业资讯
笔记九:提示工程与模型压缩——从入门到实战
摘要:本文系统性地介绍了提示工程(Prompt Engineering)与模型压缩(Model Compression)两大核心主题。提示工程部分涵盖上下文学习、零样本/少样本提示、指令遵循、结构化输出、思维链等十大技术,从大白话解释到深度原理剖析,配合大量代码示例和反直觉洞察。模型压缩部分深入讲解量化、剪枝、知识蒸馏三大方法,包含核心公式推导、灵魂拷问和实战选择指南。适合AI开发者、产品经理及所有希望深入理解大模型使用与部署的读者。第一部分:提示工程(Prompt Engineering)1. 提示工程是什么?(总纲)大白话解释提示工程就是“怎么跟AI说话,才能让它乖乖按你的要求干活”。深度剖析提示工程是设计输入给大语言模型(LLM)的提示词(Prompt),从而可靠地引导出期望行为的学科。它的核心特点是:不改变模型本身的权重(参数)。与之相对的是微调(Fine-Tuning)——微调相当于给AI“动手术改脑子”(改模型权重),费时费力还烧钱;而提示工程相当于给AI“下指令或给例题”(不改脑子),只是通过巧妙的提问方式把AI已有的本事“勾”出来。提示工程是目前最快、最便宜、最有效的优化手段,即使在使用微调模型时依然不可或缺。关键对比提示工程微调操作对象输入的提示词模型权重成本极低(改文字而已)极高(需要GPU算力)速度即时生效需要数小时到数天训练本质激发模型已有能力给模型注入新能力2. 上下文学习(In-Context Learning,ICL)大白话解释我不跟你讲大道理,直接给你看几个例题,你照着学。深度剖析上下文学习是大语言模型的一项惊人能力:在推理阶段(Inference Time),仅凭提示词中提供的输入-输出示例(Examples),模型就能“学会”一个新任务——不需要任何梯度更新(Gradient Update)。模型从示例的模式中隐式地推断出任务是什么,并推广到新的输入上。为什么上下文学习能work?(底层原理)隐式贝叶斯推断(Implicit Bayesian Inference):模型在预训练阶段见过数百万种任务。提示词中的示例就像一把“钥匙”,帮它在自己学过的海量知识分布中定位到当前对应的那个任务。归纳头(Induction Heads):模型中某些特定的注意力头学会了复制模式(比如“A对应B,那么C对应?”),从而实现了上下文中的泛化能力。任务向量(Task Vectors):上下文学习在模型的“残差流(Residual Stream)”中创建了隐式的任务表征,这些表征会引导生成过程朝着示例所展示的格式和内容方向走。规模效应(Scaling Behavior)上下文学习的能力主要在大模型(参数量超过约10亿)上才会显现,并且随着模型规模的增大而对数线性(Log-Linearly)提升。小模型可以死记硬背示例,但很难在同一个上下文窗口内泛化到新的输入上。3. 零样本提示(Zero-Shot Prompting)大白话解释例题都不给,直接下一条明确的指令,让AI凭常识去干。深度剖析零样本提示不提供任何示例——只有任务描述或指令。模型必须完全依赖它的预训练知识和指令微调(Instruction-Tuning)来产生正确的格式和内容。举例:零样本情感分类提示词:text将以下电影评论分类为正面(POSITIVE)或负面(NEGATIVE)。 评论:“ cinematography was breathtaking but the plot felt rushed and predictable.” 情感:模型直接输出:NEGATIVE什么时候零样本好用?模型在预训练/指令微调阶段大量见过的任务(翻译、摘要、情感分析);指令清晰明确,输出格式不含糊;使用的是指令微调过的模型(如ChatGPT、Claude、Llama-3-Instruct)——它们在零样本任务上表现远好于基座模型(Base Model)。什么时候零样本会翻车?新颖的格式:模型没见过的输出格式;领域特定的标签体系:比如医学影像的专业编码;模棱两可的任务:光靠一句指令,模型无法推断你的确切要求。4. 少样本提示(Few-Shot Prompting)大白话解释不光说要求,还甩给你几个例题照着做。这是实际工作中最常用、最管用的提示技巧。深度剖析少样本提示在正式提问之前,提供k 个输入-输出示例(称为“shots”)。这是上下文学习最常见的形式,也是最有效的提示策略之一。举例:少样本命名实体识别(NER)提示词:text从文本中提取命名实体。格式:[实体](类型) 文本:"Apple released the iPhone 15 in Cupertino." 实体:Apple, iPhone 15, Cupertino 文本:"Elon Musk announced Tesla's new factory in Berlin." 实体:Elon Musk, Tesla, Berlin 文本:"OpenAI partnered with Microsoft to deploy GPT-4." 实体:模型照着前面的格式输出:[OpenAI](ORG), [Microsoft](ORG), [GPT-4](PRODUCT)少样本示例的5条黄金设计原则多样性(Diversity):示例要覆盖各种情况(不同长度、边界情况、各种类别),让AI“见多识广”。排序(Ordering):把最难、最典型的示例放在最后面。因为AI有近因偏差(Recency Bias)——它更记得最后看到的东西。最后放难的,它印象最深,效果最好。标签平衡(Label Balance):如果是分类任务,正面和负面示例数量要差不多,避免AI偏向某一类。格式一致性(Format Consistency):所有示例的格式必须一模一样——标点、换行都要一致。AI是个“强迫症”,格式乱了它就跟着乱。相关性(Relevance):示例最好跟你最终要问的问题在语义上相似(比如问科技新闻就别给美食评论的例子)。给几个示例最好?效果通常从 0 个增加到4~8 个时提升最明显;超过 20 个后收益微乎其微,还白白浪费上下文窗口(Context Window)。🔥 反直觉的真相(非常重要!)例子的“格式”和“标签选项”比“标签是否正确”还重要!研究表明——哪怕你给AI的例题里标注的答案全是乱写的(随机标签),只要格式规整、条理清晰,AI依然能学会按这个格式输出。当然,给正确答案效果更好。但这个结论告诉我们:在没把握写对答案时,先把格式写漂亮,远比纠结答案对不对更重要。5. 指令遵循提示(Instruction-Following Prompts)大白话解释怎么给AI“下圣旨”,才能让它像听话的员工一样严格执行,而不是自由发挥。深度剖析指令微调过的模型对清晰、结构化的指令响应最好。核心心法是:把提示词当作一份“技术规格说明书(Specification)”,而不是一句“建议(Suggestion)”。写好指令提示的“黄金六件套”(万能公式)组成部分大白话解释例子1. 角色(Role)给AI一个身份,激活它对应的知识库“你是一名医学文献审稿人。”2. 任务(Task)明确告诉它要干什么“总结下面这篇研究摘要。”3. 背景(Context)补充必要的前提信息“这篇文章来自《新英格兰医学杂志》。”4. 约束(Constraints)最关键!限制字数、语气、格式、禁止项“最多3句话;禁止用术语;必须包含临床意义;不准推测。”5. 示例(可选)如果格式特殊,给1个示例(可选项)6. 输入(Input)最终要处理的具体数据[把医学摘要粘贴在这里]举例:带约束的指令提示提示词:text角色:你是一名医学文献审稿人。 任务:将以下研究摘要总结给普通读者看。 约束: 最多3句话 禁止使用医学术语(如果必须用,要解释) 必须包含关键发现及其临床意义 不准推测超出摘要内容之外的信息 摘要:[......]系统提示(System Prompt)vs. 用户提示(User Prompt)现代Chat API将系统提示(System Prompt)和用户消息(User Message)分开了:系统提示(System Prompt):相当于给AI设置的“底层人设和铁律”(如“你永远是个谦虚的助手,回答必须少于100字”)。它在后台一直生效,且模型的注意力机制会优先处理系统提示。用户提示(User Prompt):就是每次跟AI聊天时输入的那句话(每次都不一样)。实战建议:把“角色、约束、输出格式”这些固定不变的规矩放在系统提示里;把每次要处理的“输入数据”放在用户提示里。这样分工,AI执行得最精准。为什么要设置系统提示词?系统提示词的核心价值在于给AI设定一个稳定的行为基线。没有系统提示时,AI每次对话都从「默认模式」启动——它可能偏向闲聊、过度发挥、或者对指令的理解飘忽不定。系统提示相当于给AI一份「岗位说明书」,告诉它:你是谁、该用什么语气、必须遵守哪些铁律。这能大幅减少对话中的行为漂移(Behavior Drift),让AI的输出更可预测、更可控。为什么系统提示感觉比用户提示更有约束效果?这背后有两个关键原因:注意力优先级不同:现代大语言模型的注意力机制会优先处理系统提示中的内容。系统提示在API层面被标记为「高优先级指令」,模型在处理用户消息时会始终参照系统提示中设定的规则。而用户提示只是「当前轮次的输入」,模型对它的重视程度天然低于系统提示。持久性与覆盖范围不同:系统提示在整个对话生命周期内持续生效——无论用户发多少条消息,系统提示的约束始终存在。而用户提示只影响当前这一轮的回复。如果用户下一轮换了说法,之前的约束可能就被冲淡了。系统提示相当于「宪法」,用户提示相当于「临时法案」——宪法永远高于临时法案。实战建议:把最核心的约束(角色、语气、禁止项、输出格式)放在系统提示里;把每次变化的输入数据放在用户提示里。这样AI既不会「忘本」,又能灵活处理每轮的具体任务。6. 结构化输出提示(Structured Output Prompts / JSON Prompting)大白话解释逼着AI吐出固定格式的内容(比如JSON),方便程序直接解析使用。深度剖析:两个完全不同的概念
郑州网站建设
网页设计
企业官网