如何微调模型的coding能力?

文摘   2024-09-07 15:34   新加坡  


本文涉及到的详细测试代码和测试步骤放置于:

https://github.com/xinyuwei-david/david-share.git下的:Deep-Learning/Phi-3.5-MoE-and-Mini-Fine-tuning,本文中不再赘述代码实现。

欢迎给repo点亮Star,您的点赞是作者持续创作的动力。


此前写过不少微调的代码,主要是微调文本模型,如果要微调模型的coding能力呢?需要用什么格式的训练语料?

有两类格式的语料。

一类是类似:

https://huggingface.co/datasets/smangrul/hf-stack-v1/viewer/default/train?p=2&row=200.

我们看到上图实际上只有content列的内容对于训练是有效的。这类训练语料实际上可以认为是没打标签的。如果您想在编写代码的过程中完成应用程序,那么在此数据集上微调模型也是可行的。如果你想制作一个在编写代码时自动补全的应用程序,在这个数据集上微调模型会有效。


如果你想制作一个代码聊天助手,需要将代码以聊天格式呈现,则需要这类格式的训练语料:prompt/answer+code

参考训练集有:

https://huggingface.co/datasets/iamtarun/python_code_instructions_18k_alpaca/viewer/default/train

我写的代码是基于第二类语料做的微调。微调的损失函数如下,可以看到收敛的效果还不错:

用微调后的模型进行测试,也能准确回答问题(微调小模型如果数据集质量差,很容易把模型调坏):

具体代码实现参加我的repo。


大语言模型的书籍已经发布,购买扫码:

大魏分享
https://github.com/davidsajare/david-share.git
 最新文章