llm.c是一个使用简单、纯粹的C/CUDA进行大语言模型训练的开源项目,无需庞大的245MB PyTorch或107MB cPython依赖。例如,GPT-2(CPU,fp32)的训练仅需要单个文件中约1000行的简洁代码。该代码能够立即编译并运行,且与PyTorch的参考实现完全吻合。之所以选择GPT-2作为首个工作示例,是因为它作为LLM领域的先驱,标志着现代技术栈的首次整合。
目前,我的工作重点包括:
- 直接CUDA实现,这将显著提升训练速度,并有望接近PyTorch的性能。
- 使用SIMD指令(如x86上的AVX2和ARM上的NEON,如Apple Silicon)来加速CPU版本。
- 探索更多现代架构,如Llama2、Gemma等。
开发者希望这个仓库专注于维护C和CUDA代码。当然,也非常欢迎将本仓库移植到其他编程语言的工作,但这些工作应在单独的仓库中进行。我非常乐意在“值得注意的分支”部分中链接到这些仓库,正如我在llama2.c的“值得注意的分支”中所做的那样。
0条评论