本文基于飞桨PaddlePaddle和讯飞大模型平台,针对参加的讯飞AI开发者大赛中的星火大模型驱动阅读理解题库构建挑战赛,在baseline教程基础上进行数据处理、大模型微调以及本地测试的流程整合与细节提示。
一、报名赛事
先登录讯飞开放平台-以语音交互为核心的人工智能开放平台,后续顺利参赛需要实名认证(个人中心——我的资料——实名认证),在挑战赛链接里https://challenge.xfyun.cn/h5/detail?type=question-bank-construction&option=phb&ch=dw24_E7x9gl,点击“报名参赛”。
二、数据处理
点击 星火大模型驱动阅读理解题库构建挑战赛baseline - 飞桨AI Studio星河社区,这里存放所需的baseline代码,登录百度账号。
点击“运行一下”,PaddlePaddle新用户会跳出提示,需要完善信息。
正常填写即可,点击提交,运行环境选择——免费资源——基础版0.0点/小时,点击“确定”。提示环境启动成功,点击“进入”。即可进入BML Codelab环境,点击左侧文件列表中的“main.ipynb”,右上角的“选择内核”,两个内核任选其一即可。
在上方菜单栏点击,全部运行,等待约三分钟后,左侧文件栏中会出现“output.jsonl”文件,右键下载该文件,该文件就是数据处理后即将用于大模型微调的文件。另外,“main.ipynb”的最后一个代码块,即“4.模型提交”前一个代码块此时无法跑通很正常,因为缺少一些信息。
三、大模型微调
3.1、上传数据
在讯飞开放平台,数据集管理——数据集——我的数据集——右上角点击“新建数据集”,填写数据集名称,创建并去上传文件。
“本地上传”之前下载的“output.jsonl”,格式转换的“input”选择下拉的input,“target”选择下拉的output。
如果在上传数据时传了很久没传上,可以做别的事等一段时间,刷新后再试下能成功上传。确认提交后等待任务状态显示“运行成功”,右上角的“去训练”由灰色转蓝色,点击后进入模型管理页面。
3.2、模型训练
在模型管理页面,“模型名称”自定义一下,“基础模型”这里一定要选择“spark-13b”,“可用优惠券”可任选一张。官方免费给688元和10000元两种代金券各数张,这里默认学习率0.0008,训练次数10次,预计费用大概是不足200元,根据“可用优惠券”上方的“计费说明”链接,一次用一张优惠券,即使预计费用不足代金券也以一张抵扣,我选了688元代金券。其他参数默认,点击“提交”。
之后等待30+分钟,我等了33分06秒,学习群大家都在30min到5h不等,个别也有7h、8h、11h的,建议跑之前还是早点预留好时间。虽然是同一个baseline,大家的训练时间和训练结果都不同,学习群助教的解释是“训练的本质就是一个找函数的过程,训练过程是有随机性的,时间少了可能不够贴合,效果不太好,时间多了太贴合了又过拟合效果也不太好”,根据助教的解释好像稍稍能理解一些。直到“状态”栏变为“运行成功”,点击右侧的“发布为服务”。
在“发布为服务”页面,填写“模型服务API名称”,单选“要发布的版本”,选择“要授权的应用”。这里若“要授权的应用”下拉没有应用,需要自己在https://console.xfyun.cn/app/myapp创建一个新应用,然后回到“发布为服务”页面,进行选择“要授权的应用”后发布。
复制并记录下这5处信息,回到PaddlePaddle的BML Codelab环境下的“main.ipynb”。
四、模型测试
在“main.ipynb”的最后一个代码块空缺处,填入刚记录的5处信息。
之后对整个“main.ipynb”文件重新“全部运行”,可以发现所有代码块都能跑通,最后一个代码块也有了输出结果。这里每个人的输出结果大概率是不一样的。
五、赛事提交结果并跑分
来到讯飞挑战赛界面http://challenge.xfyun.cn/topic/info?type=question-bank-construction&option=tjjg,单击左侧的“提交结果”,准备好三样东西,一是之前记录的五处信息中的resourceid,填入“提交结果”页面的“资源id”。
二是“中文prompt”填入:
(1)理解文中重要概念的含义
(2)理解文中重要句子的含意
(3)分析论点、论据和论证方法
三是“英文prompt”填入:
(1)Understanding the main idea of the main idea.
(2)Understand the specific information in the text.
(3)infering the meaning of words and phrases from the context
之后点击“提交”,等待1-2h的跑分时间,刷新页面后在“提交结果”页面的最下方可以看到跑分结果。到这里整个流程都跑通啦,给自己竖个大拇指吧~~