MIT 科技评论 - 本周热榜 10月29日 23:05
Unsloth:AI训练提速降本的开源利器
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

Unsloth是由一对澳大利亚兄弟Daniel和Michael Han-Chen创建的开源项目,旨在解决AI模型微调耗时长、GPU成本高昂的问题。该项目通过底层优化,显著提升了模型训练速度并大幅减少了内存占用,同时保持了模型精度。Unsloth的核心创新在于重构深度学习训练流程,手工推导矩阵微分,重写计算内核,以及采用独创的动态量化技术。其开源模式赢得了开发者社区的广泛认可和支持,并已成功应用于多种主流开源模型,为AI技术的普惠化贡献力量。

🚀 **性能显著提升与成本降低**:Unsloth通过底层优化,在模型训练速度上实现了数倍的提升,例如在某项测试中,训练速度提升了8.8倍,同时将内存使用量减少了59%,使得在消费级GPU上训练大型模型成为可能,极大地降低了AI开发的门槛和成本。

💡 **核心技术创新**:项目通过重写深度学习训练流程,包括手工推导矩阵微分、使用Triton语言重写计算内核(如RoPE、RMSNorm、交叉熵损失函数),以及独创的“动态量化”技术,识别并保持敏感层的精度,从而在节省显存的同时保证模型性能。

🤝 **开源社区驱动与模型兼容性**:Unsloth秉持开源理念,通过GitHub和Discord社区与开发者紧密协作,快速响应用户需求,修复bug,并不断更新支持更多主流开源模型,如Llama、Mistral、Gemma等,已成为Hugging Face等平台的推荐优化方案。

🌐 **推动AI普惠化与本地化**:Unsloth的出现使得个人开发者和小团队能够利用有限的资源完成复杂的模型微调任务,打破了AI技术被少数大公司垄断的局面。尤其在模型本地化方面,帮助非英语开发者轻松地将英语模型适配到本地语言,让AI工具惠及全球更多用户。

2023 年的秋天,当全世界都在为 ChatGPT 和大语言模型疯狂的时候,远在澳大利亚悉尼的一对兄弟却在为一个看似简单的问题发愁:为什么微调一个开源模型要花这么长时间,还要用那么昂贵的 GPU?

Daniel Han(全名是 Daniel Han-Chen)盯着屏幕上缓慢跳动的训练进度条,心里盘算着:一台免费的 Google Colab T4 GPU 上,训练一个 13B 参数的模型根本跑不起来,内存直接爆掉。而那些商用的解决方案,动辄需要价值数万美元的高端显卡。

Daniel 毕业于新南威尔士大学,此前曾在 NVIDIA 工作过一年半,专门负责算法优化。他认为这个问题并非无解。和弟弟 Michael Han-Chen 商量后,两人决定:既然大公司不愿意解决这个问题,那就自己动手。

图丨小时候的 Daniel Han 和 Michael Han(来源:GitHub)

这个决定催生了一个改变 AI 训练规则的开源项目——Unsloth。

从 NVIDIA 出走的优化狂人

Daniel Han 的职业生涯可以用一个词概括:优化。

在 NVIDIA 期间,他让 TSNE(一种数据可视化算法)的运行速度提升了 2000 倍,优化了随机奇异值分解(Randomized SVD)等多个机器学习算法。他还维护着另一个开源项目 Hyperlearn,这个机器学习优化包被 NASA 和微软的工程师使用。

图丨Daniel Han(右)和 Michael Han(左)(来源:LinkedIn)

那段经历让他看清了一个事实:当前 AI 软件栈的性能瓶颈,很大程度上是软件问题而非硬件问题。PyTorch、TensorFlow 这些框架为了通用性做了大量妥协——为了支持各种硬件和模型架构,实现必然不是最优的。如果针对特定场景深度定制,性能提升空间巨大。

但真正让他决心投身开源硬件优化的,是一个更宏大的愿景。“OpenAI 和 Anthropic 这些大公司想通过更大的模型、更多的数据、更强的算力来实现 AGI,”Daniel 说,“而我们相信,通过更高效的模型、更快的训练方法、更少的资源消耗,也能让 AGI 惠及每一个人。”

2023 年 10 月,他们参加了欧洲的 LLM 效率挑战赛(LLM Efficiency Challenge)。比赛规则是在 24 小时内用一块 GPU 训练一个语言模型,看谁能获得最高准确率。但兄弟俩换了个思路——与其拼准确率,不如让训练本身变得更快。

