大模型推理框架 RTP-LLM 架构解析

大模型推理框架RTP-LLM架构解析

RTP-LLM 是阿里巴巴智能引擎团队推出的大模型推理框架,支持了包括淘宝、天猫、闲鱼、菜鸟、高德、饿了么、AE、Lazada 等多个业务的大模型推理场景。RTP-LLM 与当前广泛使用的多种主流模型兼容,使用高性能的 CUDA kernel, 包括 PagedAttention、FlashAttention、FlashDecoding 等,支持多模态、LoRA、P-Tuning、以及 WeightOnly 动态量化等先进功能,已在众多 LLM 场景中得到实际应用与检验。

本篇文章介绍了 RTP-LLM 的整体架构,并着重分析了模型加载过程中的核心部分:模型的权重和配置文件。本文主要由社区用户 mingming 贡献,特此感谢其对项目的支持。

一、架构介绍

我们首先对 RTP-LLM,该系统由多个层次组成,从最外层的 InferenceApp 到最内层的 AsyncModel,每一层都有特定的职责。

1.1 InferenceApp 和 FastAPI 服务

最外层是 InferenceApp,其核心是一个基于 FastAPI 的异步服务。这一层负责接受外部的 HTTP 请求,并将请求传递给内部的推理服务器。

1.2 InferenceServer 和 InferenceWorker

InferenceServer 是实际处理推理请求的服务器,内部有多个 InferenceWorker 负责具体的任务。每个 InferenceWorker 包含一个 Pipeline,包含了用于处理请求的异步模型 AsyncModel

二、异步模型 AsyncModel 的工作流程

AsyncModel 是整个系统的核心组件,负责具体的推理任务。它包含两个主要部分:Scheduler 和 ModelExecutor

2.1 接收请求

当 HTTP 请求到达时,系统会依次进行以下处理:

  1. Prompt 构建:根据请求内容,构建推理所需的 prompt。

  2. Tokenize:将 prompt 转换为模型可以理解的 token。

2.2 任务排队

处理完请求后,系统会将任务通过 model.enqueue 放入队列中,准备进行后续处理。

2.3 Decoder Engine

Decoder Engine 是异步推理的核心,包含两个部分:Scheduler 和 ModelExecutor

Scheduler

Scheduler 负责调度任务,它会从 waiting_streams 中选择需要处理的任务,并安排执行。在后台,Scheduler 会不断运行 step 函数:

  1. Scheduler.schedule 获取 batch_query。

  2. ModelExecutor.process 执行推理任务。

ModelExecutor

ModelExecutor 负责实际的模型执行过程:

  1. Process BatchQuery:处理 batch_query。

  2. Token Embedding:将 img token 转换为 img embedding。

  3. CUDA 预测:将输入数据送入 CUDA 引擎进行预测。

2.4 执行推理

Decoder&nb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值