
Rust 中的综合开源深度学习框架 Burn 最近在其最新版本中取得了重大进展,其中最突出的是添加了 The Burn Book 。 现在是开始使用 Rust 进行深度学习之旅的最佳时机,因为本书将指导您完成初始项目,提供广泛的解释和相关资源的链接。
无论您是深度学习的新手还是拥有 PyTorch 等框架的经验,无论是在最初学习该工具时还是在不久的将来部署模型时,过渡到 Burn 都会让您免去许多麻烦。
为什么要切换到 Rust?
忽视 Python 编程语言及其生态系统对深度学习发展的巨大帮助是不明智的。 它的高级抽象和低进入门槛帮助研究人员快速发展他们的想法,而忽略了通常会减慢速度的实施和性能细节。
如今,深度学习领域充满了极其复杂的模型,依赖于巨大的计算。 虽然 Python 对于原型设计很实用,但它处理此类工作负载的速度太慢。 迄今为止,主流解决方案一直依赖于低级编程语言(例如 C/C++)的绑定。
这个解决方案无疑已经证明了它的价值,因为当今最广泛的活跃模型 ChatGPT 正是按照这种方式进行编程的。 然而,这将深度学习生态系统分为两部分:研究人员和优化工程师,他们都在两个独立的世界中工作,界面很小。 虽然任何高级语言对于此类计算来说都太慢,但低级语言对细节过于敏感而无法用于此类复杂的任务。
输入 Rust 。
它的抽象方法使其具有足够的通用性来解决这种二分法。 事实上,得益于借用检查器,它可以防止程序员在没有明确说明变量是否可以更改或只是查看的情况下使用变量,Rust 能够为并发编程和内存安全保证提供高级抽象,而不会产生任何运行时 高架。
Rust 还附带了 Cargo 包管理器,这使得构建、测试和部署变得非常容易。 后者在 Python 环境中通常很费力。
关于 Rust 学习难度的一句话:人们普遍认为 Rust 很难学,但从长远来看,它的编译器可以让你避免遇到晦涩难懂的 bug。 确实,与其他语言相比,一开始可能需要更长的时间来编译代码,这通常是因为前面提到的借用检查器。 尽管这个机制和其他机制一开始可能感觉很复杂,但它们会导致程序员与编译器对话,以达成一个解决方案,一旦编译完成,程序员几乎可以蒙着眼睛相信。
借用检查器在深度学习中有用的一个例子是张量操作,例如确定是否应该就地完成操作。 Rust 抽象还可用于封装后端计算,使它们能够在任何机器上高效运行。 Rust 能够深入研究低级计算,同时保持高级抽象,因此具备成为深度学习首选语言所需的一切。
Burn 深度学习框架
这些是导致创建 Burn 的一些动机。 这个深度学习框架利用了 Rust 的优势,具有创新的灵活架构,可用于从训练到推理、从原型设计到部署。 它代表了一种新颖的方法,重点强调做出深思熟虑的设计决策,以支持卓越的灵活性、更高的性能和出色的开发人员体验。
Burn 非常容易使用,即使对于那些还不太熟悉 Rust 的人来说也是如此。 现在有了这本内容全面的书,应该很容易从 TensorFlow 和 PyTorch 等框架中存在的混乱的 Python / (C/C++) 二分法跳转到 Burn 的协调的 Rusty 愿景。
Burn Book 首先介绍基本工作流程,引导您从训练模型到部署模型进行推理。 这是一本简短的 5 页读物,充满了代码片段,应该足以在最典型的深度学习场景中开始使用 Burn。
至于后续部分,他们深入研究了深度学习库所期望的一切细节(模块、张量、学习算法和指标、与其他深度学习生态系统的兼容性......),特别是 Burn 的与众不同之处 来自其他框架。 以后端特性为例,它允许在不同的低级实现上具有灵活性,以便根据您的机器实现最佳计算。 或者后端扩展,它们是后端特征的装饰器,最引人注目的是自动微分后端,它自动在任何选定的后端上启用自动差异功能。
随着这本书的加入,简化了入门过程,Burn 现在无疑是 Rust 深度学习领域的主要切入点,Rust 有望成为下一代深度学习的语言。