微信扫码
与创始人交个朋友
我要投稿
一般而言LLMs training可以分3个阶段:
Pretraining(预训练):目的是利用极为大量的Text data,来学习基础的语言逻辑、常识与知识。
Instruction (Supervised) Tuning(指令微调):由问答的pair,来让LLMs学会回答人类的问题,依循人类的指令。
RLHF(Reinforcement Learning from Human Feedback):利用人类或是Reward model的feedback来加强安全性...等各方面
我们今天先专注讨论前两部分Pretraining及Instruction Tuning。
Pretraining目前所有LLMs都是使用Language modeling(预测下一个字)这个训练方法,因此决定Pretraining好坏的其实关键就是Data。
Data在Pretraining这块主要有几个面向要思考:1. Data的数量要多少?、2.Data的质量如何?、3.Data中蕴含的知识?
2022年Google Deepmind提出了Chinchilla optimal,指出在一样的computation量下,Data跟Parameters的关系应该要依据一个特定比例,可以训练的最好,也是俗称的Chinchilla scaling law。
Chinchilla optimal是在固定的算力下最佳的比例,但是很多时候算力虽然很稀少,但是我们还是希望尽量让我们的model越强越好,因此Harm de Vries指出我们可以通过"花费更多算力 ,给模型过多的训练数据",变得比chinchilla optimal更好。这很直觉,训练越久、越多数据,模型本来就该越好。目前在Pretraining这块我认为共识都还是数据越多越好,所以从llama 1的1.4T到llama 2变成2T的数据。
Data的质量是第二个大家重视的点,从传统Data sciense大家就一直讲"Garbage in, Garbage out"。在LLM这块最典型的就是Falcon 的作者,在Falcon的paper中提出:「我们是靠数据清理赢过LLaMa的」(虽然我认为并没有真的赢)。
从上图可以看到他们做了非常大量的数据清理工作,从基础的语言识别到各式各样的去重复,借此让LLMs学习diverse且高质量的文本。对LLM Pretraining而言,数据质量一直都是最重要的一个点之一。
Pretraining阶段中,如果你在Training data中放入不同知识的Data,LLM就会学会对应的知识。
让我们来看Falcon、MPT跟LLaMa的pretraining data mixture。
我特别标出来他们pretraining data中包含了多少比例的code data,从少到多分别是Falcon < LLaMa < MPT,而这也直接影响到了下游任务的性能。
从上图可以看到Programming的能力也依序是Falcon-7B < LLaMa-7B < MPT-7B。
这是一个最直接显现不同pretraining会导致不同的LLMs能力的一个简单范例。
Instruction Tuning的关键是让LLMs学会跟人对话,让人满意。如果一个LLM只经过Pretraining而没有instruction tuning,最直接的结果就是他可能每个问题都用接龙的形式下去,偶尔会续问下一个问题,偶尔会直接回几个字就结束而不解释。
因此,如何构建出对应的Instruction tuning dataset变得也相当重要。
在Instruction Tuning Data这边最少也有两个点要考虑:1. 数据多样性、2. 数据质量。
Google于2022年提出的Flan2022 instruction tuning dataset [5]总共包含了1,836个不一样的task。
极为Diverse的dataset让LLMs学习到不同任务、不同问题的解决方法、回答方式。从实验上我们也可以看到加入越多不一样的任务,LLMs在downstream的performance也就越好。
因此Instruction tuning dataset的发展,其实沿着一条明显的轴在进行,就是包含越来越多的任务,我们的LLM就会越好。btw 虽然flan2022包含了非常多的任务,但是在instruction tuning这个阶段的training tokens总量跟pretraining相比就是九牛一毛,大多都在几十B tokens这个levels。
Data Quality是之前被LLaMa-2提起并引起大家重视,Meta也发了一篇论文说明在instruction tuning这个阶段Quality(质量)比Quantity(数量)更重要,Lima: Less is more for alignment. [6]。
Lima显现了,只要1,000条instruction tuning data,就可以比很多训练更久的LLMs表现更好。
这个结论我相信很多相关领域从业者都知道,但是我想特别提,很少人真的去一行一行看Lima的data,了解所谓的"好的Data Quality "到底有多好。
首先在diversity这块,Lima也做得非常好,光是其中stack exchange这个部分(179题),就包含了174种不一样类型的问题,如果你真的去一笔一笔看,里面真的每一题都是完全不一样的domain。
再来,如果仔细看Lima里面的data,大多data都包含3个性质:1. step by step回答问题、2. 提供详细解释、3. 补充额外知识。我想这三个性质的任何一个性质,都很难简单的label出来。这边就不截图了,推荐大家去Lima的dataset里面一笔一笔看
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-05-14
2024-04-26
2024-03-30
2024-04-12
2024-05-10
2024-07-18
2024-05-22
2024-05-28
2024-04-25
2024-04-26