用 Rust 重写大模型:RustGPT 亮相,纯 Rust 实现的 Transformer 语言模型
RustGPT 是一个完全用 Rust 编写的 Transformer 架构大型语言模型(LLM),不依赖任何外部机器学习框架,仅使用 ndarray 库进行矩阵运算,从零开始实现。该项目旨在展示如何在纯 Rust 环境中构建完整的语言模型,涵盖训练、推理与可扩展性设计。 项目核心功能包括:基于事实文本的预训练、面向对话的指令微调、交互式聊天模式、完整的反向传播与梯度裁剪机制,以及模块化清晰的架构设计。主要代码位于 src/main.rs(训练流程与交互模式)和 src/llm.rs(模型核心逻辑)。 模型采用标准 Transformer 架构:输入文本 → 分词 → 嵌入表示 → 多层 Transformer 块(含多头自注意力与前馈网络)→ 输出投影 → 词汇预测。项目包含完整的组件实现,如自注意力机制、前馈网络、层归一化、Adam 优化器、词汇表管理与嵌入层等,所有模块均配有单元测试。 训练分为两个阶段:首先在事实性语句上进行预训练,学习基础世界知识;随后在对话数据上进行指令微调,掌握问答、解释与上下文理解能力。例如,输入“山脉如何形成?”模型能正确回答“由构造力或火山活动在地质时间尺度上形成”。 技术参数方面,模型嵌入维度为128,隐藏层维度256,最大序列长度80,共3个Transformer块。使用Adam优化器,预训练学习率0.0005(100轮),微调阶段0.0001(100轮),损失函数为交叉熵,梯度裁剪L2范数上限为5.0。 项目支持交互式测试,训练完成后可直接输入问题进行对话。生成采用贪心解码,支持基本的文本生成逻辑。所有功能均通过全面测试验证,且代码风格遵循 Rust 最佳实践。 目前项目仍处于实验阶段,尚无模型持久化功能,训练数据量有限,未支持高级采样策略(如Top-k、Top-p、温度控制)或分布式训练。未来可拓展方向包括:模型保存与加载、性能优化(SIMD、并行计算)、更复杂的注意力机制(如RoPE)、训练可视化与评估指标(如困惑度)。 该项目非常适合希望深入理解 LLM 内部原理的学习者,无需 PyTorch 或 TensorFlow,仅用 Rust 与线性代数即可构建一个功能完整的语言模型。欢迎贡献代码,从基础功能到高级优化均有适配不同水平开发者的任务。
