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级调度实现极致的单请求低延迟。它牺牲了批处理能力和通用性,换来了在特定硬件和特定模型上的极致性能。

相关推荐
刘立军1 天前
程序员应该熟悉的概念(8)嵌入和语义检索
人工智能·算法
kisshuan123961 天前
基于VFNet的轮胎标签检测与分类系统
人工智能·分类·数据挖掘
Nautiluss1 天前
一起调试XVF3800麦克风阵列(六)
人工智能·单片机·音频·语音识别·dsp开发·智能硬件
北京耐用通信1 天前
耐达讯自动化Profibus三路中继器:低成本搞定阀门定位器稳定组网的硬核方案
人工智能·物联网·自动化
敢敢のwings1 天前
VGGT-Long:极简主义驱动的公里级单目三维重建系统深度解析(Pytorch安装手册版)
人工智能·pytorch·python
技术狂人1681 天前
(七)大模型工程落地与部署 10 题!vLLM/QPS 优化 / 高可用,面试实战必备(工程篇)
人工智能·深度学习·面试·职场和发展·vllm
新芒1 天前
海尔智家加速全球体育营销
大数据·人工智能
Hcoco_me1 天前
大模型面试题37:Scaling Law完全指南
人工智能·深度学习·学习·自然语言处理·transformer
aiguangyuan1 天前
CART算法简介
人工智能·python·机器学习