Antkillerfarm Hacking V8.0

Attention » Large Language Model(三)——LLAMA, Chinchilla Law, MoE

2024-03-23 :: 5710 Words

LLM大乱战(续)

大模型开源有几个等级,开源程度从低到高:

  • 仅模型开源(技术报告只列举了Evaluation)。主要利好做应用的公司(继续训练和微调)和普通用户(直接部署)技术报告开源训练过程。
  • 比较详尽的描述了模型训练的关键细节。利好算法研究。训练代码开源/技术报告开源全部细节。
  • 包含了数据配比的核心关键信息。这些信息价值连城,是原本需要耗费很多GPU资源才能得到的Know-how。
  • 全量训练数据开源。其他有算力资源的团队可以基于训练数据和代码完全复现该模型。训练数据可以说是大模型团队最核心的资产。数据清洗框架和流程开源。
  • 从源头的原始数据(比如 CC 网页、PDF 电子书 等)到 可训练的数据的清洗过程也开源, 其他团队不仅可以基于此清洗框架复现数据预处理过程,还可以通过搜集更多的源(比如基于搜索引擎抓取的全量网页)来扩展自己的数据规模,得到比原始模型更强的基座模型。

实际上大部分的模型开源诸如LLaMa2、Mistral、Qwen等,只做到Level-1,像DeepSeek这样的可以做到Level-2。而Level-4及以上的开源一个都没有。

LLM时代的典型特征:学习速度跟不上知识的更新速度(下载速度跟不上模型的开源速度)。


参考:

https://www.zhihu.com/question/584132646

中国的大语言模型“悟道2.0”参数是GPT-3十倍,是否中国在大语言模型训练技术上已经远远超过美国?

https://zhuanlan.zhihu.com/p/463352552

稀疏性在机器学习中的发展趋势——Sparsity,稀疏激活,高效计算,MoE,稀疏注意力机制

https://zhuanlan.zhihu.com/p/254821426

乘风破浪的PTM:两年来预训练模型的技术进展(2020年之前的主流技术)

https://zhuanlan.zhihu.com/p/597586623

通向AGI之路:大型语言模型(LLM)技术精要

https://mp.weixin.qq.com/s/eV_9Mi2879w_gfoyiSm8Ug

LLM全景图(The Landscape of LLM)

https://www.zhihu.com/question/604592470

前两个月国产类ChatGPT大模型如雨后春笋,为何最近都没声音了?

https://mp.weixin.qq.com/s/oqhi58NcEVH1oVrW2p4xlQ

大模型参数高效微调技术原理综述(一)-背景、参数高效微调简介

https://mp.weixin.qq.com/s/fUAUr9X3XLndfjga2QIHbA

大模型参数高效微调技术原理综述(二)-BitFit、Prefix Tuning、Prompt Tuning

https://mp.weixin.qq.com/s/f4l04f78F507JRrCawnV8w

大模型参数高效微调技术原理综述(三)-P-Tuning、P-Tuning v2

https://mp.weixin.qq.com/s/nUAcCz6mcgGuUeuTfgqmOQ

大模型参数高效微调技术原理综述(四)-Adapter Tuning及其变体

https://mp.weixin.qq.com/s/N_N6RqKB9pjZ1tozfM5f5A

大模型参数高效微调技术原理综述(五)-LoRA、AdaLoRA、QLoRA

https://mp.weixin.qq.com/s/M2nds_FJBXooi08qDU-4yA

大模型参数高效微调技术原理综述(六)-MAM Adapter、UniPELT

https://mp.weixin.qq.com/s/P_AmTa4s8dOyc_0fZBgNPA

大模型参数高效微调技术原理综述(七)-最佳实践、总结

https://zhuanlan.zhihu.com/p/618695885

LLaMA, Alpaca, ColossalChat系列模型研究

https://zhuanlan.zhihu.com/p/638809556

大模型高效微调综述上:Adapter Tuning、AdaMix、PET、Prefix-Tuning、Prompt Tuning、P-tuning、P-tuning v2

https://zhuanlan.zhihu.com/p/651564985

主流大语言模型从预训练到微调的技术原理

LLAMA

代码:

https://github.com/facebookresearch/llama

有用的LLAMA模型:

https://huggingface.co/TheBloke/Llama-2-7B-Chat-GPTQ

https://huggingface.co/Trelis/Llama-2-7b-chat-hf-sharded-bf16

Inference:

https://clay-atlas.com/blog/2023/09/21/huggingface-transformers-streaming/

使用HuggingFace Transformer中的TextStreamer和TextIteratorStreamer來實現串流式(stream)輸出生成token

各类开源LLM打榜:

https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard


参考:

https://github.com/jacoblee93/fully-local-pdf-chatbot

一个本地版本的阅读PDF的chatbot

https://s-tm.cn/2023/06/10/SaveModelSharding/

使用HuggingFace transformers进行模型分片存储

https://www.zhihu.com/question/653373334

如何看待Meta发布Llama3,并将推出400B+版本?

https://mp.weixin.qq.com/s/VU_qUQEjqUNHd0UK6RLM9g

一文带你了解LLAMA(羊驼)系列

GEMMA

官网:

https://www.kaggle.com/models/google/gemma

Llama 3

llama 3是Meta于2024年发布的LLM。

论文:

《The Llama 3 Herd of Models》

本论文发布于2024.7,它实际上是Llama 3.1的技术报告。

https://blog.csdn.net/v_JULY_v/article/details/140659420

一文速览Llama 3.1——对其92页paper的全面细致解读:涵盖语言、视觉、语音的架构、原理

