AI 大语言模型 (LLM)
NanoEuler
NanoEuler 是一个完全用 C/CUDA 编写的开源 GPT-2 风格语言模型,包括手写反向传播、BPE 分词器、FlashAttention 和训练流水线。
NanoEuler
什么是 NanoEuler?
NanoEuler 是一个教育项目,完全用 C 和 CUDA 实现了仅解码器 Transformer(GPT-2 风格),不依赖任何机器学习库。它包含字节级 BPE 分词器、在书籍和网络数据上的预训练,以及用于聊天的监督微调。
NanoEuler 与相似工具比较
| 计价模式 | 免费 | 免费 | 免费 | 免费 |
| 免费额度 | ||||
| 主要功能 |
|
|
|
|
| 优点 |
|
|
|
|
| 缺点 |
|
|
|
|
| 适合对象 |
|
|
|
|
如何使用 NanoEuler?
- 1从 GitHub 克隆仓库。
- 2确保安装了 gcc 和 nvcc。
- 3运行 'make' 构建 CPU 训练二进制文件。
- 4运行 'make check' 验证反向传播正确性。
- 5训练小型模型:'./nanoeuler train'。
- 6训练 GPU 模型:'./nanoeuler_cuda t'。
- 7微调聊天模型:'./nanoeuler_cuda s'。
- 8与聊天模型交互:'./nanoeuler_cuda c'。
NanoEuler 主要功能
- 用 C/CUDA 手写前向和反向传播
- 字节级 BPE 分词器,采用 GPT-2 风格预分词
- 用于 GPU 训练的 FlashAttention 内核
- 在书籍和网络语料库上的预训练
- 用于聊天的监督微调(SFT)
- 全模型双精度梯度检查
- 检查点/恢复训练
- 支持 CPU 和 GPU(CUDA)执行
NanoEuler 使用场景
- LLM 内部原理的教育探索
- 从头学习 Transformer 训练
- 实验小规模语言模型
- 自定义模型架构的研究
NanoEuler 价格与免费额度
NanoEuler 目前采用 免费 模式。
此工具完全免费使用
NanoEuler 优缺点
优点
- 完全从零实现,无依赖
- 通过数值检查验证梯度准确性
- 同时支持 CPU 和 GPU 训练
- 包含预训练和微调流水线
- 文档完善且具有教育意义
缺点
- 仅约1.16亿参数,不适合生产环境
- 大型模型训练需要支持 CUDA 的 GPU
- 由于规模小,世界知识有限
- 未提供官方预训练检查点
NanoEuler 最适合哪些用途?
- 学习和研究 LLM 训练的开发者与研究人员
- 学习 Transformer 内部原理的学生
- 构建自定义小型模型的爱好者