五步走,两个月炼成!王小川的大模型打造秘籍曝光

允中 发自 凹非寺 量子位 | 公众号
王小川两个月交卷的大模型,是怎么炼成的?
现在,这个问题有了更为详细的解 。
70亿参数、一经发布就开源可商用,百川智能的中英文大模型-7B,近期在圈内备受瞩目 。
从公开的测试效果以及社区的使用反馈来看,-7B的表现非常优秀,据说清北也已经用上了 。
其源代码也已在、等平台发布 。
有趣的是,开源社区在围绕-7B进行实验和应用构建时,项目LLM-的作者郭必扬()发现了-7B的一个特殊能力 。
他在做信息抽取实验的时候,自己胡编乱造了一段“新闻”,然后故意将“微软”写成“巨硬”,“亚马逊”写成“亚牛逊”,“谷歌”改为“谷嘎”……
然后使用下面的的:
(3.5)的表现是这样婶儿的:
接下来就是鹅妹子嘤的时刻了:
特殊微调之后的 -7B把作者胡编乱造的公司名字,全都掰了回来!!!
看到这,直接给郭必扬()惊喜(惊吓)住:
本来是乱编的新闻,这这这就说不清了啊!
-7B的能力我们是看到了,但它开源也并不意味着人人都可以轻易复刻一个大模型出来 。
源代码只是算法的核心,也就是能够看到模型结构而已 。
“一开源就能人手一份,进行各种换皮魔改,同人逼死官方”这事儿,在大模型这儿行不通 。
要得到一款和效果相仿的大模型,算法、算力和数据缺一不可 。
抛开算力不讲,从0到1构建一款大模型,都需要哪些步骤?
这不,-7B给出了一份“高分案例” 。
训练大模型五步走
官方透露,-7B的“炼化”过程可以归纳为五步 。
第一步,构建优质的数据集
数据是大模型的三要素之一 。
语言模型是一种用于计算“一段文本”出现可能性的统计模型,其本质是建模字、词之间的关联性 。
这种字、词之间的关联性必须通过大量数据的分析和学习才能得到,因此数据对于大模型而言可以说是最重要的元素,预训练数据的质量、多样性、规模、代表性以及公平性和偏见等因素对模型性能有着决定性影响 。
-7B模型在数据方面作了以下处理:
整体流程如下图所示:
此外,为了实现模型在多语言上的良好表现,得到高质量的数据集之后,-7B又采用了自动化的数据采样策略,最终确认了一个在下游任务上表现最好的中英文配比 。
第二步,制定合理的分词策略
拥有了一个优质的数据集之后,需要思考的便是:
如何将数据集里面的语料充分利用起来?
目前大部分开源模型主要基于英文优化,因此对中文语料存在效率较低的问题,这也是一些国外的大模型在中文生成方面表现相比英文较差的原因 。
-7B采用了中的Byte-Pair (BPE)作为分词算法,并且进行了以下的优化:

五步走,两个月炼成!王小川的大模型打造秘籍曝光

文章插图
对比不同分词器对语料的压缩率,可见其分词器明显优于LLaMA、等开源模型,在压缩率相当的情况下,训练和推理效率更高 。
第三步,打造良好的模型结构
提到大模型,“大力出奇迹”是我们经常挂在嘴边的一句话,“力大砖飞”隐藏的含义是大模型并未在技术路线上取得革命性的突破,其底层技术基础依旧是 。
换言之,当下的绝大部分大语言模型依旧是模型,只不过模型全部由的层构成,具体分为以下几个部分:
1、,即位置编码 。
在中所有token都被同样的对待,没有前后顺序之分,因此需要加入一个 用于表征词之间的位置关系 。
目前的位置编码有绝对位置编码和相对位置编码两种形式: