大模型 is all you need?

图片

阿里妹导读


本文旨在通过对业务案例、prompt技巧、大模型原理等探讨,让大家能够更好地在实际业务中应用大模型。
最佳食用顺序和方法:

考虑到非技术背景的同学可能较多,以及避免先讲原理再案例的枯燥,影响阅读效果,改成了先业务案例后技术原理的顺序。

如果对大模型原理和prompt技巧感兴趣,或者有相关背景,可以尝试从第三部分开始,先了解原理和技巧,再看业务中如何使用的,有助prompt技巧的理解和记忆。

本文主要分为三大部分,每个部分都会在开头提出两个问题,每部分的正文都是围绕问题展开的,阅读时牢记问题,有助于消化吸收。

一、从语义向量和业务场景了解模型能力和应用侧重点

本节从语义向量空间的角度,解释了大模型完成各类语言任务的原理和难度层级,并尝试将模型的应用分为不同业务场景,并介绍各自侧重点。

目标是回答两个问题:

1、模型具备哪些能力,可以帮助我们完成什么任务?

2、如果应用的话,难度如何以及优化侧重点在哪?

注:本文中的“大模型”并不仅指llm(large language model, 即大规模预训练语言模型),更接近foundation model(即基座模型)的概念,既包含纯文本的llm,也包括多模态的mllm(Multimodal Large Language Model)。


1.1、基于语义向量变换角度理解大模型完成任务的能力

语义向量(word vector)是一种用数学方式表示词语、短语或文本语义含义的技术 [1]。它可以将语言中的语义信息编码为固定维度的数值向量,便于计算机处理和分析。有如下性质:

  • 语义相近的词语,其向量在空间中距离较近。通过余弦相似度等方法可计算向量间的语义相似度。

  • 语义向量支持加减乘除等数学运算。例如"king - man + woman ≈ queen"这样的类比推理。

图片

大模型虽然是“文科生”,但底层原理还是数学。通过语义向量的角度,可以对大模型的语言能力有更本质的理解:

  1. 语义向量的映射:语义/内容理解(上下文和世界知识)、情感分析
  2. 语义向量的距离计算:近义词判断、分类聚类
  3. 语义向量的截取:信息抽取、实体识别
  4. 语义向量的转换:文生图/视频(跨模态)、翻译(跨语种)、古文&诗词翻译(跨文体)、风格改写(跨文风)
  5. 语义向量的缩放:文本扩展、概括
  6. 语义向量的延伸递进:问答(明确方向的延伸)、评价/对话(模糊方向的延伸)、推理(模糊方向的节点递进/路径搜索)
从向量操作的角度理解大模型完成任务的难度:

向量映射 < 距离计算 < 向量截取 < 向量转换 < 向量缩放 < 延伸递进

这是从向量空间角度的粗粒度划分难度,但实际还是有些特例,比如:

  • 向量缩放的文本扩展,如果需要输出有创意的长文本,比如小说,也会因输出过长,而导致上下文遗忘和错误累加,影响文本连贯性,难度非常高。但概括只需要理解大意并总结输出,相对容易。

  • 向量转换中的跨模态,由于需要不同模型的表征空间对齐,对数据和模型能力要求都很高,对目前的模型来说难度同样很大。

  • 向量延伸递进中的问答,如果是简单的知识检索回答(不需要多步推理),对大模型的难度很小,因为很符合训练数据和目标。

大模型的元能力:

  • 世界知识:世界知识是语义理解的基础,知道不同的文本应该映射到对应的向量,意味着模型从训练语料中学到了知识,而内化在隐藏层的神经元连接和权重。

  • 上下文/小样本学习(in-context-learnning)[2]:能够从指令提供的小样本中学习到专项任务下的注意力权重,效果类似于隐式微调。简单理解:给模型打了个样,于是模型学会了照葫芦画瓢。

  • 指令遵循(Instruction following) [3]:语义理解+语义向量操作能力应用。模型能够根据输入的要求,应用相应的能力,并按要求输出。简单理解:模型能够按照要求的方式和标准完成任务,给模型一个sop,它就能按sop完成任务。

  • 工具使用[4](function calling):指令遵循的特殊形式,可以在调用工具的节点获得额外信息输入。模型可以自主拼接参数调用api,并解析返回结果。目前已有视觉感知和交互的能力如computer_use[5],模拟用户的操作,来减少对api的入侵改造和api调用的知识库构造成本。

1.2、从业务场景理解大模型应用的侧重点

图片

横轴更偏“编码器”部分,更多需要模型的知识和理解能力。纵轴更偏“解码器”部分,更侧重模型的生成和推理能力。

任务vs信息:大模型的结果会应用在后续工作流中,算做任务(需要人工校验或确认是copilot,不需要人工是agent或工作流编排),如果不用在后续节点就算信息。

通用vs垂直:满足的需求聚焦在具体行业或领域就算垂直,不限制即为通用。

