阿里妹导读
最佳食用顺序和方法: 考虑到非技术背景的同学可能较多,以及避免先讲原理再案例的枯燥,影响阅读效果,改成了先业务案例后技术原理的顺序。
如果对大模型原理和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"这样的类比推理。
大模型虽然是“文科生”,但底层原理还是数学。通过语义向量的角度,可以对大模型的语言能力有更本质的理解:
语义向量的映射:语义/内容理解(上下文和世界知识)、情感分析 语义向量的距离计算:近义词判断、分类聚类 语义向量的截取:信息抽取、实体识别 语义向量的转换:文生图/视频(跨模态)、翻译(跨语种)、古文&诗词翻译(跨文体)、风格改写(跨文风) 语义向量的缩放:文本扩展、概括 语义向量的延伸递进:问答(明确方向的延伸)、评价/对话(模糊方向的延伸)、推理(模糊方向的节点递进/路径搜索)
向量映射 < 距离计算 < 向量截取 < 向量转换 < 向量缩放 < 延伸递进
这是从向量空间角度的粗粒度划分难度,但实际还是有些特例,比如:
向量缩放的文本扩展,如果需要输出有创意的长文本,比如小说,也会因输出过长,而导致上下文遗忘和错误累加,影响文本连贯性,难度非常高。但概括只需要理解大意并总结输出,相对容易。
向量转换中的跨模态,由于需要不同模型的表征空间对齐,对数据和模型能力要求都很高,对目前的模型来说难度同样很大。
向量延伸递进中的问答,如果是简单的知识检索回答(不需要多步推理),对大模型的难度很小,因为很符合训练数据和目标。
大模型的元能力:
世界知识:世界知识是语义理解的基础,知道不同的文本应该映射到对应的向量,意味着模型从训练语料中学到了知识,而内化在隐藏层的神经元连接和权重。
上下文/小样本学习(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 多模态:文本比较简单,多模态尤其是生成任务,在不同模态的语义对齐方面难度较高,一般需要算法投入优化。
从上述模型能力和场景侧重点的介绍,应该能够回答通过模型可以完成哪些任务,以及如何预判应用难度和侧重点的问题。
二、从实践案例介绍大模型应用经验和思考
讲完模型能够评估思路之后,趁热打铁结合案例讲解下实际业务中应该怎么用和落地,以及找到模型在业务切入点的思路。
本节目标也是回答两个问题:
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技巧解读
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. 注重实用性建议
角色定义:
作为电商行业的客服专家,您需要在严格的技术框架下处理复杂的业务场景,具备:
- 精准的多维度信息处理能力
- 深度的电商领域专业知识
- 严谨的业务规则执行能力
- 灵活的场景应对能力
- 完善的风控合规意识
输入结构:
{
"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. 遇到系统限制及时说明
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优化就像在语义空间中引导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、大模型长期趋势
智能度持续提升,完成任务和多模态的能力增强 推理成本下降,轻量级模型性能提升
[15]
基座模型能力增强,潜在应用场景增加,应用层价值增厚(互联网是倒三角的收入结构,但生成式AI是金字塔结构)
[16]
5.2、价值链重塑
入口迁移:互联网平台主要价值在于“数字化供给”和“链接用户”,大模型在这两方面都能发挥作用,从而增加平台价值。但大模型独有的语义理解+工具使用能力,可能改变用户和平台互动方式。用户开始能够对终端设备发出指令,终端来和平台交互完成任务。这会导致用户和平台的交互次数减少,流量也从泛需求为主变得更为聚焦,影响到平台的流量池和分布,进而对广告为主的商业模式造成影响。 潜在机会:大模型可以加强用户被动的链接模式,当前主流的链接模式都是用户主动触发的,但某些场景更适合用户被动的链接。特点是用户需求相对固定,但空闲时间不固定,和供给高时效的场景,此时大模型可以作为代理的角色,决策是否主动推送给用户决策,现有典型场景是rss订阅、特价机票订阅、活动推送等。
5.3、商业化挑战
高算力成本挑战传统商业模式:短期内大模型单次请求的算力成本仍较高,目前是互联网搜索的单次请求成本的10倍以上(来源于谷歌ceo的采访)。而边际成本的剧增,既可能颠覆免费+广告模式的底层逻辑,也对网络效应形成挑战(新增用户的边际成本递减,但网络价值平方级提升)。
[17]
盈利模式设计变得更为关键:同样基于算力成本的增加,先烧钱再探索盈利模型的难度激增,早期的盈利模式设计更为重要。
5.4、潜在应用方向
C端应用:预计更多现有产品会推出大模型相关的高级付费功能 B端市场:B端降本增效可能是更高价值场景,如编程助手cursor、设计工具Adobe Firefly,以及部分重复工作的自动化
智能硬件:多模态与轻量化趋势带来硬件层机会(如智能眼镜、耳机等)
附件:
图1:
图3:
参考文献:
两地三中心异地多活网络
基于阿里云洛神网络全球基础设施及云原生SDN技术,帮助企业客户在云上快速构建两地三中心跨域多活网络,保障企业核心业务在全球多地域的高品质互联。