后续更新:我的原生 Rust + Vulkan Transformer 训练后端——14 天后,现已通过 14 个架构的对等性验证并实现完整 PEFT

Reddit r/LocalLLaMA 工具

摘要

关于原生 Rust + Vulkan Transformer 训练后端的后续更新:目前有 14 个架构通过了基于固定版本 Hugging Face Transformers 参考实现的严格对等性验证全训练门槛,同时完整的 PEFT 工作流(LoRA、saved modules、适配器切换、精确恢复)已在 32 个架构层面得到验证。

这是对我大约两周前那篇帖子的后续更新。从那时到现在发生了不少变化,所以我来更新一下这个后端目前的进展。绿色架构(已验证架构)的现状 上次发帖时,有 7 个架构通过了完整的训练验证。现在所有架构都遵循同一套严格的标准:以一个固定版本的本地 Hugging Face Transformers 源码树作为参考实现(oracle),对比前向 logits、梯度以及两次完整的 AdamW 步进结果,并在导出后重新检查每一个命名参数。绝对误差上限为 2e-7。不会放宽容差,也不会事后四舍五入数字来让 README 好看。 目前有 14 个架构通过了这一门槛,其中最让我自豪的是: | 架构 | 范围 | | --- | --- | | Falcon H1 / H1R | 并行 GQA/RoPE 注意力 + 每层 Mamba2;完整训练、完整微调、LoRA、saved modules | | DeepSeek V4 | 因果语言模型 | | Phi-4 Multimodal | 文本主干 | | Phi-3 | 因果语言模型 | | Kimi K2.5 | 文本主干 | | Kimi K3 / KimiLinear | 混合 KDA + MLA | | GPT-OSS | 因果语言模型,含 router bias | | SmolLM3 | 混合 RoPE/NoPE + YaRN | | Qwen2.5 / Qwen3.5 / Qwen4-Exp | 稠密、DeltaNet、QSA、PLE、MoE | | Mistral 4, MiniMax M3, Gemma 3/4, MiniMax M2 | 因果语言模型 | 所有架构中观测到的最差两步 AdamW 参数误差:1.19e-7。最佳:2.6e-8。 关于硬件背景,我此前报告的所有本地 Vulkan 验证都是在我的 ASUS ROG Ally Z1 Extreme 上运行的,使用其 AMD RDNA 3 集成 GPU。因此这里报告的 RDNA 3 结果来自那一台特定机器,而不是跨多台不同 AMD 系统的测试。 更大的新闻:PEFT 现在真正可用了 在上一篇帖子中,"LoRA/PEFT 式微调"基本只是功能列表里的一行字。现在它是一个真正的工作流了,我已经验证了完整的生命周期: - LoRA 微调,适配器导出与 HF 兼容(adapter_config.json / adapter_model.safetensors),因此适配器可以与 PEFT 生态系统进行往返互操作 - modules_to_save —— 针对 Linear、RMSNorm/LayerNorm、lm_head 和输入 embedding 的完整可训练替换,包括命名适配器切换和适配器库隔离。明确测试了适配器 A 泄漏到适配器 B 的情况。 - 精确恢复 —— 适配器权重 + AdamW 动量 + 步数 + dropout RNG 状态按位完全恢复,与不中断的运行一致 - 合并/解合并、禁用适配器后恢复基座、以及多适配器加载 - 一个参数预算标志,可在给定的基座模型百分比预算内自动选择最大的 LoRA rank - 如果你在尚未通过对应门槛的架构上尝试使用 saved modules,CLI 会以失败关闭(fail closed) 32 个架构层面、横跨 20 个架构族,全部通过了三个 PEFT 阶段(LoRA、saved modules、适配器切换),使用同一 2e-7 门槛,冻结基座的漂移恰好为 0.0。 验证框架现在还会对固定的 Transformers 源码与我的着色器和二进制文件一起进行指纹校验,因此一次资格验证运行不可能悄悄地以不同的参考数学为测试对象。 关于过去两周的一点说明 过去两周里,我没能像往常一样有那么多工作日。期间我感染了新冠,等它开始好转后,又继发了严重的耳部感染,最终导致鼓膜穿孔。有一段时间我发烧到大约 104°F(约 40°C),最后去了医院,因此为此损失了几天时间,现在还在服用抗生素。不过我好转了,仍然设法完成了我想做的大部分内容。 还有一些我想清理和扩展的东西,但我觉得这是一个合适的时机,把当前的工作呈现在大家面前,而不是把更新再拖下去。 注意事项与之前相同 这是针对参考实现的确定性 FP32 小模型正确性验证,理论上应能确保使用该后端训练和微调更大模型时的完全数学对等性,但目前仍局限于 FP32 训练运行。我计划最终研究 MXFP4 权重绑定(weight tying),以在微调时减少内存占用(在此配置下,可训练参数仍将以 FP32 通过 PEFT 进行训练) "支持文本图(text graph)" ≠ "整个多模态包都能原生工作"。不支持的功能应当以失败关闭的方式报错,而不是静默回退到某种近似实现。 仓库 https://github.com/necat101/Hierarchos-Native 架构清单:hierarchos-vulkan/README_ARCHITECTURES.md 兼容性/对等性记录:hierarchos-vulkan/COMPATIBILITY.md PEFT 资格验证证据:PROGRESS_PEFT_AUDIT.md CLI PEFT 指南:hierarchos-native-cli/README.md 我个人验证使用的硬件是一台 ASUS ROG Ally Z1 Extreme,配备 AMD RDNA 3 GPU。我非常欢迎批评意见、兼容性报告,尤其是有人在其他硬件上尝试的结果——NVIDIA、Intel 或其他 AMD GPU 都可以。我也特别希望有人专门对 PEFT 恢复/合并路径做压力测试。那是项目中最新的代码,所以现在可能是最值得尝试找出问题的领域。
查看原文

相似文章