以及为什么 WasmEdge 是 AGI 采用 Rust 的要害途径!

为什么不选 Python?

今日的 LLM 运用程序,包括推理运用程序和署理(Agent),大多用 Python 编写。但这行将发生变化。Python 关于新一波开发者来说简直太慢、太臃肿且矛盾颇多不够简便。实际上, Chris Lattner, LLVM、Clang和 Swift 的创造者展示出 Python 或许比编译型言语慢35000倍——这是他创造 Mojo 言语的原因,想要代替 Python 。

为什么埃隆马斯克说 Rust 是 AGI 的语言?

(根据 Chris Lattner 的说法,编译型言语能够比 Python 快35000倍。)

这迫使开发者将越来越多的运用逻辑转化为原生编译代码 C 、C++ 和 Rust 。例如,十分热门的项目 llama.cpp、whisper.cpp和 llama2.c 都是 C 和 C++ 写的,没有 Python 依靠。

为什么埃隆马斯克说 Rust 是 AGI 的语言?

(OpenAI 联合创始人兼总裁 Greg Brockman 也认为 Python 太慢了。https://twitter.com/gdb/status/1676726449934331904)

这反过来降低了 Python 开发者的体会。事实上,管理云上部署的 Python 装置已成为一个严重应战。

为什么埃隆马斯克说 Rust 是 AGI 的语言?
(Wikimedia 的机器学习负责人 Chris Albon 甚至说自己很难弄清“现代”Python。 https://twitter.com/santiviquez/status/1676677829751177219)

换句话说,Python 不仅十分慢,而且用来开发 LLM 运用程序的时候也十分难用。

Rust!

Python 的应战为高功能编译言语创造了机会。随着 Rust 在开发者社区对 C 和 C++ 攻城略地,Elon Musk 指出 Rust 或许是 AGI 年代的言语。

为什么埃隆马斯克说 Rust 是 AGI 的语言?

(好好消化一下这个事实吧!(双关:让水槽进来) https://twitter.com/elonmusk/status/1649603943033450496)

Rust 连续7年被 StackOverflow 评为最受开发者欢迎的编程言语,其市场份额持续稳步增长。

Rust + Wasm 一举两得

但是,将 Rust 直接编译成原生机器代码也有其他问题。

  • 安全性。原生二进制文件或许会使整个体系崩溃。
  • 可移植性。原生二进制文件特定于底层操作体系和硬件。
  • 功能。 由于安全性和可移植性要求,通常需求在 Linux 容器中运转原生二进制文件。 此类容器为程序添加了巨大的发动和运转时开销,然后明显降低了速度。

Wasm 作为 Rust 运用的抢先安全运转时环境出现,想要处理这些问题。 有了云原生优化的 Wasm 运转时 WasmEdge,开发者现在能够在 LLM 运用程序栈的每一层运用高功能 Rust,作为 Python 的高功能代替计划。

为什么埃隆马斯克说 Rust 是 AGI 的语言?
(运用 Rust + Wasm 取代 Python 以提高功能,减少占用空间并改进安全性。)

  • 署理层:网络密集型使命,用于接纳网络事件、衔接数据库和调用其他 Web 服务。Rust 和 WasmEdge 提供异步和非堵塞 I/O,以完成高密度和高功能的署理运用。 示例:flows.network。
  • 推理层:CPU 密集型使命,用于将数据(如单词和语句)预处理为数字,并将数字后处理为语句或结构化的 JSON 数据。这些函数能够用 Rust 编写以完成最佳功能,并在 WasmEdge 中运转以完成安全性和可移植性。 示例:mediapipe-rs。
  • 张量层:从 Wasm 将 GPU 密集型使命通过 WasmEdge 的 WASI-NN 插件传递给原生张量库(如llama.cpp、PyTorch 和 Tensorflow)。

结论

Rust 和 Wasm 能够成为 Python 的高功能、开发者友爱的代替选择。

  • 二者与底层 GPU 张量库(也是用 C/C++/Rust 编写的)有更好地集成
  • 二者在完成运用程序特定的预处理和后处理数据功能方面更高效,这也是推理工作量的绝大部分。
  • 二者在完成LLM 署理所需求的网络密集型和长期运转的使命方面更高效
  • 与 Python 镜像相比,它们的容器镜像大小要小得多(几 MB vs 数百 MB)。
  • 由于软件供应链有限和攻击面露出较小,二者比 Python 容器更安全
  • 与 Python 程序相比,二者更容易装置和管理依靠项。

参考资料

“顶端仍有满足的空间:摩尔定律之后,什么将推进计算机功能?” MIT的Leiserson和Thompson等人,《科学》,2020年,第368卷,第6495期。 它示范了Python或许比优化的C程序慢62000多倍。 作者预测,从 Python 向编译言语迁移软件将引发新的计算机革命。

“用于 Serverless 函数即服务的轻量级设计” Long, Tai, Hsieh和Yuan,《IEEE软件》,2021年,第38卷,第1期,第75-80页。 它证明了 AOT 优化的 Wasm 运用程序在发动和运转时都能够大大超越 Linux 容器运用程序。

WasmEdge WASI-NN 插件允许 WasmEdge 中的 Rust 程序运转 Pytorch 和 Tensorflow 推理运用程序。

mediapipe-rs 库是一个 Rust 库,供开发者运用 Google 的 mediapipe 系列 AI 模型创建运用程序。它编译为 Wasm 并在 WasmEdge 中运转。

“在小小的 WasmEdge中运转小小的 llama2.c 模型” 作者 Yuan, Medium, 2023。它展示了如安在 WasmEdge 中运转 llama2 模型的一个完好推理运用程序。

flow.network 是一个基于 WasmEdge 构建的 serverless LLM agents (署理)平台。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。