为什么埃隆·马斯克说 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 (代理)平台。

相关推荐
是店小二呀40 分钟前
使用Rust构建一个完整的DeepSeekWeb聊天应用
开发语言·后端·rust
it运维技术圈2 小时前
阿里启动“千问突击队“全球对标ChatGPT
chatgpt
是店小二呀15 小时前
五分钟理解Rust的核心概念:所有权Rust
开发语言·后端·rust
IT_Beijing_BIT17 小时前
Rust入门
开发语言·后端·rust
Geo_V18 小时前
LangChain Memory 使用示例
人工智能·python·chatgpt·langchain·openai·大模型应用·llm 开发
q***239219 小时前
数据库操作与数据管理——Rust 与 SQLite 的集成
数据库·rust·sqlite
百锦再19 小时前
第15章 并发编程
android·java·开发语言·python·rust·django·go
byte轻骑兵21 小时前
Rust赋能Android蓝牙协议栈:从C++到安全高效的重构之路
android·c++·rust
yaocheng的ai分身21 小时前
ChatGPT中的群聊功能试点项目
chatgpt
Source.Liu21 小时前
【Chrono库】Chrono Traits 模块解析(traits.rs)
rust·time