4
千帆大模型调用文心接口教程
大模型开发/实践案例
- 文心大模型
2023.10.112875看过
一、个人申请
二、申请成功
申请成功之后,填写的邮箱中会收到邮件。点击邮件中的链接千帆使用文档
页面中点击登录。
三、开启接口服务
在页面中间开启这些模型的付费(上面申请完成后会发一个20元代金券,不需要主动使用,自动生效,可以用好久),
四、创建应用(使用文心千亿Bot,未经过训练)
还是在控制台,左侧点击应用接入。在页面中创建应用就可以得到一个秘钥。然后在接口调用中输入两个key,即可开始调用文心接口。
prompt模板
千帆支持上传prompt模板。创建完模板之后有个模板id,可以根据这个模板id请求到模板,就可以直接在线修改prompt了。
-
注意:如果你想输入json格式,做大括号和右大括号不要在一行,否则会标红不让创建,如下图
good
|
bad
|
|
|
五、整体流程
六、模型接口具体参数
接口调用,里面有技术文档
curl -XPOST https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token={access_token} -d '{"messages": [{"role":"user", "content": "给我推荐一些自驾游路线"},{"role":"assistant", "content": "不给"},{"role":"user", "content": "求求了,给我推荐一些自驾游路线"},], # 请求内容,可以包含历史聊天记录,固定格式,role = user时表示用户输入,# role=assistant时表示文心的回复,历史消息需要成对出现,最后一个元素需要# 是用户的问题。上面例子用户的问题是“求求了,给我推荐一些自驾游路线”# (1)messages成员不能为空,1个成员表示单轮对话,多个成员表示多轮对话。# (2)最后一个message为当前请求的信息,前面的message为历史对话信息# (3)必须为奇数个成员,成员中message的role必须依次为user、assistant。# (4)最后一个message的content长度(即此轮对话的问题)不能超过2000个字符;# 如果messages中content总长度大于2000字符,系统会依次遗忘最早的历史会话,# 直到content的总长度不超过2000个字符。"stream": true # 是否流式返回"temperature": 0.95, # 温度系数,控制文心结果的发散性,# 值越高生成结果越随机,越低越集中和确定# 默认0.95,范围 (0, 1.0],不能为0,# 官方建议和top_p只设置一个,# 控制的是选取词句的概率"top_p": 0.8, # 前p个概率,影响输出文本的多样性,# 取值越大,生成文本的多样性越强# 默认0.8,取值范围 [0, 1.0]# 控制的是选取词句的范围"penalty_score": 1.0 # 通过对已生成的token增加惩罚,减少重复生成的现象# 值越大表示惩罚越大# 默认1.0,取值范围:[1.0, 2.0]}'
七、数据集
数据集是模型训练的基础,千帆的数据集管理中可以导入训练数据。
导入时,可以导入无标注信息
或有标注信息
八、SFT
先新建任务
然后新建一个SFT运行任务,采用上面导入的已标注数据
九、RLHF
RLHF分为两个步骤,奖励模型训练+强化学习训练,
-
奖励模型训练
使用已排序标注数据进行奖励模型的训练。给第二部的强化学习训练当做工具使用。
-
强化学习训练
使用未标注数据query进行强化学习训练。分为两步。
-
-
第一步:用未标注数据去待训练模型中获取多次回答。
-
第二步:拿着这个回答,去奖励模型中排序,排名最高的回答作为最终的优质回答。
-
第三步:拿着最终的query+优质回答作为训练数据优化待训练模型
-
↓↓↓↓↓↓已排序标注数据举例↓↓↓↓↓↓
↓↓↓↓↓↓↓未标注数据query举例↓↓↓↓↓↓↓
十、评估、压缩
-
评估:训练好的模型,可以进行评估。也就是给定一些good case(已标注数据集),让训练好的模型回答,最后和good case进行相似性对比,相似性越高说明训练的效果越好。
↓↓↓↓↓↓↓good case(已标注数据集)举例↓↓↓↓↓↓↓
-
模型压缩:对训练好的模型进行压缩,可以降低运算成本。
十、插件
千帆目前只支持知识检索增强插件
可以手动导入数据,文心自动判断prompt与数据的相关性,如果相关性大于置信度,就会采用插件的数据,否则会走通用回答。
本文作者李雪健,已获作者授权发布,如需转载请联系
评论