logo
15

百度智能云千帆应用效果提升攻略

借助千帆大模型平台解决行业问题,通常有知识搜索增强、提示词Prompt工程调试、SFT有监督微调等步骤,本篇内容基于一些客户案例阐述如何提升应用效果

前言:

借助百度智能云千帆大模型平台(以下简称:千帆大模型平台)解决行业问题,通常有以下五个步骤
序号
主要步骤
应用说明
应用示例
1
需求场景确认
_
_
2
知识搜索增强
领域知识+基础模型+插件
知识助手
现在:基于大模型设备运检知识助手
原来:基于NLP构建机构化知识库
业务价值:中;效率改善
3
incontext learning
提示词Prompt工程调试
虚拟导购
现在:对话式电商,实现商品推荐、下单等全流程。
原来:传统货架式电商、直播电商
业务价值:高、收入增长
4
instruction tuning
SFT有监督微调
作文自动批改
现在:对作文自动批改,包括优缺点、建议等
原来:人工批改
业务价值:变革型、实现新的收入
5
构建行业领域模型
Post-Pretrain二次训练
法律、金融、医疗能源等行业领域模型

一、知识搜索增强

场景描述

基础模型(Foundation Model),面向特定领域不能直接应用,因为领域知识不在预训练的数据集中,比如:
  • 较新的内容。同一个知识点不断变更:修改、删除、添加。如何反馈当前最新的最全面的知识。比如对于 ChatGpt 而言,训练数据全部来自于 2021.09 之前。
  • 未公开的、未联网的内容。
使用传统搜索技术构建基础知识库查询。好处在于:
  • 问答可控性更高一些
  • 无论是数据规模、查询效率、更新方式都可以满足常见知识库应用场景的需要
  • 技术栈成熟,探索风险低

整体方案

平台功能

客户案例:某数字政府问答

背景介绍

某政务行业客户计划结合文心大模型,实现对本地用户生活、就业、创业方面的智能咨询问答功能。

方案原理

基于文心一言+知识库+插件的解决方案。使用搜索机制对本地知识库进行搜索,再利用大模型将搜索结果进行摘要。
  • 通过Embeddings model,提取「限定资料」特征存入知识库管理
  • 将用户的问题向量化,查询数据库中语义相似度最接近的文本段落,若相似度低于某一阈值,给出超出范围的提示;
  • 构建Prompt输入文心大模型(如增加合适的prefix prompt+匹配的文本+Question),获得答案

效果评测

二、Prompt提示词工程

大模型本身已经具备海量网络基础知识,只需要用prompt更好的引导其回答相关问题。

方法一:添加细节

添加尽可能清晰的任务描述,限定任务范围等细节。

客户案例:电商导购prompt

  • 背景:客户应用场景为电商导购,期望通过导购机器人对话方式收集用户需要的商品属性后,推荐商品。
  • 原方案:客户期望通过SFT训练来提升模型在电商导购场景对话能力最终完成商品推荐。
用户标注训练数据:
  • 优化后方案:

方法二:拆分复杂任务到简单任务+fewshot

客户案例: 法律条款判决

  • 背景:根据案件描述,总结违法行为,并说出定性依据、处罚依据、适用的行政处罚裁量基准和行政处罚建议。
  • 原方案:直接根据案例来询问,从各个维度和正确结果差异较大。
  • 优化后方案:将任务拆解成违法行为、违法行为的定性依据、违法行为的处罚依据、适用的行政处罚裁量基准和行政处罚建议等多个维度,分别在prompt中加fewshot示例。

三、SFT微调训练

在大多数指令理解场景中,可以通过SFT来进行优化。在进行SFT之前,良好的Prompt工程始终是首要步骤。此后,Prompt工程后的指令数据可以用于SFT训练,
SFT过程能够引导模型学习prompt工程中的回答要求回答结构以及处理超纲问题等内容。

相关说明

  • 数据规模
通常上千条左右的精标数据即可发挥良好的效果。数据多样性同样能提升效果,考虑到多样性数据收集的成本较高,下游任务finetune时可以暂时忽略指令数据的多样性。着重在具体下游任务的数据准备。
  • self-instruct
若数据量较少,可以通过self-instruct的方式进行指令数据的生成,可参考下述样式
  
  
  
  
  
  
你是一个prompt生成器,现在需要你生成一套5个不同的任务指令。
以下是要求:
1.尽量不要在每条指令中重复动词,以最大限度地提高多样性。
2.教学语言也应多样化。例如,你应该将问题与命令式教学相结合。
3.任务指令的类型应该多样化。该列表应包括各种类型的任务,如开放式生成、分类、编辑等。
4.语言模型应该能够完成指令。例如,不要要求助手创建任何视觉或音频输出。例如,不要要求助理在下午5点叫醒你,也不要因为助理无法执行任何操作而设置提醒。
5.指令应该有1到2句长。命令句或疑问句都是允许的。
6.您应该为指令生成适当的输入。输入字段应包含为指令提供的特定示例。它应该包含真实的数据,而不应该包含简单的占位符。输入应提供实质性内容,使指令具有挑战性,但理想情况下不应超过100个单词。
7.输出应该是对指令和输入的适当响应。确保输出少于100个单词。
  • 数据质量
