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

相关推荐
‍。。。5 小时前
使用Rust实现http/https正向代理
http·https·rust
Source.Liu5 小时前
【用Rust写CAD】第二章 第四节 函数
开发语言·rust
monkey_meng5 小时前
【Rust中的迭代器】
开发语言·后端·rust
余衫马5 小时前
Rust-Trait 特征编程
开发语言·后端·rust
monkey_meng5 小时前
【Rust中多线程同步机制】
开发语言·redis·后端·rust
爱技术的小伙子5 小时前
【ChatGPT】如何通过逐步提示提高ChatGPT的细节描写
人工智能·chatgpt
johnny2336 小时前
《大模型应用开发极简入门》笔记
笔记·chatgpt
hikktn13 小时前
如何在 Rust 中实现内存安全:与 C/C++ 的对比分析
c语言·安全·rust
睡觉谁叫~~~13 小时前
一文解秘Rust如何与Java互操作
java·开发语言·后端·rust
音徽编程13 小时前
Rust异步运行时框架tokio保姆级教程
开发语言·网络·rust