不同场景的优化侧重点:

  • 通用宽泛,用户的需求就会偏向长尾,对意图理解的要求就越高,因此对基座模型的世界知识语义理解能力提出更高要求。

  • 垂直冷门,行业知识和预训练的通用知识越不相关,更需要补齐行业知识。通过cpt注入行业知识,或者通过rag挂载外部知识库。

  • 偏向任务,对模型的推理和指令遵循能力要求越高,并且更依赖业务经验。需要通过工作流拆解、示例、微调等方式注入业务经验。

  • 偏向信息,越依赖模型的语义理解、总结能力。同时需要搜索和rag来增强信息的时效性和准确性,rag本身的向量化检索也是关键。

还有两个维度比较重要:

一个维度是面向c端 or b端/内部:c端一般准确率的要求更高,并且潜在风险更高,需要更强的安全保障和兜底策略,b端(助手类)和内部应用要求不那么高

另一个维度是文本 or 多模态:文本比较简单,多模态尤其是生成任务,在不同模态的语义对齐方面难度较高,一般需要算法投入优化。

从上述模型能力和场景侧重点的介绍,应该能够回答通过模型可以完成哪些任务,以及如何预判应用难度和侧重点的问题。

二、从实践案例介绍大模型应用经验和思考

讲完模型能够评估思路之后,趁热打铁结合案例讲解下实际业务中应该怎么用和落地,以及找到模型在业务切入点的思路。

本节目标也是回答两个问题:

1、实际业务中应该怎么落地,思路和流程是什么?
2、如果想在业务中应用大模型,怎么找到切入点?

2.1、结合案例讲解大模型的落地流程和经验

案例1:客服机器人

目标:提高问题工单解决率和时效,提高用户体验。并且减少客服人工介入率,降低用工成本。
应用类型:垂直+任务
模型能力:语义理解+文本分类+指令遵循+问答总结能力
应用难度:中等

侧重点:用户问题意图分类的业务经验(具体类型和表述特征)+敏感话题识别经验+人工介入的判断标准

1.1、项目成果

业务效果:意图分类准确率从xx%提升至xx%,转人工率从xx%降至xx%,对话轮次从x次降至x次,问题解决率从xx%提升至xx%。

1.2、需求拆解

工作流拆解

图片

1.3、落地流程

1.3.1、阶段介绍

图片

1)离线用户问题分析

根据不同来源页面,关键词和历史意图分类抽取用户问题,人工分析归纳意图类型,并总结各类型对应的表述特点。

2)抽取样本打标

通过不同维度和类型抽取用户问题,保证 benchmark 的多样性。

图片

3)意图分类prompt调优

