AICI 项目简介
AICI,全称为人工智能控制接口(Artificial Intelligence Controller Interface),是微软研究院开发的一个项目,旨在为大规模语言模型(LLM)的输出提供实时约束和指导。它让开发者能够创建灵活的控制器用于约束解码、动态编辑提示和管理多线程生成的执行。
AICI 的目的
AICI 的目标是简化控制器的开发,使其即能支持现有的控制策略,也能打开创新策略实验的大门,从而改善 LLM 的生成表现。通过抽象底层 LLM 推理和服务引擎的实现细节,AICI 能够帮助开发者更容易地编写高效的控制器,并简化其在不同 LLM 推理和服务引擎间的兼容性。
技术特点
AICI 支持本地和云端执行,未来计划支持多租户 LLM 部署。控制器作为轻量级的 WebAssembly (Wasm) 模块实现,与 LLM 推理引擎在同一设备上运行,充分利用 CPU 处理能力,并在 GPU 生成令牌时保持活动。AICI 是推理堆栈的一层,允许如 Guidance、LMQL 等控制库在其之上运行,从而提高效率和性能,同时实现跨 LLM 推理和服务引擎的可移植性。
AICI 现在已与 llama.cpp、HuggingFace Transformers 和自定义 tch-based 的 rLLM 集成,并正在与 vLLM 进行整合。
系统优势
- 灵活性:控制器可以用任何能编译为 Wasm 的语言编写(如 Rust、C、C++ 等),或在 Wasm 内部由语言解释执行(如 Python、JavaScript 等)。
- 安全性:控制器在沙箱环境中运行,无法访问文件系统、网络或其他资源。
- 性能:Wasm 模块编译为本地代码,与 LLM 推理引擎并行运行,生成过程带来的开销极小。
项目架构
AICI 将 LLM 推理引擎与控制器分离,形成如下架构:
graph TD
PyCtrl -- AICI --> aicirt[AICI-runtime]
JsCtrl -- AICI --> aicirt
guidance([GuidanceCtrl]) -- AICI --> aicirt
lmql([LMQL Ctrl]) -- AICI --> aicirt
aicirt -- POSIX SHM --> rLLM
aicirt -- POSIX SHM --> llama[llama.cpp]
aicirt -- POSIX SHM --> pyaici
pyaici -- Python --> vLLM(vLLM)
pyaici -- Python --> hf[HF Transformers]
快速入门
AICI 让用户能够通过控制器控制 AI 输出,以便自定义 LLM 按照特定规则生成文本。使用 AICI 可以帮助开发人员在约定的框架内构建更佳的生成策略。
贡献与社区
AICI 项目欢迎各种贡献与建议。开发团队接纳了微软开源行为准则,详情请访问 Microsoft Open Source Code of Conduct。如果您对这个项目感兴趣,欢迎前来贡献自己的见解或代码。
商标声明
该项目可能包含 Microsoft 或第三方项目、产品或服务的商标或标识符。对于 Microsoft 商标的授权使用必须遵循 Microsoft 的商标与品牌指南。对于第三方商标,应遵循其各自的使用政策。
AICI 是关于在大规模语言模型推理堆栈中定义新层次的引人注目的项目,如果您对该项目或其为 LLM 推理带来的创新有兴趣,请随时了解更多信息或参与其中。