跳转至

【从零训练Steel-LLM】微调探索与评估

Ch01.1245 【从零训练Steel-LLM】微调探索与评估

📊 Level ⭐⭐ | 4.5KB | entities/从零训练steel-llm微调探索与评估.md

【从零训练Steel-LLM】微调探索与评估

来源: 炼钢AI

发布日期: 2024-10-24

原文链接: https://mp.weixin.qq.com/s/KK0G0spNw0D9rPUESkHMew


1

前言

今年二月份,机缘巧合,朋友搞到了一台A100 80G SXM,机器放着也是怪浪费的,便萌生了从零预训练一个LLM的享法。一台机器不算多,并且最多可能也就用个3-4个月,掐指一算,训个1B左右的模型,1T左右的数据应该差不多。好景不长,机器用了一个多月吧,就被收回了,当时模型才训到了20k step(预计要训练100k step)。天无绝人之路,真的非常感谢某top 3老师的资助,支持了一个多月的一台H系列机器,才得以让我们的项目顺利完成。打工的牛马,工作日10点到家,亦或是周末,靠着兴趣,每天弄点,拖拖拉拉,转眼已经到了10月了,才弄出来一个自己觉得差不多还说的过去的模型。和其他模型不太一样,我们的模型预训练时以中文语料为主,大概只有20%左右的英文数据,因此就不在英文榜单上现眼了。微调以后,最终在CEVAL上获得了38分,CMMLU上获得了33分(这已经比一些大几倍的开源模型效果要好了。叠甲:开源数据的功劳,开源数据的功劳)。本篇文章主要介绍下微调上的探索以及评估。另外,还特意试了试训练CMMLU数据集,能在榜单上提多少分(狗头

之前也写了更详细的数据准备、训练框架改造、模型设计的文章:

【从零 ‍ 训练Steel-LLM】预训练数据收集与处理

【从零训练Steel-LLM】预训练代码讲解、改进与测试

【从零训练Steel-LLM】模型设计

github:

https://github.com/zhanshijinwat/Steel-LLM

项目也有交流群,满200人了,加 绿:a1843450905。

欢迎关注我的 zhi   hu:战士金

2

微调数据

首先来介绍一下我们用的微调数据,主要目标是提高模型的对话能力和作题能力:

(1)BAAI/Infinity-Instruct

开源数据的话,还是选大机构发布的靠谱一点,毕竟大机构还是要面子的,除此之外尽量选择新一些的。我们的模型是8月20号左右训练完的,BAAI正好在8月初才发布了Infinity-Instruct 7M数据集,正好就拿过来用了。这个数据集还给出了语言标签、任务类型等元信息,方便进一步筛选数据。最开始我就一把梭,直接把这700w数据全都训进去,但是CEVAL只有30出头的分数。后来才想起了这里边应该混有一些英文数据的,统计之后才发现只有70w左右的中文数据。 因为Steel-LLM预训练数据中80%都是中文数据,微调时候用大部分都是英文的数据微调效果当然是不太好的 。因此,最好版本的微调模型只用了70w的Infinity-Instruct的中文数据。

Infinity-Instruct微调数据集数量不少,也借此谈谈我对微调数据的看法。从很早开始,对于使用多一些的数据微调(《Exploring the Impact of Instruction Data Scaling on Large Language Models An Empirical Study on Real-World Use Cases》)还是精选几百、几千条数据微调(《LIMA:Less Is More for Alignment》)一直有争执。我觉得使用少量的微调数据得到一个好的sft模型前提是你的基础模型足够强大,如

原文存档


关联