vixhal-baraiya/microgpt-c
The most atomic way to train and inference a GPT in pure, dependency-free C
它解决了什么问题
它提供了一个用纯 C 编写的、极简且无依赖的 GPT 风格 Transformer 模型实现。这使得无需依赖重型机器学习框架或外部库(除了标准 C 库 libc)即可进行训练和推理。
它如何工作
该项目实现了一个基于字符级别的 Transformer,包含前向传播、反向传播、Adam 优化器和采样功能。它使用两种不同的前向传播路径:一种用于训练(gpt_forward),会存储激活值以供反向传播使用;另一种是专为单个 token 推理优化的路径(gpt_forward_infer)。为了最大化性能,它利用了硬件特定的优化技术,例如 ARM64 的 NEON 和 x86-64 的 AVX2。
适合谁
希望从最基础层面理解 GPT 模型内部工作原理的开发者和研究人员,或需要一个轻量级、高效 C 实现来完成简单文本生成任务的人。
特色亮点
- 无依赖:仅使用 libc 的纯 C 编写。
- 高性能:针对 ARM64(NEON)和 AVX2(x86-64)进行了优化。
- 高效:一个小型模型(4192 个参数),在字符级别任务(如姓名生成)上表现出良好的泛化能力。
- 单文件实现:核心逻辑包含在一个 C 文件中。
相关
- 项目
- 项目
- 项目
- Dispatch
- 项目