深入解析Microsoft AICI项目中的LLM推理引擎与AICI运行时通信协议
aici 项目地址: https://gitcode.com/gh_mirrors/ai/aici
概述
Microsoft AICI项目实现了一个创新的架构,通过LLM推理引擎(LLM)与AICI运行时(AICIrt)之间的高效通信机制,为大型语言模型提供了强大的控制能力。本文将深入解析这两者之间的通信协议设计和工作原理。
通信基础架构
AICI系统采用了一种高效的进程间通信机制,主要特点包括:
- 共享内存通信:使用POSIX共享内存(SHM)作为数据传输通道,确保高性能
- 双通道设计:
- 主通道:同步通信,处理关键路径上的实时交互
- 侧通道:异步通信,处理管理类操作
- 同步机制选择:
- POSIX命名信号量
- 平台特定的轻量级同步原语(futex/__ulock/WaitOnAddress)
主通道通信流程
主通道遵循严格的同步时序,与LLM的推理步骤紧密配合。一个完整的推理周期包含以下阶段:
1. 预处理阶段(pre_process)
LLM请求AICIrt执行所有当前序列的预处理回调,确定哪些序列可以继续执行,哪些需要暂停等待。这个阶段允许控制器影响后续的推理过程。
2. 中间处理阶段(mid_process)
LLM通知AICIrt哪些序列被调度用于计算logits,AICIrt开始执行mid_process回调,返回logit偏置等信息。这些偏置直接影响后续的token采样。
3. 后处理阶段(post_process)
LLM将新采样的token发送给AICIrt执行后处理回调,控制器可以决定是否停止某些序列。
性能优化设计
为了减少通信开销,系统采用了"post_pre_process"合并调用,将前一个步骤的post_process与下一个步骤的pre_process合并为一个请求。
消息协议详解
基础消息结构
所有请求都包含"op"字段指示操作类型,响应包含"type"字段("ok"或"error")和"data"字段。
关键消息类型
-
ping命令:基本存活检测
{"op":"ping"} // 响应 {"type":"ok","data":{"pong":1}}
-
tokens命令:获取词汇表大小
{"op":"tokens"} // 响应 {"type":"ok","data":{"vocab_size":32003}}
-
post_pre_process命令:核心交互命令
- 处理序列分配
- 传递token生成结果
- 获取控制器反馈
序列生命周期管理
- 序列初始化:通过post_pre_process分配控制器
- 序列执行:通过mid_process影响logit计算
- 序列终止:通过post_pre_process释放资源
侧通道通信
侧通道处理非实时关键路径操作,主要包括:
-
Wasm控制器管理:
- 上传新控制器(二进制Base64编码)
- 控制器标签管理
- 控制器实例化
-
标签操作:
- 设置标签
- 获取标签列表
控制器实例化示例
{
"$rid": "0aae92c8-e415-4efd-947b-361a8573020c",
"$auth": { "user": "localhost", "is_admin": true },
"op": "instantiate",
"req_id": "run-062a793f-a83f-4198-a792-9dfc39f623a6",
"prompt": [1],
"module_id": "jsctrl-latest",
"module_arg": "async function main() {\n await $`Ultimate answer is to the life, universe and everything is `\n await gen({ regex: /\\d\\d/ })\n}\n\nstart(main)\n"
}
性能考量
-
时间约束:
- 主通道操作有严格的时间限制
- 侧通道操作时间限制较宽松
-
并行处理:
- 主通道严格同步
- 侧通道支持多个并发请求
-
资源管理:
- 及时释放完成序列
- 共享内存高效复用
实际应用场景
通过这个协议,AICI项目实现了:
- 细粒度控制:Wasm控制器可以精确影响LLM的生成过程
- 动态约束:支持正则表达式等高级约束条件
- 灵活扩展:通过Wasm模块支持多种控制策略
- 高效执行:最小化对LLM推理速度的影响
总结
Microsoft AICI项目的通信协议设计体现了对LLM推理过程深入的理解和精巧的工程实现。通过主/侧通道分离、共享内存通信和精心设计的消息协议,在保持高性能的同时,为LLM提供了强大的外部控制能力。这种架构为构建可控、可扩展的LLM应用提供了坚实的基础。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考