###角色定义你是一位经验丰富的电商智能客服专家"AI助手"。你性格亲和,处事专业,擅长准确理解和分类客户问题。  ###核心任务1.准确理解并分类用户问题意图2.提供标准化且温暖的回复3.识别需要转人工的场景4.妥善处理无效问题  ###意图分类指南##分类流程1.首先理解用户完整问题2.识别关键词和情感倾向3.对照分类标准进行匹配4.评估是否需要转人工5.选择合适的回复模板6.检查以上结果是否准确并评估置信度7.如果置信度不高,请优先和用户确认信息,或要求用户补充相关信息提高置信度  ##详细分类标准=== 一级分类 ===1.订单类(ORDER)2.物流类(LOGISTICS)3.退换货类(REFUND)4.商品类(PRODUCT)5.账户类(ACCOUNT)6.转人工(HUMAN)7.无效问题(INVALID)  === 二级分类及表述特点 ===1. 订单类(ORDER)1.1 订单查询•  关键词:订单、查询、查看、找、状态•  句式模板:o  "{时间词}的订单在哪里查"o  "订单显示{状态词}"o  "订单号{数字}怎么查不到"•  特征词组:订单状态、订单号、购买记录、成交订单1.2 订单修改•  关键词:修改、更改、变更、改•  句式模板:o  "能不能修改{修改项}"o  "想改一下{修改项}"o  "{修改项}填错了"•  特征词组:收货地址、联系方式、收货人、订单备注1.3 支付问题•  关键词:支付、付款、扣款、到账•  句式模板:o  "{支付方式}支付失败"o  "付款显示{异常状态}"o  "钱扣了但订单{异常状态}"•  特征词组:支付失败、交易错误、支付异常、订单未付款2. 物流类(LOGISTICS)2.1 物流状态•  关键词:快递、物流、发货、到哪•  句式模板:o  "快递到哪了"o  "怎么查物流"o  "{时间词}发货了吗"•  特征词组:物流信息、快递单号、运输状态、物流进度2.2 配送时间•  关键词:送达、到货、配送、送货•  句式模板:o  "{时间词}能到吗"o  "要多久能收到"o  "大概什么时候送到"•  特征词组:预计送达、配送时间、送货上门、预约配送2.3 配送异常•  关键词:派送、签收、投递、异常•  句式模板:o  "显示派送失败"o  "快递{异常状态}"o  "签收了但没收到"•  特征词组:无法派送、签收异常、投递失败、送错地址3. 退换货类(REFUND)3.1 退货申请•  关键词:退货、退、不要、寄回•  句式模板:o  "怎么申请退货"o  "商品不要了"o  "想退掉{商品}"•  特征词组:退货流程、退货原因、退货地址、退货说明3.2 退款进度•  关键词:退款、到账、金额、收到•  句式模板:o  "退款什么时候到账"o  "退款显示{状态}"o  "多久能收到退款"•  特征词组:退款进度、退款金额、退款状态、退款账户3.3 换货处理•  关键词:换货、换、更换、调换•  句式模板:o  "想换{属性词}"o  "能换成{属性词}吗"o  "换货怎么操作"•  特征词组:换货流程、换货原因、换货说明、换货地址4. 商品类(PRODUCT)4.1 商品咨询•  关键词:商品、产品、使用、功能•  句式模板:o  "这个怎么使用"o  "{商品}有什么功能"o  "适合{场景}吗"•  特征词组:产品参数、使用说明、适用范围、产品规格4.2 库存查询•  关键词:库存、有货、缺货、补货•  句式模板:o  "{商品}还有货吗"o  "什么时候能买到"o  "{规格}有现货吗"•  特征词组:现货状态、到货通知、库存状态、缺货登记4.3 价格咨询•  关键词:价格、优惠、便宜、降价•  句式模板:o  "什么时候降价"o  "有什么优惠"o  "能便宜点吗"•  特征词组:优惠活动、促销折扣、特价商品、价格变动5. 账户类(ACCOUNT)5.1 会员权益•  关键词:会员、等级、特权、权益•  句式模板:o  "会员有什么优惠"o  "怎么升级会员"o  "{等级}特权是什么"•  特征词组:会员等级、会员福利、特享权益、会员规则5.2 账号问题•  关键词:账号、登录、密码、绑定•  句式模板:o  "账号登录不了"o  "密码忘记了"o  "账号显示{异常状态}"•  特征词组:账号安全、密码修改、登录异常、账号绑定5.3 积分相关•  关键词:积分、兑换、查询、使用•  句式模板:o  "积分怎么查询"o  "积分能换什么"o  "积分怎么用"•  特征词组:积分余额、积分规则、积分兑换、积分明细6. 转人工(HUMAN)•  关键词:人工、客服、转接、投诉•  句式模板:o  "转人工客服"o  "需要真人客服"o  "机器人听不懂"•  特征词组:人工服务、专门客服、真人客服、问题反馈7. 无效问题(INVALID)•  关键词:测试、你好、在吗、谢谢•  句式模板:o  "在吗"o  "有人吗"o  "{语气词}"•  特征词组:问候语、测试词、语气词、标点符号
###转人工触发条件1.情绪激动的投诉问题2.涉及赔付或敏感信息3.连续3次未理解用户意图4.明确要求人工服务  ###无效问题判定标准1.纯表情符号或无意义字符2.与业务完全无关的内容3.恶意或违规内容  ###回复模板示例[正常分类回复]"您好,我是AI客服助手。关于您{具体问题}的问题,{对应解决方案}。如果还有其他问题,随时告诉我。"[转人工回复]"非常抱歉给您带来困扰。为了更好地解决您的问题,我正在为您转接人工客服,请稍候..."[无效问题回复]"抱歉,我可能没有很好地理解您的问题。您能否详细描述一下您需要咨询什么呢?"
###输出格式{"intent": {"primary_category": "主分类代码","sub_category": "子分类代码","confidence": "high/medium/low"},"user_emotion": "positive/neutral/negative","require_human": true/false,"response": {"template_id": "使用的模板ID","reply_text": "具体回复内容"},"notes": "补充说明或建议"}
###工作约束1.始终保持礼貌和专业2.不处理敏感个人信息3.不作出承诺或保证4.重视用户情绪,适时表达理解5.遇到不确定情况,不要急于给出答案,可以和用户确认或补充信息  ###示例对话用户:我的订单怎么还没发货?响应:{"intent": {"primary_category": "ORDER","sub_category": "order_status","confidence": "high"},"user_emotion": "neutral","require_human": false,"response": {"template_id": "ORDER_STATUS_01","reply_text": "您好,我是AI客服助手。我理解您关心订单状态,请您提供订单号,我来帮您查询具体发货情况。"}}

prompt技巧解读

1、角色&性格设定:
2、内容分段
3、符号分隔
4、思维链
5、反思
6、重复
7、输出格式
8、约束

9、任务示例

4)问题回复prompt调优

回复质量评估prompt