“我用的是 Colab 和 Kaggle 的免费 GPU,T4 实在太慢了,有时候连 13B 的模型都装不下,”Daniel 回忆道。通过一系列底层优化,他们成功让训练速度提升了 2 倍,内存使用减少了 50%,而且完全没有精度损失。这个副产品式的成果,最终在 2023 年 12 月以开源项目的形式被发布,取名 Unsloth——意为“unslothing”,让 AI 训练不再缓慢如树懒。

(来源:Unsloth)

没有营销预算,没有豪华团队。他们只是把代码放在 GitHub 上,在 Reddit 的 AI 开发者社区发了一条帖子。第一周就有上千名开发者试用。最常见的质疑是:“速度快两倍还不损失精度?怎么可能?”

Daniel 的回应非常简单:把所有技术细节公开。他在博客上详细解释手动推导反向传播的数学过程,展示 Triton 内核的源代码,甚至把性能测试的完整日志都放出来。怀疑者开始认真阅读代码,复现测试,发现结果确实如此。

为开源 LLMs 修 Bug

真正让 Unsloth 声名大噪的,是他们 2024 年 3 月对 Google Gemma 模型的“手术”。

Gemma 发布后,社区很快发现问题:训练时表现异常,损失值不收敛,微调效果差得出奇。论坛上出现各种猜测,但没人能给出确定答案。

Daniel 在集成 Gemma 到 Unsloth 时,发现的不是一个 bug,而是一串 bug。分词器有问题,位置编码计算不对,连基础的数值精度处理都有纰漏。他花三天时间,把 8 个 bug 的根源、触发条件和修复方案全部整理成文档,配有数学推导、性能对比和测试结果。

然后全部公开发布。

博客发布几小时后,社区上就有许多转载。Andrej Karpathy 转发评论:“这就是深入理解深度学习栈每一层的价值。”Google 团队随后确认了这些 bug,采纳修复方案,并在更新日志里致谢。

图丨相关推文(来源:X)

类似的事情在接下来一年反复上演。Meta 的 Llama 3、微软的 Phi-4、阿里 Qwen 2.5,每次重磅模型发布,Unsloth 都会迅速跟进,找出问题,公开方案。2024 年 10 月,他们甚至修复了一个影响所有训练框架的通用 bug——梯度累积的实现错误,被合并到 Hugging Face Transformers 主分支,惠及了全球数百万 AI 开发者。

“当我们在移植新模型时,如果发现自己的实现比官方版本效果更好,我们就知道肯定哪里出问题了,”Daniel 解释了他们的发现过程。这种对技术细节的执着和对开源社区的责任感,让 Unsloth 赢得了业界的尊重。Hugging Face 很快与他们建立了合作关系,在官方文档中推荐使用 Unsloth 来解决速度和内存问题。AWS、Intel 等大公司也主动接触,希望将 Unsloth 移植到自己的硬件平台上。

重写自动求导引擎

Unsloth 的核心创新在于对深度学习训练流程的彻底重构。大多数工程师会满足于使用 PyTorch 提供的自动求导功能,但 Daniel 认为这还不够。

“PyTorch 的 autograd 对大多数任务来说已经足够高效,但如果你想要极致性能,就必须自己推导矩阵微分,”Daniel 选择为所有计算密集型操作手工推导矩阵微分步骤。

举例来说,在注意力机制与低秩适应(LoRA, Low-Rank Adaptation)结合时,标准方法需要计算 6 个矩阵的导数。如果按照常规方式,计算 output = X × W + X × (A × B) 需要三次矩阵乘法和两个中间变量存储。但 Daniel 通过代数变换优化为 output = X × (W + A × B)——先计算小矩阵 W + A × B,最后只与大矩阵 X 相乘一次。

这种看似简单的代数技巧,单独贡献了约 4-6% 的速度提升。更关键的是,它显著减少了 GPU 显存占用。因为 LoRA 权重矩阵通常只有 8 到 128 的维度,而 Llama 系列模型的权重维度是 4096 或更大,正确放置括号能将浮点运算次数减少数个数量级。

兄弟俩还用 OpenAI 的 Triton 语言重写了所有关键计算内核,包括 RoPE(Rotary Position Embedding)位置编码、RMS 层归一化(Root Mean Square Layer Normalization)、交叉熵损失函数等。这些手写的内核不仅更快,代码也更清晰易读。

此外,还有他们独创的“动态量化”技术。标准的 4-bit 量化会压缩所有层,但 Unsloth 能识别出对模型精度影响大的敏感层,在这些层保持高精度,从而在大幅节省显存的同时保持模型性能。

