这几天 AI Agent 生态进入爆发期,有个叫 Rig 非常抢眼,它是基于 Rust 构建的 AI 应用开发专业框架。与它类似还有个叫 ELIZA 框架,本文主要介绍 Rig。
什么是 Rig?
Rig(ARC) 是一个基于 Rust 优势面向 LLM 工作流引擎的 AI 系统构建框架,目的是要解决更底层的性能优化问题。值得关注的一个框架。
Rig 进行 AI 开发优势
选择 Rig 可以更高效地开发,拥有着类型安全的 API ,可以减少运行是报错,异步优先设计,让你的资源得到最佳利用率。它与 Rust 生态如 Tokio、Serde 等无缝集成。
Rig 核心功能
- 统一 LLM 接口:支持跨不同 LLM 提供商的一致 API ,简化集成和减少供应商的锁定。
- Rust 驱动的卓越性能:基于 Rust 优势,零成本抽象、内存安全、高性能的 LLM 操作。
- 高级 AI 工作流抽象:实施复杂的 AI system,比如 RAG 和多 Agent 设置,预构建的模块化组件。
- 类型安全的 LLM 交互:基于 Rust 强类型系统来保障 LLM 交互的安全。
- 无缝对接 Vector Store 集成:内置对裁体存储的支持,实现高效的相似性 AI 应用程序的搜索和检索功能。
- 灵活的嵌入支持:提供易于使用的 API,用于处理嵌入,这对语义至关重要 搜索和基于内容的推荐。
Rig 野心是以 Rust 驱动性的性能、利用 Rust 优势零成本抽象和内存安全、高性能、低延迟的 LLM 操作。当然要达到企业级商用化的标准框架,现在阶段只是 AI Agent 生态的爆发期,至于落地商业化,需要加速迈向市场去验证与反馈的。
如何快速上手 Rig
下面是官网几个 Demo 。
basic_llm.rs
复制
use rig::providers::openai; use rig::completion::Prompt; #[tokio::main] async fn main() -> Result<()> { let client = openai::Client::from_env(); let gpt4 = client.agent("gpt-4").build(); let response = gpt4.prompt("Translate 'Hello, world!' to French.").await?; println!("Translation: {}", response); Ok(()) }
rag_system.rs
复制
use rig::providers::openai; use rig::vector_store::in_memory_store::InMemoryVectorStore; use rig::completion::Prompt; #[tokio::main] asyncfn main() -> Result<()> { let client = openai::Client::from_env(); let embed_model = client.embedding_model("text-embedding-ada-002"); letmut store = InMemoryVectorStore::default(); let rag_agent = client.context_rag_agent("gpt-4") .dynamic_context(1, store.index(embed_model)) .build(); let response = rag_agent.prompt("What is Rig?").await?; println!("RAG Agent: {}", response); Ok(()) }
extractor.rs
复制
use rig::providers::openai; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; #[derive(Debug, Deserialize, JsonSchema, Serialize)] struct MovieReview { sentiment: String, rating: f32, } #[tokio::main] asyncfn main() -> Result<()> { let client = openai::Client::from_env(); let extractor = client.extractor::<MovieReview>("gpt-4").build(); let review = extractor.extract("I loved this movie! It's a solid 9/10.").await?; println!("Extracted: {:?}", review); Ok(()) }
高级功能
- 完全支持 LLM 完成和嵌入工作流程
- 对 LLM 提供程序(例如 OpenAI、Cohere)和向量存储(例如 MongoDB、内存中)的简单但强大的通用抽象
- 以最少的样板将 LLM 集成到您的应用程序中
Rust 在AI时代会成为主流吗?
最后,Rust 作为小众语言,但拥有着别人没有天生优势,内存安全、零成本抽象、快速可靠,开发社区非常活跃。
在 AI 大模型时代,Rust 是否能够运来新的突破,是否会大量采用于AI 大模型底层的开发,虽然前有C/C++,后有 Zig 这样性能牛逼的语言。
最近,也开始看到了 AI Agent 和 AI Infra 有小规模爆发了,想要让 AI Agent 繁荣发展,自然离不开 AI Infra 高性能的力量。
AI应用爆发式的增长,在模型训练和推理必须得到大幅提升,算力成本和使用效率这两个指标也变得至关重要了。否则会直接影响模型能力升级和AI应用大规模落地的速度。
尽管已有计算模型和框架比如 TensorFlow 和 PyTorch 也取得了非常好的成果。但在性能优化和资源管理方面存在很大问题,特别在大规模并行计算和高性能计算环境中,还是显得有些力不从心的。
大佬看了很多问题,于是逐渐采用 Rust 重构一些新框架,如Candle、Burn、DFDX、tch-rs、Linfa、ndarray、Polars等框架的出现。以及 OpenAI 、Google、微软等一些核心需要高性能,也换成了 Rust 来重构。
所以,未来打造高性能的 AI Infra 方向上,Rust 会有很大优势。
参考资料:
- 官网:https://rig.rs
- https://docs.rs/rig-core/latest/rig
- Github:https://github.com/0xPlaygrounds/rig