Andrej Karpathy提出了一个名为llm.c的项目,该项目旨在用纯C语言训练LLM,而不依赖于庞大的PyTorch和cPython库
这种方法的主要优势在于它显著减少了依赖库的体积——不再需要245MB的PyTorch和107MB的cPython,这样可以使得模型训练过程更为轻量化和高效。
Karpathy选择从GPT-2模型开始实施这个项目,因为GPT-2是LLM中的元老级模型,是LLM堆栈第一次以现代形式组合在一起,并且具有模型权重可用。通过在CPU/fp32上实现GPT-2的训练,仅使用约1000行干净整洁的代码,这个项目能够立即编译和运行,并且与PyTorch的参考实现完全匹配。
从某种意义上说,Karpathy确实在尝试重新设计LLM的架构。他通过llm.c项目探索一种更简单、更高效的训练LLM的方法。与现有LLM架构相比,这种新架构的主要亮点包括:
1. 代码简洁性:仅使用约1000行代码就能完成GPT-2模型的训练,相比之下显著降低了复杂度。
2. 独立性:不依赖庞大的外部库如PyTorch或cPython,使得部署和运行更加轻便快捷。
3. 高效性:直接使用C/CUDA进行编程有望提高计算效率和训练速度。