vLLM 对 Recursive 的 Flint 提供 Day-0 支持

vLLM 已集成对 Recursive 的 Flint 的 Day-0 支持,Flint 是一个 400 亿参数的混合专家(MoE)模型,使用户能够在单个 GB200 GPU 上以高吞吐量高效地服务该模型。

Flint 模型概述与能力

Flint 是一个 400 亿参数的 MoE 模型,每个 token 激活约 25 亿参数。它设计有 262K token 的大上下文窗口,并提供两个检查点:NVFP4(量化感知训练)和 BF16。

NVFP4 检查点以 GGUF 文件形式提供,vLLM 在加载时无损地重新打包。此过程允许模型以仅权重(W4A16)方式运行,同时保持 BF16 激活和 KV 缓存,确保在 GSM8K、GPQA-Diamond、长上下文 MRCR 和工具调用套件等基准测试中,精度与 Recursive 的参考实现相匹配。

Flint 模型架构

Flint 采用 49 层预归一化 MoE 架构,隐藏大小为 2048。其独特设计强调局部注意力,以高效管理大上下文窗口。

  • 注意力机制: 大多数层(35 层)使用 513 token 的滑动窗口和 RoPE 进行注意力。只有 14 层在没有位置编码的情况下关注完整上下文。这种设计将 KV 缓存成本限制为每个 token 28 KiB,因为只有 14 个全上下文层保留整个序列的 KV 状态。
  • MoE 结构: 该模型具有 256 个专家,采用 sigmoid top-6 选择机制加上一个共享专家。第 0 层和第 1 层使用密集 MLP 而不是 MoE 结构。
  • 注意力汇聚: 该架构包含学习到的注意力汇聚,使用分组查询注意力(GQA),具有 32 个查询头和 4 个 KV 头,并采用每头 Q/K RMSNorm。

性能与服务实现

在单个 GB200 GPU 上服务 Flint,即使处理 100K token 上下文,也能实现约 500 token/s 的解码速率。这一性能是 vLLM 内广泛内核级优化的结果。

Flint 支持可通过 Day-0 Docker 镜像 vllm/vllm-openai:flint(支持 x86_64 和 arm64,CUDA 13.0)获得。

使用示例:

对于 NVFP4 检查点(GGUF),Docker 命令为:

docker run --gpus all --ipc=host -p 8000:8000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  vllm/vllm-openai:flint \
  RecursiveSI/flint-nvfp4-gguf \
  --hf-config-path RecursiveSI/flint --tokenizer RecursiveSI/flint \
  --enable-auto-tool-choice --tool-call-parser glm47 \
  --reasoning-parser glm47 --exclude-tools-when-tool-choice-none

对于 BF16 检查点,Docker 命令为:

docker run --gpus all --ipc=host -p 8000:8000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  vllm/vllm-openai:flint \
  RecursiveSI/flint \
  --enable-auto-tool-choice --tool-call-parser glm47 \
  --reasoning-parser glm47 --exclude-tools-when-tool-choice-none

优化策略

性能提升是通过用专门的 Flint 内核替换标准 vLLM 层实现的,这些内核经过严格检查,确保与参考实现一致。

关键优化包括:

  • 小批量 MoE 内核: 这些内核允许路由器和专家 GEMV 仅读取所选专家的权重,从而将解码步骤延迟降低 27%。
  • 融合内核: 将 Q/K 归一化、RoPE 和 KV 缓存写入融合到单个内核中,延迟降低了 8%。
  • 低延迟解码路径: 对于最多 8 个请求,低延迟路径将 MoE 层操作(Q/K 归一化、RoPE、路由和专家组合)融合到相邻的 GEMV 内核中。此路径将 NVFP4 解码时间减少 2.7 倍(从 4.81 ms 降至 1.78 ms),BF16 解码时间减少 1.5 倍(从 3.53 ms 降至 2.34 ms)。

端到端服务,在 100K 上下文下,batch-1 解码每个 token 需要 2.06 ms,包括前向传播、LM 头和采样。

SUMMARY: vLLM 现在为 Recursive 的 Flint 提供 Day-0 支持,Flint 是一个 400 亿参数的 MoE 模型,能够在单个 GB200 GPU 上实现高达 500 token/s 的高吞吐量服务。

TITLE: vLLM 对 Recursive 的 Flint 提供 Day-0 支持

Sources