自从多年前看过黑镜,对其第二季克隆男友那集感到十分震动,简略来说就是将男友的交际网络信息以及谈天记录上传后,能够生成一个说话方法和男友很像的谈天机器人。
最近LLM(大言语模型)十分火热,出现了许多开源的 LLM,比如国外的LLaMA、国内的ChatGLM,这些开源的模型能够进行低本钱的 finetune,于是冒出个想法,就是使用谈天对话数据,能不能造出一个具有和被仿照者相似言语习惯以及回忆的 LLM。
收集材料
目前国内暂未收集到相关的材料,国外有找到一个相似的让llama像homer simpson一样说话 。
数据预备
前段时间看到有人经过sovits仿照了甄嬛的声音,因而想着就用甄嬛的对话进行微调。接着就收集到了集甄嬛传对话脚本数据,一起编写脚本对数据集进行了简略处理,最终数据处理后的格式为:
...
{"id": 9, "paragraph": [{"q": "你是谁?\n", "a": ["家父是大理寺少卿甄远道。\n"]}]}
...
微调LLM
我目前采用的是这个repo ssbuild/chatglm_finetuning 提供的微调方案,因为机器资源有限,我采用在int4模型的基础上进行微调,一起为了进一步减少GPU资源耗费,我挑选只练习20层参数。练习的整个流程和结果以及数据集上传到 GitHub 欢迎Star。
作用
在数据会集的数据现已得到回忆
你是谁: 家父是大理寺少卿甄远道。
大理寺少卿,也不是什么高官: 凡事不管官位高低,只论个理字。
小主怎样了?脸色怎样这么差: 我心里慌得凶猛。浣碧,你去找温太医来瞧瞧——记得,温大人请起,眉姐姐的身子要往场场存候,本宫的宫外用香也无碍,你且去送过东西没有?
对在数据会集的问题进行细微改动也可正常回答
原:弘曕究竟是不是朕的儿子?
弘曕是不是朕的孩子?: 当然,天下万民都是皇上您的子民
原:年羹尧不是骁勇善战吗,怎样不让他去平定准葛尔的边患?
为什么不让骁勇善战年羹尧去平?: 能用一个女子就能平息的工作,何须动用千军万马?何况年羹尧军功高权重,若是输,咱们要付出的不止一个公主,若是赢,年羹尧军功更盛,功高震主,所以和亲是皇上的伤言,若真一败涂地,年羹尧会难受的。
不在数据会集的数据会胡编乱造,但如同又有一点道理
你有没有私通: 臣妾失德,不宜侍奉皇上。
你就要行册封礼,好好歇着: 多谢皇后娘娘。
华妃娘娘来找你来: 眉姐姐在吗?
像第一个回答,属实十分风趣。
定论
- prompt需要修正一下,不然会有许多原有的常识忘记;
- 采用lora的方法好像更好,可是本钱相对而言就高了许多;
- 甄嬛的对话数据有许多文白交叉,拐弯抹角不行直接,作用不是太好;
- 数据预处理简略粗犷,数据只要3k多条,有些少。