这是一个idea来自于karpathy/llm.c的个人项目, 有这个项目的起因是自己从事模型训练方面的工作, 一直以来的工作方向都偏向于大型离散模型, 对数据并行方面较熟悉, 而对模型并行和现在大模型训练最新的优化技术只是通过看别人写的博客进行了解, 然而看完就忘, 所谓一知半解大概就是自己目前所处的阶段吧.
本来想着自己也通过fork项目可以向llm.c的项目提交优化的方式提交代码, 后来发现自己想做的东西没其他人做得快, 往往写了一半后其他人已经合入了, 所以还是自己新起了个代码库. 一方面可以将一些自己的经验写成文档, 另一方面可以已更加易读的方式来完成代码编写.
古人云: 纸上得来终觉浅,绝知此事要躬行. 希望通过手写GPT的项目, 完成以下TODO. 同时也作为记录自己学习LLM训练和总结过往工作经验的一个博客, 加油!
- FlashAttention(TODO)
- ZeRO(from DeepSpeed TODO)
- Template MetaProgramming (TODO)
- CUDA kernel optimize(DOING)