【Rust日报】2024-02-29 - crabml,使用 Rust 重写 GGML

💡 原文中文,约1000字,阅读约需3分钟。
📝

内容提要

crabml是一个使用Rust重写GGML的实验性项目,已经支持推理Q8_0量化的Llama 3B模型,性能与ggml相差仅1token/s。crabml的设计目标是专注于推理,具有足够快速的推理能力,并采用mmap()和SIMD实现。同时,Yoshua Wuyts为WASI 0.2设计了一个异步运行时的实现。

🔎

延伸解读

crabml 的定位与取舍

crabml 是一个实验性项目,目标是用 Rust 重新实现 GGML,但专注于推理而非训练。它有意将张量运算限制为 LLM 推理所需的最低限度,并优先实现 SIMD 而非 GPU,以在廉价硬件上获得足够快的推理速度。这种设计取舍使其与通用机器学习框架不同,更适合资源受限的推理场景。

性能表现与参考价值

目前 crabml 已支持推理 Q8_0 量化的 Llama 3B 模型,性能与 ggml 仅相差 1 token/s。这一差距表明 Rust 实现已具备一定竞争力,但作为实验性项目,其稳定性和功能完整性仍需观察。对于关注 Rust 在 AI 推理领域应用的开发者,crabml 提供了一个可参考的案例。

WASI 0.2 异步运行时的意义

Yoshua Wuyts 为 WASI 0.2 实现了一个可工作的最小异步运行时,这是该特定用途的首个实现。文章详细介绍了实现过程,其经验对来自 Smol、Monoio、Glommio 或 Tokio 社区以及对 Rust 异步运行时设计感兴趣的人具有学习价值。这有助于推动 WASI 生态中异步支持的发展。

❓

Q&A

crabml 是什么?它和 GGML 有什么关系?

crabml 是一个使用 Rust 重写 GGML 的实验性项目,相当于用 Rust 重新实现 GGML。

crabml 目前支持哪些模型?性能如何?

crabml 目前支持推理 Q8_0 量化的 Llama 3B 模型,性能与 ggml 相差仅 1 token/s。

crabml 的设计目标是什么?

crabml 的设计目标是:专注于推理;将张量运算限制为 LLM 推理所需的最低限度;在廉价硬件上具有足够快速的推理能力;从实现之初就采用 mmap();SIMD 实现的优先级大于 GPU 实现。

Yoshua Wuyts 为 WASI 0.2 做了什么?

Yoshua Wuyts 为 WASI 0.2 完成了一个可以工作的、最小的、正确的异步运行时的实现,并写了一篇文章详细介绍如何实现。

crabml 的作者什么时候分享 Rust 和 AI 推理的内容?如何参与?

crabml 的作者 f 叔 将在周日(3 月 3 日)晚 7 点分享关于 Rust 和 AI 推理相关的内容,可以通过访问 https://meet.google.com/qnc-opkf-aft 参与。

Rust 周报第 536 期在哪里可以查看?

Rust 周报第 536 期可以在 https://this-week-in-rust.org/blog/2024/02/28/this-week-in-rust-536/ 查看。

🏷️

标签

➡️

继续阅读