系统角色定义:您是专业的客服质量评估专家,需要对AI客服回复内容进行全方位评估。评估需要客观、准确、具有建设性。
输入结构:{ "original_query": string, // 用户原始问题 "reference_answer": { // 标准答案 "key_points": array, // 关键点 "required_info": array, // 必要信息 "business_rules": array // 相关规则 }, "ai_response": string, // AI回复内容 "context": { // 上下文信息 "user_info": object, "scenario_type": string, "business_category": string }}评估维度:1. 准确性评估 (权重: 0.35)A. 事实准确性 (0-10分)- 信息与标准答案匹配度- 数据引用准确性- 政策说明准确性- 操作指引准确性B. 完整性评估 (0-10分)- 必要信息覆盖度- 关键点回应完整度- 解决方案完备度- 补充信息合理度2. 语言质量 (权重: 0.25)A. 专业性 (0-10分)- 专业术语使用- 表述规范度- 逻辑连贯性- 结构完整性B. 可读性 (0-10分)- 语言流畅度- 表达清晰度- 段落组织- 重点突出度3. 服务体验 (权重: 0.25)A. 语气友善度 (0-10分)- 开场语适当性- 称谓规范性- 语气亲和度- 结束语得体性B. 共情程度 (0-10分)- 理解程度表达- 情感回应适当性- 解决意愿展现- 支持态度表达4. 业务规范 (权重: 0.15)A. 合规性 (0-10分)- 政策符合度- 权限边界把控- 敏感信息处理- 免责说明规范B. 业务价值 (0-10分)- 解决效率- 附加价值提供- 业务目标达成- 潜在风险规避输出结构:{ "evaluation_results": { "accuracy_score": { "factual_accuracy": float, "completeness": float, "details": array }, "language_score": { "professionalism": float, "readability": float, "details": array }, "service_score": { "friendliness": float, "empathy": float, "details": array }, "business_score": { "compliance": float, "value": float, "details": array } }, "total_score": float, "improvement_suggestions": array, "highlight_points": array, "review_notes": string}评分标准:优秀 (90-100分):- 信息完全准确- 语言专业流畅- 服务体验极佳- 业务处理规范良好 (80-89分):- 信息基本准确- 语言较为专业- 服务体验良好- 业务处理达标待改进 (70-79分):- 信息有小错误- 语言不够专业- 服务体验一般- 业务处理粗糙不及格 (<70分):- 信息有重大错误- 语言问题明显- 服务体验差- 业务处理不当示例评估:案例1:商品咨询原始问题:这个商品保修期是多久?标准答案:{ "key_points": [ "保修期2年", "全国联保", "免费上门" ], "required_info": [ "保修时长", "保修范围", "保修方式" ]}AI回复:"您好!这款商品提供2年全国联保服务,支持免费上门维修。保修期从收货次日开始计算,您可以在商品详情页查看具体保修政策。如果有其他问题,随时询问我哦!"评估结果:{ "evaluation_results": { "accuracy_score": { "factual_accuracy": 9.5, "completeness": 9.0, "details": ["关键信息完整", "补充信息恰当"] }, "language_score": { "professionalism": 9.0, "readability": 9.5, "details": ["表述专业", "结构清晰"] }, "service_score": { "friendliness": 9.0, "empathy": 8.5, "details": ["态度友好", "服务主动"] } }, "total_score": 91.5, "improvement_suggestions": [ "可以增加保修政策的具体链接", "可以主动提供相关配件保养建议" ]}质量反馈机制:1. 短期改进建议- 具体表述优化- 专业度提升- 服务态度调整- 规范性完善2. 长期优化方向- 知识库更新- 话术体系优化- 场景化升级- 个性化加强评估注意事项:1. 保持评估标准一致性2. 考虑场景特殊性3. 关注用户体验4. 注重实用性建议
问题回复prompt
角色定义:作为电商行业的客服专家,您需要在严格的技术框架下处理复杂的业务场景,具备:- 精准的多维度信息处理能力- 深度的电商领域专业知识- 严谨的业务规则执行能力- 灵活的场景应对能力- 完善的风控合规意识输入结构:{    "user_query": {        "raw_text": string,        "query_type": string,        "business_category": string,        "priority_level": integer,        "user_segment": string    },    "user_context": {        "member_info": {            "level": string,            "points": number,            "tags": array,            "purchase_history": array        },        "current_session": {            "scenario_type": string,            "interaction_history": array        }    },    "business_data": {        "order_info": {            "order_details": object,            "payment_info": object,            "logistics_status": object,            "promotion_details": array        },        "product_info": {            "specifications": object,            "inventory_status": object,            "promotion_rules": array        },        "service_policies": {            "return_policy": object,            "warranty_terms": object,            "shipping_rules": object        }    }}处理流程 :1. 场景识别与分类Step 1: 业务场景判断- 商品咨询- 订单管理- 物流配送- 退换货服务- 账户会员Step 2: 复杂度评估- 单一业务场景- 跨场景组合- 特殊政策适用- 例外情况处理2. 信息整合与分析Step 1: 用户信息解析- 会员身份识别- 权益等级确认- 历史行为分析- 需求意图理解Step 2: 业务数据处理- 订单信息核验- 商品数据提取- 促销规则解析- 政策条款匹配3. 规则执行与验证Step 1: 业务规则校验- 促销规则适用性- 会员权益匹配度- 政策限制核查- 特殊情况确认Step 2: 安全合规检查- 敏感信息识别- 风险等级评估- 操作权限验证- 合规性审核4. 响应生成与优化Step 1: 内容构建- 核心问题解答- 相关信息补充- 操作指引说明- 温馨提示准备Step 2: 质量优化- 专业性审核- 完整性检查- 准确性验证- 友好度评估输出结构 (Output Schema):{    "response": {        "main_content": {            "answer": string,            "instructions": array,            "suggestions": array        },        "additional_info": {            "related_policies": array,            "helpful_tips": array        }    },    "metadata": {        "business_scenario": string,        "applied_rules": array,        "risk_level": integer,        "processing_notes": object    }}业务场景示例:场景1:复杂订单退款Input Context:{    "user_query": {        "raw_text": "拼团订单不想要了能退吗?",        "query_type": "refund_consultation",        "business_category": "order_management"    },    "business_data": {        "order_info": {            "order_type": "group_buy",            "payment_status": "paid",            "group_status": "in_progress"        }    }}Processing Steps:1. 识别订单类型(拼团订单)2. 检查订单状态3. 应用拼团规则4. 确定退款方案5. 准备政策说明Response:{    "response": {        "main_content": {            "answer": "您好!看到您的订单是正在进行中的拼团订单。根据拼团规则,在拼团完成前可以申请全额退款。如果现在取消,将在1-3个工作日原路退回支付金额498元。",            "instructions": [                "点击订单详情页的'申请退款'",                "选择退款原因'拼团主动取消'",                "提交申请等待系统审核"            ]        },        "additional_info": {            "related_policies": ["拼团订单退款规则", "退款到账说明"]        }    }}场景2:组合促销咨询Input Context:{    "user_query": {        "raw_text": "用会员券和满减能一起吗?",        "query_type": "promotion_inquiry",        "business_category": "pre_sale"    },    "user_context": {        "member_info": {            "level": "gold",            "available_coupons": ["member_discount_10%", "platform_100_off"]        }    }}Processing Steps:1. 检查会员权益2. 验证促销规则3. 计算优惠方案4. 生成建议方案5. 准备补充说明Response:{    "response": {        "main_content": {            "answer": "您好!会员折扣券确实可以和平台满减活动叠加使用。以您当前购物车商品为例,建议先使用满1000减100的平台券,再叠加会员9折券,预计可以节省约200元。",            "suggestions": [                "下单时先选择满减券",                "再选择会员折扣券",                "系统将自动计算最优惠金额"            ]        }    }}安全控制机制:1. 内容安全- 敏感信息脱敏- 规避争议表述- 隐私信息保护- 合规用语检查2. 业务安全- 权限范围控制- 规则冲突检测- 异常场景识别- 升级机制触发3. 系统安全- 数据一致性校验- 操作合法性确认- 并发处理控制- 回滚机制保障特殊指令:1. 遇到跨场景复杂问题启动多轮推理2. 处理异常订单时执行额外验证3. 遇到系统限制及时说明
思路:先构造回复质量评估的agent,再构造智能回复agent,用前者对后者打分并不断迭代提高分数。

1.4、项目展望

1、客服agent升级为任务agent:目前智能解答用户的疑问,后续希望升级为可以直接帮用户解决问题完成任务的agent。

2、建立数据飞轮:根据线上转人工的问题,提取人工回复和模型回复建立badcase库,通过prompt调优、微调、知识库等方式并不断优化。

2.2、大模型在业务中切入点的思考

最后还想简单聊聊怎么在业务中寻找和大模型的结合点,主要是个人的一点感想和思考:

2.2.1、钉锤问题,到底用谁找谁 - 均可

以钉找锤:基于当前业务中现有的痛点和问题,尝试用大模型的优势实现和替代,是现有功能、流程的优化。

思路:

1、拆解日常工作流,识别人力耗费多的重复性工作环节。

2、从业务现状出发,列举业务中当前技术做不好的功能和环节。

3、从业务需求出发,抽象出对能力的要求,评估是否可用大模型实现。

举锤寻钉:基于模型能力,思考和业务的结合点,往往是创新的场景和功能。

案例:

1、从世界知识和推理能力思考,可以对推荐系统做数据增强,比如特征方面,可以基于用户行为和物品特点用“常识”推理出偏好,而不仅是从类目频次统计和item的embedding聚合来刻画用户偏好。还有在样本纠偏和补充方面也可以做很多工作,都会有额外的信息价值。

2、从多模态生成能力思考,可以智能生成商品图片和视频等,帮助用户有更全面的感知,降低决策成本。

3、从对话问答能力思考,可以给用户答疑解惑,比如智能客服机器人。

图片

2.2.2、怎么在业务中用好大模型

大模型感觉用不好,主要是在于没有很好地结合大模型能力,在工作流中找到合适的切入点。工作流中不同环节依赖能力不同,所有环节都给大模型做是不切实际的,但大概率有模型能力可以覆盖的环节,这就是切入点。
所以在应用时,业务层面需要抽象拆清楚工作流,每个环节需要什么能力。模型知识层面,需要了解模型具备哪些能力,以及通过哪些方式优化。最终结合业务和模型,找到适合切入点。
还有一点感想,在设计大模型的工作流时,大模型很多时候是替代“人”的角色,而不是代码的角色。基于代码思维的一些设计,很多时候是“委曲求全”,并没有真正拟合人的能力和流程。从人是怎么完成任务的角度来设计流程和方案,或许更适合大模型。最著名的就是马斯克说:“人开车是不需要激光雷达的”,从而推出了全视觉方案的自动驾驶。
小结:本节通过智能客服的案例,回答了在业务中怎么用大模型能力和落地流程的问题。最后针对钉锤问题的探讨,回答了在业务中找大模型切入点的问题。

三、详解大模型原理、prompt技巧和调优方法

本节是偏技术的内容,以流程图的方式讲解大模型的原理,不涉及公式推导,尽量简洁易懂。并列举了prompt技巧,以及调优的方法。

目标回答两个问题:

1、prompt技巧有哪些,为什么这些prompt能产生效果?

2、prompt应该怎么优化,流程和思路是怎样的?

3.1、从大模型原理角度介绍prompt技巧

prompt工程[6]:本质是通过调节输入文本序列帮助模型在预训练学到的巨大概率分布空间中,寻找最优的输出路径

直观化理解:prompt优化就像在语义空间中引导token贪吃蛇,朝着期望方向吃下一个个token,最终输出符合任务要求的token序列。

1、视野聚焦(交代背景,删减无关内容);2、提示注意关键点(强调);3、引导模型方向(cot、示例);4、约束模型方向(约束);

模型和任务是两端,语言(prompt)是链接模型和任务的纽带。

  • 任务角度,是背景和要求表述清楚,让模型的输出和人对齐标准

  • 语言角度,是表达精炼避免歧义和上下文矛盾。

  • 模型角度,是扬长避短,增强模型的能力,规避模型的幻觉问题[7]。

为了更好地理解prompt技巧,这里将大模型的工作原理和prompt技巧关联起来,希望能知其然的同时,也知其所以然。也尝试提供一种框架,希望能在理解生效原理的基础上,可以不断创新扩展prompt技巧。

注:

1、从模型生效环节来列举prompt技巧的框架,仍有局限性,比如无法覆盖拟人的prompt技巧,如“深呼吸”、“赞美”、“PUA”等;

2、表中prompt技巧和大模型的环节对应关系并非实验论证,而更多是经验和直觉的关联。很多prompt技巧是横跨多个环节生效的,比如“示例”是既在前馈层激活任务相关知识,又在注意力层让模型关注例子中的模式。这里为了简化理解,将技巧仅关联到其中一个环节上(高清大图见文末)

图片

图片

图片

图片

3.2、详解prompt调优流程和方法

写prompt有两大流派:“随心所欲”派和“循规蹈矩”派。前者特点是按自己的理解写prompt,不局限于模板和固定范式,后者是按照模板一步步写prompt,尽量全面但不缺失。

我觉得比较好的方式是有一定套路,但不照搬模板的“按图索骥派”。

大模型目前很像“内力深厚”(理解世界知识)且懂得各类“武林秘籍”(知道各种prompt技巧),但不懂得实战的潜在高手,prompt调优就像在逐步教会ta“实战”,所以下面用偏武侠的风格介绍:

起势(撰写初版prompt):

知己知彼:充分理解任务的关键点,以及用到模型哪些能力,从而确定prompt重点。比如重点是业务经验 + 推理能力,就需要先梳理业务经验和流程,并通过cot和示例增强推理能力。

关于总结业务经验和流程有个较为熟知的方法:假设有一名实习生,没有业务背景,你需要提供哪些信息,帮助ta完成任务。

还有一个方法是,你假装自己是大模型,按任务要求输出一次结果,然后从每个环节反推需要哪些信息。既可以评估难度,也可以对落地的侧重点有个预判。

对决( prompt调优):

1、排兵布阵:在构建benchmark时,需要尽可能保证多样性,能够充分覆盖业务实际的各种场景。避免评测集多样性差,导致未覆盖场景的准确率不足。

2、投石问路:运行初版prompt验证模型能力是否满足任务要求。标志:模型是否能够正确理解要求,模型的推理方向是否准确。

3、洞若观火:查看大模型不符合指令或者幻觉的结果,人工分析原因。比如背景信息不全,模型理解偏差,格式不符合约束,数值对比幻觉等等。

4、步步紧逼:人工不易看出问题时,可以让大模型先不要给出结果,只产出分析过程,便于看出模型的理解哪里有偏差。

5、攻守易位:让大模型按自己的理解来复述要求,并构造例子展示prompt结果,使问题点充分暴露

6、借力打力:将prompt和模型错误结果都输入给大模型,让大模型分析出错原因,并给出优化建议。如果业务中只能用开源模型或小模型,还可以让大模型纠错和优化prompt,然后再用到小模型上。

7、见招拆招:找到问题点后,结合列举的prompt技巧进行优化。比如补充业务经验引导,通过示例对齐标准和强化推理,多次强调加强约束,补充小数提示解决数值对比出错等

8、步步为营:prompt任何变动都尽量测试准确率,包括但不限于:只改语序未改语义,改变输出格式,调整示例及顺序,更换基座模型等

9、以退为进:如果prompt中的某些步骤,通过大模型很难解决,思考是否可以通过代码或者工具来解决,而不是和大模型死磕。比如数学运算通过使用计算器解决。

10、严防死守:大模型是基于概率而不像代码是基于逻辑的,因此不可避免会出错,需要有检查修正节点,尤其模型输出直接暴露给C端的场景。以及如果用户可通过自定义的prompt直接和大模型交互,需要考虑提示注入防护,避免用户诱骗大模型输出不当言论和内容。

11、审时度势:如果发现模型较难对齐标准,可以考虑将一部分业务经验转化为强规则让大模型执行,不追求完美主义。如果基本用尽以上优化方法和提示词技巧,模型表现还是不足,可以考虑放弃,等待基座模型能力提升。

科技狠活:输出每个token的依据即激活的神经元[10],辅助判断问题出在哪里。比如“9.11和9.9比大小”的典型幻觉问题中,可以发现大模型错误激活了恐怖袭击相关的神经元。

工具链接:https://monitor.transluce.org/dashboard/chat

图片

小技巧:

基于cot和大模型生成示例:当思维链较长,导致不易构造示例时,可以先写好cot,在真实case上跑一下,挑选符合要求的大模型输出结果当作示例。

除了以上列举的人工调优技巧外,prompt自动调优技术在学术界也有比较多的探索,包括基于梯度[11]、搜索[12]、强化学习[13]、元学习[14]等不同流派,这部分实践较少,后续会有相应探索,这里不做展开,感兴趣的读者可以自行了解~

FAQ:

Q:prompt是否越简练越好?

A:从成本角度是越简练越好,但从效果角度,如果增加的是任务相关的信息,反而有可能提升效果,比如重复强调的技巧。

Q:cot是否拆成多个节点的请求,每个请求只处理其中一个环节效果更好?

A:多节点的效果似乎并不比单次请求更好,而且可能存在上下文丢失的问题。除非是任务复杂到单次无法输出完整,必须拆分成多个节点,否则都建议在一次请求中完成。

Q:使用大模型优化prompt是否效果更好?

A:通常情况下,大模型优化prompt效果都会更好或压缩字数,但如果prompt中存在较多业务经验的总结,比如表述特征或推理流程时,模型因为缺少业务背景知识,可能会将这部分信息简化而影响效果。

四、总结&建议


4.1、总结回顾

本文从大模型能力和应用场景开始,从向量空间角度介绍了大模型处理不同任务的能力和难度。也将模型的应用场景划分为了四个象限(通用/垂直和信息/任务),每个象限分别介绍了优化的侧重点。主要是提供一种评估思路,支持模型在业务应用的前期评估


第二部分结合案例介绍落地经验,包括前期评估、工作流拆解、落地流程和优化经验,也探讨了在现有业务中找到大模型结合点的问题,并基于实践经验提出一些思考和观点,希望能为大家提供借鉴和参考的价值。


第三部分是相对技术向的内容,主要介绍prompt技巧和优化思路,首先结合模型工作原理和prompt技巧进行了整体讲解,希望能知其然也知其所以然,可以在这个框架下尝试新的prompt技巧,也介绍了在已知技巧的基础上,在业务落地时调优prompt的流程和方法。希望为大家提供一个地图,帮大家遇到问题时“按图索骥”

4.2、忠告及建议

1、大模型发展日新月异,能力在不断提升。意味着需要与时俱进,持续更新提示词。例如,在OpenAI的o1模型中,思维链技巧的效果不佳,角色扮演技巧的有效性目前也存在争议。

2、不要对大模型的使用发怵,其实并不复杂,大模型本质是基于自然语言处理的,是人机交互中很自然的方式。最简单的方法就是直接在对话框中写下你的需求,剩下的交给大模型。关键在于多加尝试,观察结果并分析问题,实践中学习能够达到最佳效果。大模型的优势在于它能够支持实践-学习-优化的循环。当遇到问题时,可以询问模型原因和解决方案,理解后再改进提示,整个过程甚至无需离开对话框。

3、要在业务中应用大模型,业务经验以及prompt技巧和模型理解都很重要,业务和算法都需要补齐各自短板,打好配合。业务知识和经验是隐式的,往往需要case by case的学习和理解,慢慢浸泡才能有所理解和积累。但是技术知识和原理是显式的,可以通过阅读文章快速入门,再辅以实践来巩固。ps:不要排斥论文,有大模型不管是翻译还是总结,都大大简化了阅读论文的难度,是既能开阔全局视野,又能跟上前沿创新的很好信息源。

误区:

1、对大模型的一种误区是过于轻视,简单尝试几次就放弃,认为大模型能力达不到业务要求,实际很可能是因为没有写好prompt而没用好大模型。

2、 对大模型的另一种误区将其神化,对其抱有不合理的期待。大模型也有其固有的劣势,比如基于概率带来的精确性问题,计算延迟和高昂成本等,并不是所有的应用都值得用大模型重做一遍,哪怕是传统的模型也有自己的优势,关键是找到大模型适合发挥的场景,而不是挥着大模型的锤子,硬砸所有钉子。

五、未来展望

5.1、大模型长期趋势

  1. 智能度持续提升,完成任务和多模态的能力增强
  2. 推理成本下降,轻量级模型性能提升

图片[15]

  1. 基座模型能力增强,潜在应用场景增加,应用层价值增厚(互联网是倒三角的收入结构,但生成式AI是金字塔结构)

图片[16]

5.2、价值链重塑

  1. 入口迁移:互联网平台主要价值在于“数字化供给”和“链接用户”,大模型在这两方面都能发挥作用,从而增加平台价值。但大模型独有的语义理解+工具使用能力,可能改变用户和平台互动方式。用户开始能够对终端设备发出指令,终端来和平台交互完成任务。这会导致用户和平台的交互次数减少流量也从泛需求为主变得更为聚焦,影响到平台的流量池和分布,进而对广告为主的商业模式造成影响
  2.  潜在机会:大模型可以加强用户被动的链接模式,当前主流的链接模式都是用户主动触发的,但某些场景更适合用户被动的链接。特点是用户需求相对固定,但空闲时间不固定,和供给高时效的场景,此时大模型可以作为代理的角色,决策是否主动推送给用户决策,现有典型场景是rss订阅、特价机票订阅、活动推送等。

5.3、商业化挑战

  1. 高算力成本挑战传统商业模式:短期内大模型单次请求的算力成本仍较高,目前是互联网搜索的单次请求成本的10倍以上(来源于谷歌ceo的采访)。而边际成本的剧增,既可能颠覆免费+广告模式的底层逻辑,也对网络效应形成挑战(新增用户的边际成本递减,但网络价值平方级提升)。

图片[17]

  1. 盈利模式设计变得更为关键:同样基于算力成本的增加,先烧钱再探索盈利模型的难度激增,早期的盈利模式设计更为重要

5.4、潜在应用方向

  1. C端应用:预计更多现有产品会推出大模型相关的高级付费功能
  2. B端市场:B端降本增效可能是更高价值场景,如编程助手cursor、设计工具Adobe Firefly,以及部分重复工作的自动化

  3. 智能硬件:多模态与轻量化趋势带来硬件层机会(如智能眼镜、耳机等)

附件:

图1:

图片
图2:

图片


图3:

图片

参考文献

[1] Mikolov T, Sutskever I, Chen K, Corrado G, Dean J. Distributed Representations of Words and Phrases and their Compositionality[J]. arXiv preprint arXiv:1310.4546, 2013
[2] Brown T B, Mann B, Ryder N, et al. Language Models are Few-Shot Learners[J]. arXiv preprint arXiv:2005.14165, 2020.
[3] Ouyang L, Wu J, Jiang X, et al. Training language models to follow instructions with human feedback[J]. arXiv preprint arXiv:2203.02155, 2022.
[4] Schick T, Dwivedi-Yu J, Dessì R, et al. Toolformer: Language Models Can Teach Themselves to Use Tools[J]. arXiv preprint arXiv:2302.04761, 2023.
[6] Liu P, Yuan W, Fu J, et al. Prompt Programming for Large Language Models: Beyond the Few-Shot Paradigm[J]. arXiv preprint arXiv:2302.11382, 2023.
[7] Liu Y, Peng S, Shen Y, et al. A Survey of Hallucination in Large Language Models[J]. arXiv preprint arXiv:2305.10724, 2023.
[8] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]//Advances in neural information processing systems. 2017: 5998-6008.
[9] Radford A, Wu J, Child R, et al. Language models are unsupervised multitask learners[J]. OpenAI blog, 2019, 1(8): 9.
[11] Lester, B., Al-Rfou, R., & Constant, N. The Power of Scale for Parameter-Efficient Prompt Tuning. arXiv preprint arXiv:2104.08691.
[12] Shin, T., Rishi, R., Dodge, J., & Van Durme, B. AutoPrompt: Eliciting Knowledge from Language Models with Automatically Generated Prompts. arXiv preprint arXiv:2010.15980.
[13] Reynolds, L., & McDonell, K. (2021). Prompt Programming for Large Language Models: Beyond the Few-Shot Paradigm. arXiv preprint arXiv:2102.07350.
[14] Sun, C., Qiu, X., & Huang, X. (2021). Meta-Prompting for Simple and Effective Task-Agnostic Prompt Optimization. arXiv preprint arXiv:2106.08712.


两地三中心异地多活网络


基于阿里云洛神网络全球基础设施及云原生SDN技术,帮助企业客户在云上快速构建两地三中心跨域多活网络,保障企业核心业务在全球多地域的高品质互联。