GPT-J

GPT-J是一个由EleutherAI开发的自然语言处理(NLP)模型,基于GPT-3的架构,拥有6B个参数。它在800GB的开源文本数据集上进行训练,具有强大的语言生成和理解能力。

LLM应用

大语言模型参与的芯片前端设计迭代流程

Chinchilla Law

最为知名的规模定律包括“Kaplan定律”和“Chinchilla定律”。

Kaplan定律指出,在固定计算量的前提下,扩大模型规模通常比增加数据量更为有效;

而Chinchilla定律则认为,模型规模和数据量同样重要。


DeepMind研究了在给定算力预算下训练Transformer语言模型的最佳模型大小和tokens数量。

在LLaMA-1预训练时候,从各种开源数据集,凑够了1.4T的tokens。按照Chinchilla Law,应该使用1,400B (1.4T) tokens来训练参数量大小为70B的LLM最佳。即:每个参数需要大约20个文本token。

https://zhuanlan.zhihu.com/p/627821763

训练LLM需要多少数据?

https://www.zhihu.com/question/628395521

如何看待微软论文声称ChatGPT是20B(200亿)参数量的模型?


6B模型可以在在12/16/24G显存的消费级显卡部署和训练。如果一个公司的模型不打算在消费级显卡部署,通常不会训6B这个规模。而且通常还会有一个1.4b或者2.8b,这个是比较适合在手机、车载端量化部署的尺寸。

13B模型按照4k长度组织数据,数据并行=2,刚好占满一个8卡机,并且可以量化部署在A10甚至4090。

下一档也不是130B,目前更大模型有16B、34B、52B、56B、65B、70B、100B、130B、170B、220B这几个规模,基本都是刚好占满某种规格的算力,要么是训练要么是推理。如果需要加快训练速度,只需要倍增卡数即可。比如我们训7B模型以8卡为单位,8x8卡训,70B模型以80卡为单位,80x6卡训。

https://www.zhihu.com/question/627258986

现在LLM的大小为什都设计成6/7B、13B和130B几个档次?


Meta在LLaMA的观点是:给定模型的目标性能,并不需要用最优的计算效率在最快时间训练好模型,而应该在更大规模的数据上,训练一个相对更小模型,这样的模型在推理阶段的成本更低,尽管训练阶段的效率不是最优的(同样的算力其实能获得更优的模型,但是模型尺寸也会更大)。

https://zhuanlan.zhihu.com/p/667489780

解析大模型中的Scaling Law


当batch size较小时,更新方向(即对真实梯度的近似)会具有很高的方差,导致的梯度更新主要是噪声。

当batch size非常大时,我们从训练数据中抽样的任何两组数据都会非常相似(因为它们几乎完全匹配真实梯度)。

所以就有了Gradient Noise Scale Law。

https://zhuanlan.zhihu.com/p/666997679

大Batch训练LLM探索

MoE

Mixture of Experts(MoE)


挑出模长最大的k个向量来逼近n个向量之和:模长越大的向量,在求和过程中越不容易被抵消,从而作用越突出。

https://kexue.fm/archives/10699

MoE环游记:从几何意义出发


开源项目:

https://github.com/XueFuzhao/OpenMoE

https://github.com/laekov/fastmoe


https://mp.weixin.qq.com/s/XQSEg2_8_1lFqWdHVG6TVA

Switch Transformer: 高效稀疏的万亿参数Transformer

https://zhuanlan.zhihu.com/p/362525526

深入解读首个万亿级语言模型Switch Transformer

https://zhuanlan.zhihu.com/p/676980004

使用PyTorch实现混合专家(MoE)模型

https://huggingface.co/blog/zh/moe

混合专家模型(MoE)详解

https://zhuanlan.zhihu.com/p/662518387

MOE并行

https://zhuanlan.zhihu.com/p/1431483173

聊聊MoE实验性工作Upcycling Large Language Models into Mixture of Experts

https://zhuanlan.zhihu.com/p/672712751

大模型LLM之混合专家模型MoE(上-基础篇)

https://zhuanlan.zhihu.com/p/673048264

大模型LLM之混合专家模型MoE(下-实现篇)

Mixtral

Mixtral是由Mistral AI团队推出的MoE模型,参数大小为47B。

https://zhuanlan.zhihu.com/p/676010571

欢迎Mixtral-当前Hugging Face上最先进的MoE模型

DeepSeek

《DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models》

《DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model》

《DeepSeek-V3 Technical Report》

DeepSeek认为在同等专家参数量和计算成本不变的前提下,更多数量的小专家,比数量少的大专家好。这种更精细的专家分割使得激活专家的组合更加灵活且适应性更强。

专家路由事实上引入了一个不连续的门控函数(对梯度计算不友好),这导致梯度下降优化方法在MoE训练中表现不佳,甚至出现“路由崩溃”,即模型容易陷入始终为每个Token激活相同的少数专家的窘境,而不是将计算合理的传播到所有的可用专家。这也是MoE模型训练的难点。

传统的规避路由崩溃的方法是强制“平衡路由”,即通过训练策略让每个专家在足够大的训练批次中被激活的次数大致相等。这一策略也就是“辅助损失”。但这种强制性的辅助损失会由于训练数据的结构不均衡特征,导致同领域的专家能力分散到不同的专家模块之中,极度损害MoE模型的性能。理想的MoE应该有一些经常访问高频通用信息,并具备其他访问较少的专业领域专家。如果强制平衡路由,将失去实现此类路由设置的能力,并且必须在不同的专家之间冗余地复制信息。

Fork me on GitHub