我构建了一个支持143种现代Transformer架构的原生Vulkan训练后端——无需CUDA或PyTorch
摘要
一个原生Rust和Vulkan训练后端已为143种Transformer架构开发,支持无CUDA的模型训练和推理,并兼容多种硬件供应商。
我一直在开发一个项目,最初是为我的Hierarchos架构提供训练后端,但它已发展成为一个更广泛的项目:https://github.com/necat101/Hierarchos-Native Hierarchos Native现在包括一个原生Rust + Vulkan后端,用于训练和推理143种标准Transformer架构,并通过额外的Hugging Face model_type别名,使当前公布的注册表达到224种模型类型拼写。我最感兴趣的部分实际上不再是Hierarchos本身,而是其底层的Transformer后端。目标是探索现代Transformer生态系统中有多少可以直接在Vulkan计算上实现,而不是默认假定CUDA + PyTorch作为执行栈。后端目前包括原生实现,例如:前向和反向传播、全模型训练、AdamW、LoRA/PEFT风格微调、嵌入和LM头、注意力和KV缓存路径、密集和MoE架构、RMSNorm / LayerNorm、RoPE和位置操作、常见激活函数、交叉熵和梯度计算、混合精度基础设施、检查点/恢复、SafeTensors模型交换、Hugging Face模型、分词器和数据集从Rust原生获取、生成/推理路径。支持的架构注册表覆盖了包括Llama、Qwen、Gemma、Mistral/Mixtral、DeepSeek、Phi、OLMo、Granite、Cohere、BERT系列模型、T5/BART系列模型等在内的多个系列。还有针对较新模型设计的架构特定Vulkan内核,而不是试图通过一个通用近似来强制处理所有内容。有一件事我需要谨慎:我并不声称这目前是CUDA/PyTorch的替代品,或者支持某种模型类型就意味着该模型的每个可能配置和多模态组件都已得到验证。架构注册表描述了原生文本图实现。多模态包可能包含视觉/音频等塔结构,这些并非原生文本后端的一部分,实际兼容性仍需要跨模型和硬件的更广泛测试。我认为有趣的是这所展示的方向。Vulkan在NVIDIA、AMD、Intel以及许多集成/移动级硬件上可用。如果像这样的原生训练栈能够足够成熟,那么可能存在空间来构建大幅减少对单一供应商计算生态系统依赖的ML训练基础设施。我一直在AMD RDNA 3硬件上开发和测试这个项目,包括ROG Ally Z1 Extreme,这也有助于揭示当ML软件仅围绕高端CUDA系统开发时容易被忽视的假设。该仓库包括Rust源代码、Vulkan计算着色器/SPIR-V、CLI、Hierarchos运行时、架构文档、验证工具和独立打包支持。支持的架构列表在此:hierarchos-vulkan/README_ARCHITECTURES.md 主README现在包含构建后端、检查Vulkan设备、训练Hugging Face模型、LoRA微调、推理和训练Hierarchos本身的示例。我特别感兴趣的是来自从事以下领域的人的反馈:Vulkan计算、ML编译器/运行时设计、GPU内核、PyTorch替代品、AMD/Intel ML、可移植训练系统或Transformer架构实现。在做出强有力的性能声明之前,还有很多工作需要进行基准测试、硬件验证、优化和独立测试。但让如此多的现代架构图通过原生Vulkan导向的训练系统运行,让我认为这里可能有一些超越原始Hierarchos项目的真正有用的东西。仓库:https://github.com/necat101/Hierarchos-Native 我非常感兴趣的是技术批评、架构兼容性报告、其他GPU上的基准测试,或者想要压力测试后端的贡献者。
相似文章
在AMD MI50上使用Vulkan训练神经网络:概念验证——或:我为何不再听从,直接行动
作者展示了如何强制AMD MI50 GPU与ROCm 6.4.3配合工作,并构建了一个基于Vulkan的神经网络训练栈,挑战了关于旧硬件支持的共识。
我设计了一种方法,用于(自主地)在单个消费级GPU上训练Transformer语言模型。
一种在单个消费级GPU上自主训练Transformer语言模型的方法,分为六个阶段,设有验证门和AGENTS.md规范,适用于OpenClaw等编排框架。
在生产级边缘设备上进行供应商无关的机器学习推理 [R]
描述了使用 ncnn 的 Vulkan 后端在生产级边缘设备上进行供应商无关的机器学习推理,在人脸检测和嵌入模型上相比 CPU ONNX 实现了 10 倍加速。
原生速度 vLLM transformers 建模后端
Hugging Face 发布了 transformers vLLM 建模后端,相比自定义 vLLM 实现能达到原生甚至更快的速度,使模型作者无需移植代码即可自动利用超快推理。
kvcache-ai/ktransformers
KTransformers 是一个灵活的研究框架,专注于前沿的大语言模型推理与微调,利用CPU-GPU异构计算,并支持多种最新模型。