前言
之前只是使用了现成的OpenAI的模型,每次调用都要给出一大堆的重复提示词,而且效果也不是太好,这次尝试用其称为微调(fine-tuning)
来训练个新的模型。可以节省token,顺便看看微调后的模型效果和之前有多大区别。
OpenAI已经给出了详尽的说明,下面就只记录下具体的步骤。
安装
直接在容器里操作吧,不想污染主机。
起一个python的环境。
数据准备
我感觉这是工作量最大的内容了。这里先用几个试一下:
然后用工具整理一下
这里他会自动帮我们添加提示的结束字符,以及回答的开头空格和结束的\n
训练
然后就是上传文件开始训练了。
要等很久。主要是排队,期间可以用openai api fine_tunes.list
查看状态:
一直是pending
,等训练好再写吧。
过了7分钟终于进入队列了,排在13。
如果按他们的提示,每个任务要一个半小时,那就得近20小时。。。。
实际也就等了半小时不到。但结果不尽人意。数据量太少了。
样本属性
这里设计一下样本应该包含哪些
这里只需要保存变量即可
- 时间,文本模型无法知道当前的时间
- 内容,直播的内容
- 对话列表,为了有一定的上下文联系,列表不一定是要一一对应。
样本采集
真是有多少人工就有多少智能。按Openai的说法,这种聊天类需要的样本量至少数千,这还只是最低。模型的质量与样本量成指数关系,想想都头大。
程序的问题还得程序来解决。
初步想法是录制别人的直播视频,加语音识别,同时录制弹幕,然后程序化生成样本。
总结
仅就调用Openai的接口来说,并不复杂,难度还是在于样本的获取,就等样本采集完毕后再来试一试模型的训练吧。