挑选质量较高的数据,可以有效提高模型的性能,数据质量用户需尽量自己把控,避免出现一些错误,或者无意义的内容。虽然平台也可以提供数据质量筛选的能力,但不可避免出现错筛的情况。
  • 超参数的选择
EPOCH 影响比 LR 大,可以根据数据规模适当调整EPOCH大小,例如小数据量可以适当增大epoch,让模型充分收敛。
  • 例如:EPOCH:100条数据时, Epoch为15,1000条数据时, Epoch为10,10000条数据时, Epoch为2
  • 过高的epoch可能会带来通用nlp能力的遗忘,这里根据客户实际需要考虑,若客户只需要下游能力提升,则通用nlp能力的略微下降影响不大。若客户依然在乎通用NLP能力,平台侧也提供过来种子数据来尽可能保证通用NLP能力不降低太多。
适当增加global batch_size :如增加accumulate step 32 64,当分布式节点增多时可以进一步增加batch_size,提高吞吐。
学习率(LR, learning Rate): 对于ptuing/lora等peft训练方式,同时可以适当增大LR。

训练案例

作文批改场景SFT案例

  • 背景:作文批改,包括优、缺点、建议、评分和段落精评等
  • 数据生成流程:
  • 数据生成示例
self-instruct prompt
  
  
  
  
  
  
请你仔细观察下面示例的输入和输出,然后生成和所给的示例类似的同领域的示例(不要生成示例中已经存在的例子),给出相应的输入和输出。请确保输入和输出的格式与示例相同。
如果多个示例的输入和输出中都共同出现了一些固定的词语和格式,你也需要使用这些固定词语和格式。示例如下:
示例 1.
输入:
按照上面的要求对下面的作文进行点评:
今年6月1日,我们观看了精彩的表演,参加了有趣的比赛,这让我们感到很棒!
在学生们热切的期待下,我们迎来了一年一度的儿童节。早上,学生们穿着节日服装来到学校。校园里,彩旗飘扬。节日的舞台上,巨大的幕布上写着一个美丽的艺术词“追逐阳光,快乐成长”。窗帘上有许多微笑的孩子,似乎在欢迎我们。
艺术表演就要开始了,但是天气不太好。本来只是晴空万里,现在却下着毛毛雨。不过同学们都没什么情绪,大家都在兴致勃勃的谈论接下来的表演。   表演开始了,第一个节目是我们五年级联合表演的舞蹈。节目开始时,演员们随着音乐的旋律翩翩起舞,女孩们整齐地挥舞着漂亮的裙子。他们的舞蹈是无止境的,牵手转了一会儿手。优美的舞蹈赢得了观众的热烈掌声。节目继续,有动人的歌曲和美妙的舞蹈…   下午,最吸引学生的有趣的花园活动开始了。有“抓小猪”游戏和“钓鱼”游戏…  其中最有意思的一个游戏是“用爆破声吹蜡烛”,游戏场地前排队的学生排起了长队。我花了很长时间玩游戏。游戏开始的时候,主持人问我:“你最喜欢的水果是什么?”我歇斯底里地对着蜡烛大喊:“葡萄!”第一个是我吹出来的。然后,主持人又问我:“过年该放什么?”我还是歇斯底里地叫道:“烟火!”又一根蜡烛熄灭了。最后我终于在四分钟内吹了六根蜡烛,如愿得到两张彩票。然后,我参加了“平衡木”和“猜对”的游戏,用彩票换了一个漂亮的口哨。
哈!有61的感觉真好!
回答:
输出:
(1)作文亮点:
你的作文层次清晰,构思较为合理。你用朴实的语言记叙了六一儿童节的活动,并对活动进行描写,让读者感受到了你观看表演和参与活动时的愉悦心情。
(2)作文缺点:
节目和游戏描写不够生动,作文的语言有些平淡。第一段开头与第二段冲突。
(3)写作建议:
建议在描写看节目表演时和玩游戏时,用一些表现手法和修辞手法,可以使文章更加生动有趣。
(4)评分:
75-80分(好)

多轮对话SFT案例

(1)数据:
  • 数据量:850条
  • 多轮对话示例数据:
(2)训练效果:SFT后效果平均提升100%+
模型
参数
实验结果:Rouge-1
实验结果:Rouge-2
实验结果:Rouge-L
实验结果:BLEU-4
Bloomz_base
-
9.9%
2.55%
6.69%
0.48%
Bloomz_sft
epoch:5
batchsize:16
lr:0.00002
18.89%
4.41%
9.94%
2.61%
Erniebot-turbo_sft
epoch:5
batchsize:32
lr:0.00002
16.92%
4.65%
20.21%
4.48%

(3)后续:多轮数据处理方式
评论
用户头像