首先是预训练部分,数据注意版权和风险问题。数据去重和数据清理,PII人的身份信息(人名、地址等)。如果数据有大量PII数据则这个数据丢掉。
网页的数据,提取,代码和数学的提取的特别的方法,OCR提取,或者是结构化的分析。markdown的处理
去重:可能可以去掉60%,URL去重,文档去重(Min hash文档正文相似去重),行级别去重,正文中出现超过6次去重(比如广告,提示性的东西)。
很长的没什么用的去除,或者网页中脏次太多去除。
用模型做分类,质量差的就去除。
代码或者推理性的数据,代码和推理性的网页找出之后,抽取出数据,做一些判断
多语言数据,每个语言会根据语言质量怎么样提取高语言质量的数据吧
3.12讲数据混合
高质量数据多用些
知识分类,把网页分成20个类,知识类、宗教类、娱乐类等不同的比例,模型训练的时候混合比例可以试不同的。
我们的数据混合,50%左右是通用知识,25%是数学和逻辑类,17%是代码,8%是多语言(多语言这里可以稍微多一点),llama3其实多语言是比较差的)
退火数据,用退火数据。高质量的数据可能是比较少的,在训练完之后在小数据集中再训练一点点。他们的实验表明这样有提升效果。
可以用70%的原数据,30%的新数据,评估新数据的好坏。
3.2模型架构
llama3主要还是用了transformer,用了更好的数据清理和很多的卡
self attention的时候,一个token对应一个向量,这个向量复制三份,分别代表k,v,q。k与q做内积,然后乘v得到输出。多个token时候,当前token的输出等于此token的q与其他token的k做内积,经过soft Max乘以不同token的v得到输出。
在multiheadattention时候,比上面的自注意力多了投影矩阵,多个投影矩阵每个头都是和之前计算一样。但是我计算每一个token时候,需要和之前的k\v做计算,需要的存储空间比较大,计算起来比较麻烦,所以想这个投影矩阵里k、v是否可以一样,只是q不一样。计算时,优化计算和内存可以多头分组,每组中的k、v相同。
其次,是用了模版来表示不同的来源的文档,因为计算的时候,只需要计算和同一个文档的quary。使用了128k的字典,这个大了所以在多语言处理上更好,但效果没有gpt 4那么好,token大了,一个token能表示的字符多了,比如sample以前是Sam一个token表示,ple一个token表示,现在samp,le of各一个token,相比之前编码后的文档就小了。token大的好处,但是也不能太大,不然计算就困难了。
用Rope做位置编码,有个超参数设置的比较大,就能支持比较大的上下文窗口。
3.2.1scaling laws
通常来讲是说,你的算力翻倍,你的智商加1
在比较小的模型跑一下试验,然后在放在一个大的模型上看看结果怎么样。一个小模型的验证误差,可以验证一个大模型的误差。
这个模型在数学上的误差(小模型在你关心的方面的误差)。
在算力固定的情况下,不同模型的比较,你有什么卡,训练时间固定,所以用固定算力作为比较。
到后面模型再增大,可能收敛了(图4)
3.3infrastructure
训练在大量显卡上的困难