TileRT超低延迟的大语言模型推理系统

TileRT 是什么

一、项目概述

TileRT(Tile-Based Runtime)是一个专注于**超低延迟(Ultra-Low-Latency)**的大语言模型(LLM)推理系统。它是一个实验性项目,探索用于服务大型语言模型的核心编译器技术,目标是在不损害模型大小或质量的情况下,将LLM的延迟推向极限。

项目目标

TileRT 的核心目标是让拥有数千亿参数的模型实现毫秒级单次输出token时间(TPOT - Time Per Output Token)

关键信息

二、TileRT 的定位与特点

2.1 与传统推理系统的区别

TileRT 与传统的 LLM 推理系统(如 vLLM、TensorRT-LLM、SGLang)有着本质上的不同:

维度 传统推理系统 TileRT
优化目标 高吞吐量(High-Throughput) 超低延迟(Ultra-Low-Latency)
批处理策略 大批量并行处理 Batch Size = 1
应用场景 离线批处理、服务端大规模请求 实时交互、高频交易、AI辅助编码
关注指标 QPS(每秒查询数) TPOT(单token生成时间)
调度粒度 算子级(Operator-level) Tile级(Tile-level)

2.2 核心特点

1. Tile级运行时引擎

TileRT 引入了一个Tile级运行时引擎(Tile-level Runtime Engine)。通过编译器驱动的方法,LLM算子被分解为细粒度的Tile级任务,运行时动态地在多个设备上以高度重叠的方式重新调度计算、I/O和通信。

复制代码
传统方式:算子 A → 算子 B → 算子 C (串行执行)
TileRT:  Tile A1 + Tile B1 + 通信 C1 (高度重叠并行)
2. 编译器驱动的优化

TileRT 采用编译器驱动的方法,将 LLM 模型编译为高效的执行计划:

  • 算子融合
  • 细粒度任务分解
  • 自动内存管理
  • 动态调度优化
3. 硬件深度适配

TileRT 专门针对 8× NVIDIA B200 GPU 进行深度优化:

  • 支持 CUDA 12.8/12.9
  • 针对 B200 架构的内存层次优化
  • FP8 量化支持(可选)
  • 多卡通信优化
4. 零质量损失

TileRT 不使用有损优化(如量化或蒸馏),保持模型原始质量的同时实现极致性能。

三、性能表现

3.1 官方基准测试

在 DeepSeek-V3.2-Exp 模型上的测试结果(Batch Size = 1,输入/输出序列长度:1K/1K):

复制代码
测试配置:
- 硬件:8× NVIDIA B200 GPU
- CUDA:12.9
- 模型:DeepSeek-V3.2-Exp(无量化)
- Batch Size:1
- 输入序列长度:1024 tokens
- 输出序列长度:1024 tokens

性能对比(相对于其他推理框架):

根据官方提供的性能图表(assets/perf.png),TileRT v0.1.1 相比其他主流推理框架实现了显著的端到端token生成延迟降低:

  • 相比 vLLM v0.13.0 :约 35% 的延迟降低
  • 相比 SGLang v0.5.6:显著的延迟优势
  • 相比 TensorRT-LLM v1.2.0-rc5:更低的延迟

3.2 为什么 TileRT 比 vLLM 更快?

这是一个核心问题,我们将在后续专题中详细展开,这里先简要说明:

关键原因 1:优化目标不同
  • vLLM:优化吞吐量,通过 PagedAttention 和 Continuous Batching 处理大批量请求
  • TileRT:优化单请求延迟,Batch Size = 1
关键原因 2:调度粒度不同
  • vLLM:算子级调度,算子之间串行执行
  • TileRT:Tile级调度,细粒度任务高度重叠执行
关键原因 3:编译时优化
  • vLLM:运行时调度为主
  • TileRT:编译时生成优化的执行计划,减少运行时开销

四、目标应用场景

TileRT 特别适合以下对响应速度要求极高的场景:

1. 高频交易(High-Frequency Trading)

  • 毫秒级决策要求
  • 单次请求延迟至关重要

2. 实时交互AI(Interactive AI)

  • AI助手实时对话
  • 用户体验对延迟敏感

3. 实时决策系统(Real-time Decision Making)

  • 自动驾驶决策
  • 实时风控系统

4. 长时运行智能体(Long-running Agents)

  • 持续运行的AI助手
  • 需要快速响应的自主代理

5. AI辅助编码(AI-Assisted Coding)

  • IDE中的实时代码补全
  • 代码解释和重构建议

五、技术架构概览

5.1 核心组件

复制代码
┌─────────────────────────────────────────┐
│         ShowHandsGenerator              │  ← 用户接口层
├─────────────────────────────────────────┤
│       ShowHandsDSALayer                 │  ← 模型层
├─────────────────────────────────────────┤
│     Tile-level Runtime Engine           │  ← 运行时引擎
│  - dsa_show_hands_prepare_money         │
│  - dsa_show_hands (inference)           │
│  - dsa_show_hands_reset                 │
├─────────────────────────────────────────┤
│   自定义 CUDA Kernels (torch.ops)       │  ← 算子层
├─────────────────────────────────────────┤
│         8× NVIDIA B200 GPU              │  ← 硬件层
└─────────────────────────────────────────┘

