2023年2月25日,Meta使用2048张A100 GPU,花费21天训练的Transformer大模型LLaMA开源了。
1.4T tokenstakes approximately 21 days
以下是觉得论文中重要的一些要点
1)相对较小的模型也可以获得不错的性能
研究者发现在给定计算能力限制的情况下,最好的性能并不是来源于更大的模型,而是来源于相对较小模型在更多的数据上进行训练。LLaMA就采用了这种策略,LLaMA模型,模型参数从7B到65B不等,13B版本性能优于GPT-3(175B),65B版本获得相比目前最好模型差不多的性能。目前大家公认的大模型openai的GPT3系列,参数量大约175B。LLaMA相比GPT-3,在获得接近性能的前提下,将参数量降低了一个数量级,模型可在当前单卡GPU上部署。
2)不一定要专业语料,精细处理的开源语料也可以
LLaMA使用CommonCrawl、C4、Wikipedia、Books等语料,并且引入了Github、XrXiv、StackExchange等开源专业语料,模型也具备了不错的写代码、处理数据公式和推理的能力。
3)各种稳定模型训练的优化技术必不可少
LLaMA基于Transformer模型架构,并且应用了各种优化技术以加速和稳定模型的训练过程。
参考GPT3的训练经验,使用RMSNorm标准化每个transformer block输入,标准化输入能提高训练的稳定性。
参考PaLM经验,使用SwiGLU激活函数替代ReLU激活函数。
参考GPTNeo,使用RoPE位置编码替代原来的绝对位置编码。
同时LLaMA引入causal multi-head attention以减少计算和存储开销,重写了transformer的backward以减少冗余计算,同时考虑GPU的计算和通信的重叠加速训练。
LLaMA使用AdamW优化器,并采用warmup技巧。其实我觉得AdaMax可能会更好些,AdaMax在Speech上相比AdamW更稳定,当然Speech数据和文本数据还是有较大差别的。
4)LLaMA的模型的结果还是可以的
LLaMA在多个指标上同样获得了不错的性能,获得和GPT3差不多的性能。
类似于GPT-3,LLaMA也能没经过调优直接应用到下游任务,具体为zero-shot task和few-shot task。
zero-shot不给参考例子,在给定q时直接让模型生成回答a。few-shot则类似于给出参考例子,给出1、5或64个qa对作为参考,然后在给定同类型的q让模型生成回答a。以下是一个one-shot的例子。
在zero-shot和few-shot类任务中LLaMA获得不错的性能,并不比更大的模型差(分数越高越好)。
同当前大模型GPT-3,Gopher、Chinchilla、PaLM相比,LLaMA在多个指标上获得明显的性能提升,并且LLaMA在数学推理任务上获得更好的性能,数学推理据说在chatGPT上栽了跟头。
虽然LLaMA在保证回答正确、没有偏见和对人类有用上花费了很多优化,但正如论文所说,由于预训练语料中的一些偏见,模型可能会产生一些匪夷所思的答案。模型要真正服务人类,可能还是需要使用RLHF,使用人类反馈指导模型对问题回答的选择。
---
[1] LLaMA. llama/MODEL_CARD.md at main · facebookresearch/llama · GitHub
[2] LLaMA: Open and Efficient Foundation Language Models. https://scontent-xsp1-1.xx.fbcdn.net/v/t39.8562-6/333078981_693988129081760_4712707815225756708_n.pdf?_nc_cat=108&ccb=1-7&_nc_sid=ad8a9d&_nc_ohc=ov6yTHfLfNQAX_ixTyd&_nc_ht=scontent-xsp1-1.xx&oh=00_AfDnH5IYrqTcFoOpLmrskeR_kQUe4To1BWUk-ZLv5unymg&oe=6401C9E2
[3] Illustrating Reinforcement Learning from Human Feedback (RLHF). Illustrating Reinforcement Learning from Human Feedback (RLHF)