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

以及为什么 WasmEdge 是 AGI 采用 Rust的关键路径!

为什么不选 Python?

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

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

这迫使开发者将越来越多的应用逻辑转化为原生编译代码 C 、C++ 和 Rust 。例如,非常热门的项目 llama.cppwhisper.cppllama2.c 都是 C 和 C++ 写的,没有 Python 依赖。

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

这反过来降低了 Python 开发者的体验。事实上,管理云上部署的 Python 安装已成为一个重大挑战。

(Wikimedia 的机器学习负责人 Chris Albon 甚至说自己很难弄清"现代"Python。 https://twitter.com/santiviquez/status/1676677829751177219

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

Rust!

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

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

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

Rust + Wasm 两全其美

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

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

Wasm 作为 Rust 应用的领先安全运行时环境出现,想要解决这些问题。 有了云原生优化的 Wasm 运行时 WasmEdge,开发者现在可以在 LLM 应用程序栈的每一层使用高性能 Rust,作为 Python 的高性能替代方案。

使用 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 (代理)平台。

相关推荐
s_yellowfish1 小时前
Linux服务器pm2 运行chatgpt-on-wechat,搭建微信群ai机器人
linux·服务器·chatgpt
brrdg_sefg3 小时前
Rust 在前端基建中的使用
前端·rust·状态模式
m0_748230943 小时前
Rust赋能前端: 纯血前端将 Table 导出 Excel
前端·rust·excel
SomeB1oody11 小时前
【Rust自学】6.1. 定义枚举
开发语言·后端·rust
SomeB1oody11 小时前
【Rust自学】5.3. struct的方法(Method)
开发语言·后端·rust
that's boy1 天前
突围边缘:OpenAI开源实时嵌入式API,AI触角延伸至微观世界
人工智能·gpt·chatgpt·开源·openai·midjourney
itas1091 天前
Rust调用C动态库
c语言·rust·bindgen·bindings·rust c绑定
SomeB1oody1 天前
【Rust自学】5.1. 定义并实例化struct
开发语言·后端·rust
m0_748236111 天前
Calcite Web 项目常见问题解决方案
开发语言·前端·rust
AIGC大时代1 天前
如何使用ChatGPT辅助文献综述,以及如何进行优化?一篇说清楚
人工智能·深度学习·chatgpt·prompt·aigc