专栏名称: 吃果冻不吐果冻皮
专注于AI工程化(LLM、MLOps、LLMOps、RAG、Agent)落地。
目录
相关文章推荐
达州发布  ·  就在下周!达州将大幅回暖...... ·  20 小时前  
神嘛事儿  ·  我回答了 @用户7699215969 ... ·  2 天前  
四川日报  ·  打虎!正部级蒋超良被查 ·  2 天前  
51好读  ›  专栏  ›  吃果冻不吐果冻皮

从零训练的 1B 以下小模型汇总

吃果冻不吐果冻皮  · 公众号  ·  · 2024-07-12 12:54

正文

【点击】 加入大模型技术交流群

原文:https://zhuanlan.zhihu.com/p/693252663
最好的学习方式莫过于自己从头做一遍。学习大模型的相关知识以来,一直都想从头自己训练一个 1B 以下的模型,感觉这样才算是真的学过了。不过以手头的资源,也只能玩玩儿迷你的小模型了。最近在网上搜了不少资料,主要是 GitHub 上的仓库和 Arxiv 上的 paper,顺便记录在这里。
https://github.com/karpathy/nanoGPT
nanoGPT 是 karpathy 大神写的 GPT-2 最小实现。麻雀虽小,五脏俱全。GPT-2 是大模型的鼻祖,很多论文都以 nanoGPT 为基础魔改或者作为 baseline。nanoGPT 共有 0.1B 到 1.5B 四个大小不同的版本。
训练 GPT-2 的文章有很多,虽然有些比较老的,但是也值得参考,列举一些我觉得不错的:
  • https://www.kaggle.com/code/pritishmishra/gpt-training-on-wikipedia-dataset-from-scratch
  • https://zhuanlan.zhihu.com/p/79714797
  • https://zhuanlan.zhihu.com/p/606339093
  • https://finisky.github.io/2020/05/01/pretrainchinesegpt/
  • https://zhuanlan.zhihu.com/p/656758138
  • https://github.com/minimalist-nlp/gpt2-text-generation

tinyllama

Llama 的一个迷你版,花了 90 天,用了 16 个 A100-40G。和 Llama 完全相同的架构,可以无缝替换。

https://github.com/EleutherAI/pythia

这个参数范围更大了,从 14M 开始,一直到 12B,共 10 个不同大小的版本。也是出于学术研究目的,提供了这么多模型。

https://github.com/allenai/OLMo

有 1B 和 7B 两个版本,架构上没什么特色,优点是从训练数据到代码和 Checkpoint,做到了完全开源,而非某些模型的伪开源。

https://github.com/QwenLM/Qwen1.5

阿里出品的大模型,参数最小有 0.5B 的。看网上的评价,应该是中文这块做的最好的大模型了。

Phi-1.5

Phi-1 是微软出品的一个 350M 和 1.3B 的模型,使用由大模型合成的「教科书」级别数据,也就是说相比网页数据更优质一些的数据训练,具体可以参见他们的论文 Textbooks are all you need I/II。因为数据质量高,合成也困难,只用了 6B 的数据,在 8 个 A100 上训练了 4 天。

后来又出了一个 Phi-2,2.7B,号称性能达到了 13B 的模型。不过好像没有论文了,模型倒是也在 HF 上。https://huggingface.co/microsoft/phi-2

详细的解读可以参考这篇文章:https://zhuanlan.zhihu.com/p/690423105

这里还有网友做的中文版:https://github.com/charent/Phi2-mini-Chinese

OpenELM

Apple 出品的一组模型,从 0.27B 到 3B 不等,应该是冲着移动端的模型去的,还没仔细看。

下面再介绍一些网友的项目,可能更实际一些。

  • https://github.com/charent/ChatLM-mini-Chinese 从零开始训练的一个 0.2B 中文模型,用的 T5,可能比较早了。
  • https://github.com/jiahe7ay/MINI_LLM 从零开始训练的一个 1.4B 中文模型,基于 Qwen。可以参考作者的知乎文章:https://zhuanlan.zhihu.com/p/684946331
  • https://github.com/DLLXW/baby-llama2-chinese 基于 llama2 的中文模型,作者目标是 0.5B,但是貌似受硬件限制,只训练到了 0.2B 的模型。
  • https://github.com/OpenBMB/MiniCPM 2.7B 的参数,号称能跟 Mistral-7B 不相上下,感觉有点吹得过了……
  • https://github.com/Chinese-Tiny-LLM/Chinese-Tiny-LLM 一个 2B 的模型,貌似还没训练完。






请到「今天看啥」查看全文