C/CUDA 从头构建 GPT - 2 类语言模型:训练流程完整,性能与功能兼具!

发布时间:2026/6/29 13:24:33

C/CUDA 从头构建 GPT - 2 类语言模型:训练流程完整,性能与功能兼具! 导航菜单可进行切换导航有登录选项及外观设置。平台包含 AI 代码创作、开发者工作流、应用程序安全、探索等方面。AI 代码创作有 GitHub Copilot、GitHub Copilot 应用、MCP 注册表开发者工作流涵盖 Actions、Codespaces、Issues、代码审查应用程序安全包括 GitHub 高级安全、代码安全、密钥保护探索有为何选择 GitHub、文档、博客、更新日志、市场等。还可查看所有功能。解决方案按公司规模划分有企业、中小团队、初创公司、非营利组织按用例划分有应用现代化、DevSecOps、DevOps、CI/CD 等还可查看所有用例按行业划分有医疗保健、金融服务、制造业、政府部门等也可查看所有行业。能查看所有解决方案。资源按主题探索有 AI、软件开发、DevOps、安全等可查看所有主题按类型探索有客户案例、活动与网络研讨会、电子书与报告、商业洞察、GitHub 技能支持与服务包括文档、客户支持、社区论坛、信任中心、合作伙伴。可查看所有资源。开源社区有 GitHub 赞助项目有安全实验室、维护者社区、加速器、GitHub 明星项目、存档项目仓库有主题、热门趋势、集合。企业企业解决方案有企业平台可用附加组件有 GitHub 高级安全、面向企业的 Copilot、高级支持。还有定价信息。搜索或跳转可搜索代码、仓库、用户、问题、拉取请求等有搜索语法提示。提供反馈会阅读每一条反馈并认真对待可选择包含电子邮件地址以便联系。保存的搜索使用保存的搜索可更快筛选结果要查看所有可用限定符可参阅文档。JustVugg/nanoeuler 仓库有登录、注册选项及外观设置。存在一些登录、注销、切换账户的提醒。仓库公开有通知、分叉、加星等操作还有代码、问题、拉取请求、行动、项目、安全与质量、洞察等导航选项。主分支可进行分支和标签操作能转到文件、查看代码等。文件夹和文件展示了文件夹和文件的名称、最后提交消息、最后提交日期等信息。最新提交有 45 次提交记录。nanoeuler 模型介绍这是一个完全用 C/CUDA 从头构建的 GPT - 2 类语言模型不使用 PyTorch、自动求导和机器学习库。前向和反向传播手动编写并验证训练流程完整有手动编写的字节级 BPE 分词器、预训练和监督微调。小型展示模型可在 CPU 上运行完整的 CUDA 引擎可在单个 RTX 4070 上训练约 1.16 亿参数的模型。该模型是公开构建的研究/教育项目在单个消费级 GPU 上训练的约 1.16 亿参数模型只是类似 GPT - 2 小型模型的文本生成器能生成流畅英语但缺乏真实世界知识聊天模型仅证明预训练→监督微调流程能端到端运行并非实用助手。项目重点在于从头开始的工程实现和完整、易懂的训练流程。模型训练命令有 make check 验证反向传播make 构建训练二进制文件./nanoeuler train 训练小型展示模型./nanoeuler train big 训练较大模型./nanoeuler chat 进行交互式命令行聊天。为何叫 “Euler”残差块的计算方式可看作数值积分的一步前向欧拉方法推进常微分方程的公式与残差更新公式相关深度残差网络可看作离散化的常微分方程该项目以提出积分方法的莱昂哈德·欧拉命名。示例输出约 1.16 亿参数模型在部分预训练后的示例输出虽内容无实际意义但体现了模型学到的语法、长句子结构和百科式表达方式这是小型模型的预期表现更多训练和数据可提高流畅度世界知识需更大规模。架构是仅含解码器的 Transformer采用 RMSNorm、旋转位置嵌入、SwiGLU 前馈层、分组查询注意力、多令牌预测等构建模块所有地方无偏置有手动编写的字节级 BPE 分词器。每个块的计算与残差连接和前向欧拉方法相关。给出了不同位置的模型配置如 small 模型和 GPU 流程的维度、查询/键值头、层数、上下文、词汇表、参数等信息。验证反向传播手动编写的反向传播需与中心有限差分比较检查过程使用双精度运行会对每个参数张量进行检查。构建与性能make 命令使用特定参数构建矩阵乘法和注意力并行化和向量化make check 构建单独的双精度二进制文件用于梯度检查。无需外部依赖已在 Linux 上使用 gcc 13 测试。项目范围这是从头构建的文本生成器和训练流程非产品。单个 GPU 上训练的模型能生成流畅英语但缺乏真实知识微调后的聊天模型内容浅显。可用对话模型需更多参数、数据和计算资源项目目标是掌控各个环节。GPU 引擎CUDAcuda/nanoeuler_cuda.cu 是完全从头构建的 CUDA 移植版本内核与 CPU 参考验证有 GPU 梯度检查。内核包括矩阵乘法、RMSNorm、RoPE、分组查询注意力、SwiGLU、softmax/交叉熵和 AdamW 等FlashAttention 使训练步骤加快约 3 倍。给出了构建命令和不同模式的操作训练可保存检查点GPU 训练的模型可由 CPU 程序加载运行。聊天机器人预训练然后微调SFT聊天流程分两阶段先对约 1.16 亿参数的基础模型在书籍和网络混合语料库上预训练再通过监督微调转换为助手结果保存到 nanoeuler_chat.bin可进行交互式聊天。微调后模型回答形式正确但内容浅显缺乏世界知识该流程证明能端到端运行但还不是实用助手。数据预训练使用书籍和网络混合语料库书籍通过 data/get_gutenberg.sh 下载清理网络通过 data/get_web.sh 提取然后合并为预训练语料库。还可下载用于微调的 Alpaca 指令数据。语料库和模型检查点会被 git 忽略。路线图已完成手动编写的字节级 BPE 分词器、从头构建的 CUDA 引擎、预训练和监督微调。接下来要进行 DPO 偏好优化扩大模型和数据规模并发布训练好的检查点。文件介绍了不同文件的功能如 nanoeuler.c 是 CPU 模型相关文件cuda/nanoeuler_cuda.cu 是 GPU 引擎相关文件还有数据下载和清理的脚本文件以及 Makefile、LICENSE 等文件。许可证采用 MIT 许可证详见 LICENSE 文件。关于这是用 C/CUDA 从头构建的 GPT - 2 风格大语言模型包含手动编写的反向传播、BPE 分词器、FlashAttention、预训练和监督微调。还列出了相关主题和资源以及许可证信息。仓库状态加载时可能出现错误可重新加载页面。有活动、加星数、关注者、分叉数等信息还可举报仓库。贡献者可能加载错误可重新加载页面。语言仓库代码语言包括 Cuda、C、Shell、Makefile 等及各自占比。页脚有相关链接和导航如条款、隐私、安全、状态、社区、文档、联系我们等还可管理 Cookie 和不共享个人信息。此时可能无法执行某些操作。

相关新闻