但在所有优化中,内存减少才是 Unsloth 最大的优势。Daniel 反复强调这一点:“我们百分之七十到八十的内存减少才是最重要的。不是速度,而是内存。”随着模型规模不断增大,内存瓶颈比计算速度更容易成为制约因素。一个 16GB 显存的 T4 GPU,在标准训练流程下连 130 亿参数的模型都无法完整加载,但使用 Unsloth 后,48GB 显存的 GPU 就能训练 700 亿参数的 Llama 3 模型。

图丨在 SlimOrca 数据集的测试结果(来源:Unsloth)

测试结果显示,在单块 Tesla T4 GPU 上,使用 Hugging Face 标准实现训练 Alpaca 数据集需要 23 小时 15 分钟,而 Unsloth 的 Max 版本只需要 2 小时 34 分钟,相当于 8.8 倍的速度提升。在 SlimOrca 数据集上,391 小时被压缩到 51 小时。内存使用方面,峰值从 16.7GB 降到 6.9GB,减少了 59%。

从边缘走向中心

这一波 AI 浪潮中,模型的参数量不段扩大,从最初几十亿到如今的上万亿的参数量,规模膨胀了上百倍,给个人开发者和小团队带来了巨大压力——要么付费使用闭源 API,要么购买昂贵的硬件。而 Unsloth 让第三条路成为可能。一台消费级显卡,比如 RTX 4090,配合 Unsloth 就能完成以前需要数据中心级别硬件才能做的微调任务。

截至今天,Unsloth 在 GitHub 上的星标已超过 4 万(目前约 47,500),每月模型下载量超过 200 万次。来自中国、智利、尼加拉瓜、危地马拉、印度、意大利、土耳其等国的开发者,已经基于 Unsloth 框架微调出超过 110 个模型应用。

这种普及带来了意想不到的效果。除了能让各行各业都能更轻松地训练出属于自己的专有模型,Daniel 还提到了一个最让他骄傲的用例:“语言翻译。大多数大语言模型只在特定语言集上预训练,很多只支持英语。但我们看到很多来自母语非英语国家的开发者,用 Unsloth 把英语模型转换成他们的本地语言。”

从日语到印尼语,从韩语到各种印度地方语言,Unsloth 让模型本地化变得触手可及。在他们的 GitHub 仓库中,有一个专门的韩语翻译示例笔记,详细展示了如何将英语模型转换为韩语模型。这个看似简单的功能,却让全球数十亿非英语使用者第一次真正拥有了自己语言的 AI 工具。

开源的力量

回顾 Unsloth 的发展历程,开源始终是核心。为了维持项目的可持续性,他们提供了 Pro 和 Max 两个付费版本,前者支持多 GPU 训练和更多优化,后者还包括从零开始训练大模型的内核,并能将代码移植到 AMD 和英特尔 GPU 上。但核心的开源版本始终保持免费。“开源最大的价值是信任,”Daniel 说,“AI 领域最大的问题就是信任。如果你做开源,每个人都能检查你的代码,贡献改进,发现并修复 bug。”

兄弟俩的 Discord 社区异常活跃,GitHub Issues 中充满了用户的改进建议和 bug 报告。“我们的 Discord 服务器上,每个人都很友好,”Michael 说,“大家喜欢互相帮助,讨论自己热爱的东西。开源社区就是这样一个让志同道合的人聚在一起的地方。”

这种开放协作的氛围也影响了他们的产品规划。“当所有人都在要求某个功能时,我们就会去实现它,”Daniel 表示,“如果是闭源产品,很难决定先做哪个功能。开源让用户需求变得透明。”

目前,Unsloth 已经支持了 Llama 系列、Mistral、Gemma 系列、Phi 系列、Qwen 系列、DeepSeek 系列等主流开源模型。“我们的首要目标始终是开源,”Michael 强调,“让所有模型都能用上我们的优化技术,而不只是少数几个。”

“当大公司用 100,000 块 H100 训练模型时,我们要证明,用更少的资源、更聪明的方法,也能让 AI 惠及每一个人。”Daniel 说。

参考资料:

1.https://unsloth.ai/introducing

2.https://unsloth.ai/blog/reintroducing

3.https://www.youtube.com/watch?v=6t2zv4QXd6c

4.https://www.youtube.com/watch?v=lyVxD0bJDOk

5.https://www.youtube.com/watch?v=z9f4bEgFZCg

运营/排版:何晨龙

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Unsloth AI训练 模型优化 开源 深度学习 GPU 降本增效 AI普惠化 LLM Fine-tuning Open Source AI Training Model Optimization Deep Learning Cost Reduction AI Democratization
相关文章