光速级大语言模型推理引擎
基于 Python 构建,采用连续批处理、PagedAttention 和投机解码技术,
实现 10 倍 吞吐量提升与 毫秒级 首 token 延迟
体验 TokenSpeed 的流式生成与动态批处理
TokenSpeed 与主流推理框架的吞吐量对比(Llama 2 70B, A100 80GB)
| 推理框架 | 吞��量 (t/s) | 首 token 延迟 | GPU 利用率 | 内存效率 | 批处理策略 |
|---|---|---|---|---|---|
| TokenSpeed | 12,847 | 23 ms | 94.2% | 98.5% | 连续批处理 |
| vLLM | 8,932 | 45 ms | 82.1% | 95.3% | 连续批处理 |
| TensorRT-LLM | 7,654 | 38 ms | 88.7% | 91.2% | 静态批处理 |
| Hugging Face TGI | 4,521 | 89 ms | 65.4% | 78.6% | 静态批处理 |
| 原生 PyTorch | 1,234 | 245 ms | 32.1% | 45.2% | 无批处理 |
三大关键技术突破,实现极致推理性能
受操作系统虚拟内存启发,将 KV Cache 划分为固定大小的块,实现非连续的内存分配。消除内存碎片,支持高效的内存共享。
突破传统静态批处理的限制,在迭代级别动态调度请求。新请求随时加入,完成的请求立即退出,GPU 利用率最大化。
使用小型草稿模型并行生成候选 token,再由大模型一次性验证。保持输出质量的同时,实现 2-3 倍的解码加速。
TokenSpeed 的完整请求处理流水线
from tokenspeed import LLMEngine, SamplingParams
# 初始化引擎
engine = LLMEngine(
model="meta-llama/Llama-2-70b-hf",
tensor_parallel_size=8,
gpu_memory_utilization=0.95
)
# 配置采样参数
sampling_params = SamplingParams(
temperature=0.7,
top_p=0.95,
max_tokens=2048
)
# 添加请求到队列
engine.add_request(
request_id="req-001",
prompt="解释量子计算的基本原理",
sampling_params=sampling_params
)
# 运行推理并流式输出
while engine.has_unfinished_requests():
outputs = engine.step()
for output in outputs:
print(output.text, end="", flush=True)
根据您的场景估算所需 GPU 资源