5.2 模型结构支持

TileRT 当前支持 DeepSeek-V3.2-Exp 模型,该模型具有以下特点:

  • 总层数 :61层
    • 3层 Dense(MLA + MLP)
    • 58层 MoE(MLA + MoE)
  • MLA(Multi-head Latent Attention):多头潜在注意力机制
  • MoE(Mixture of Experts) :专家混合模型
    • 256个路由专家
    • 每次激活8个专家
  • 模型维度:7168
  • 词汇表大小:129,280

5.3 内存管理

TileRT 采用精细的内存管理策略:

python 复制代码
# 三类内存缓冲区
1. params:模型权重(跨设备分布)
2. intermediates:中间计算结果(26个临时变量)
3. caches:KV缓存(k_cache, kv_cache, pe_cache)

每个 GPU 独立管理自己的参数和缓冲区,通过 dsa_show_hands_prepare_money 初始化。

六、关键设计理念

6.1 "Show Hands" 命名含义

代码中大量使用 "Show Hands"(亮牌)的命名:

  • dsa_show_hands_prepare_money:准备资源(准备筹码)
  • dsa_show_hands:执行推理(亮牌)
  • dsa_show_hands_reset:重置序列(重新洗牌)
  • dsa_show_hands_go_home:清理资源(散场)

这种命名体现了 TileRT 的设计哲学:快速、果断、一次到位,就像扑克游戏中的"梭哈(Show Hands)"。

6.2 编译时 vs 运行时

TileRT 将大量工作前置到编译时:

复制代码
编译时(Compile Time):
├── 算子分解为 Tile 级任务
├── 生成优化的执行计划
├── 权重预处理和转换
└── 内存布局优化

运行时(Runtime):
├── 极简的调度逻辑
├── Tile 级任务执行
└── 细粒度并行重叠

七、当前状态与未来

7.1 当前限制

  • 硬件要求:仅支持 8× NVIDIA B200 GPU
  • 模型支持:仅支持 DeepSeek-V3.2-Exp
  • Batch Size:固定为 1
  • 实验性质:预览版本,仍在持续改进

7.2 未来方向

根据 README,TileRT 的底层编译器技术将逐步集成到:

  • TileLang:Tile级编程语言
  • TileScale:大规模分布式训练/推理框架

7.3 版本历程

  • v0.1.1 (2025-12-23):实现约35%的端到端延迟降低
  • v0.1.0-alpha.1 (2025-11-20):初始发布

八、快速开始

8.1 安装要求

bash 复制代码
# 硬件要求
- 8× NVIDIA B200 GPU

# 软件要求
- Ubuntu 20.04+
- Python 3.11-3.12
- PyTorch with CUDA 12.8/12.9
- CUDA 12.8/12.9

# Docker镜像(推荐)
docker pull tileai/tilert:v0.1.0

8.2 简单示例

python 复制代码
from tilert.models.deepseek_v3_2.dsa_show_hands import ShowHandsGenerator

# 初始化生成器
generator = ShowHandsGenerator(
    max_new_tokens=1000,
    model_weights_dir="/path/to/weights",
)

# 加载预训练权重
generator.from_pretrained()

# 生成文本
prompt = "Tell me three jokes"
completion = generator.generate(prompt)

九、与 vLLM 的对比总结

特性 vLLM TileRT
核心优势 高吞吐量 超低延迟
PagedAttention
Continuous Batching ✗ (固定batch=1)
Tile级调度
编译器驱动 部分 完全
模型支持 广泛 专门优化(当前仅DeepSeek)
硬件支持 广泛 专门优化(8×B200)
适用场景 通用服务 低延迟场景
单token延迟 较高 极低(-35%)
总吞吐量 极高 较低

结论:vLLM 和 TileRT 解决的是不同的问题。vLLM 适合需要处理大量并发请求的服务场景,而 TileRT 适合对单次请求响应时间极度敏感的实时交互场景。两者不是竞争关系,而是互补关系。

十、总结

TileRT 代表了 LLM 推理优化的一个新方向:通过编译器驱动的Tile级调度实现极致的单请求低延迟。它牺牲了批处理能力和通用性,换来了在特定硬件和特定模型上的极致性能。

相关推荐
AngelPP7 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年7 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼7 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS7 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区8 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈8 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang9 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx
shengjk110 小时前
NanoClaw 深度剖析:一个"AI 原生"架构的个人助手是如何运转的?
人工智能
西门老铁12 小时前
🦞OpenClaw 让 MacMini 脱销了,而我拿出了6年陈的安卓机
人工智能