智能体/生成式 AI

NVIDIA 极致软硬件协同设计如何助力 Sarvam AI 主权模型实现惊人推理性能跃升

随着全球人工智能采用的加速,开发者面临日益严峻的挑战:如何提供符合现实世界延迟和成本要求的大语言模型(LLM)性能。在生产环境中运行拥有数百亿参数的模型,尤其是对话式或基于语音的AI智能体,需要实现高吞吐量、低延迟以及稳定可预期的服务水平表现。对于从零开始构建自主可控AI模型的初创企业而言,这些挑战尤为突出,因为它们必须在模型规模与准确性、基础设施效率之间取得平衡,同时确保数据主权并有效控制成本。

Sarvam AI,一家位于印度班加罗尔的生成式 AI 初创公司,致力于构建大型、多语种、多模态的基础模型,为印度多元化的群体提供服务,支持近 20 种语言,并将模型开发与数据管理完全置于印度主权控制之下。为满足严格的延迟要求并提升其旗舰 Sovereign 30B 模型的推理效率,Sarvam AI 与 NVIDIA 合作,共同设计硬件与软件的优化方案。

与基准 NVIDIA H100 GPU 相比,NVIDIA Blackwell 的推理性能提升达 4 倍,为在新一代 NVIDIA Blackwell 架构上部署提供了坚实基础。通过在 NVIDIA H100 SXM GPU 上优化内核与调度策略,实现了 2 倍的速度提升,显著增强了端到端性能。结合 Blackwell 强大的计算能力与 NVFP4 权重量化技术,可进一步实现额外 2 倍的加速效果;在更高交互性场景下,性能提升可达 2.8 倍。

NVIDIA 工程师协助 Sarvam AI 构建了 3B、30B 和 100B 规模的基础模型,并优化了全新的主权基础模型系列。这些模型均基于 NVIDIA Nemotron 库,包括 NVIDIA NeMo 框架NVIDIA NeMo-RL 进行训练,支持 22 种印度语言,涵盖英语、数学和代码等领域。该成果展示了开发者团队如何借助 NVIDIA 全栈 AI 平台(从数据到部署)实现卓越的性能与本地化 AI 功能。

本文将介绍联合工程设计工作,并分享 NVIDIA H100(在印度部署规模领先的 NVIDIA GPU)的加速基准。同时,我们还将提前探讨如何根据 NVIDIA Blackwell 架构对这些工作负载进行优化调整。

通过 MoE 实现多语言主权 AI 的可扩展性

为了高效提供主权级智能,Sarvam AI 模型采用了专为深度推理与高语言密度任务定制的复杂异构混合专家(MoE)架构。这些模型基于 混合专家(MoE)架构,参数规模涵盖 3B、30B 及 100B,基于 NVIDIA NeMo 框架和 NVIDIA Megatron-LM 从零开始进行预训练。Furthermore, Nemo-RL 被用于模型的后训练流程,包括长上下文推理。

为了高效提供主权级智能,Sarvam AI 模型采用了专为深度推理与高语言密度任务定制的复杂异构混合专家(MoE)架构。这些模型基于 NVIDIA NeMo 框架和 NVIDIA Megatron-LM 从零开始进行预训练,参数规模涵盖 30B、30B 及 100B。此外,Nemo-RL 还被应用于模型的后训练流程,以支持长上下文推理等高级能力。

Sarvam 30B 采用 19 层深度结构(1 密集层 + 18 个 MoE 层),包含 128 个专家,利用 top-6 路由策略,并结合分组查询注意力(GQA)以平衡内存带宽与生成质量。

Sarvam 100B 将此设计扩展至 32 层(1 dense = 31 MoE),并在 128 位专家中采用排名前 8 的路由策略,其中 MoE FFN 的隐藏层维度更大,达到 2048。此外,100B 模型采用多头潜在注意力(MLA)(类似于 DeepSeek-V3),可有效压缩键值(KV)缓存,从而在不牺牲标准注意力内存的前提下支持大规模上下文窗口。

这两种模型均采用共享专家设计,其中一位专属专家负责处理常见功能,另一位专属专家则负责处理专业任务。这种高活跃参数数量(通过 top-6/top-8 路由)与复杂的内存访问模式相结合,带来了独特的服务挑战,需在 NVIDIA Hopper 和 NVIDIA Blackwell GPU 上进行深度内核优化,下文将对此进行详细说明。

性能挑战:NVIDIA H100 上的服务水平协议与基准配置

优化 Sarvam 30B 模型不仅关乎原始速度,还需在严格的延迟限制下尽可能提升密度。针对该模型所服务的应用(语音到语音代理),我们制定了以下服务水平协议(SLA):

  • P95(第 95 百分位)首token 时间(TTFT):约 1000 毫秒
  • P95(第 95 百分位)token 间延迟(ITL):约 15 毫秒

在推理性能测试中,P95(第 95 百分位)用于衡量延迟,表示 95% 的服务请求完成时间快于该数值,仅有 5% 的请求耗时更长。这一指标是评估用户体验与系统稳定性的关键尾部延迟参数,用以确保在负载条件下,绝大多数用户所经历的延迟仍处于可接受范围。工程目标是在不超出 P95 延迟要求的前提下,尽可能提升推理服务器的 token 吞吐量(即并发处理请求的能力)。

在初始性能分析中,Sarvam AI 与 NVIDIA 团队选用了 SGLang 推理引擎进行评估。与将 KV 缓存视为线性缓冲区的传统服务框架不同,SGLang 采用了 RadixAttention 机制,该机制将 KV 缓存作为基数树进行管理。这对 Sarvam 30B 架构尤为关键:RadixAttention 支持自动前缀共享,能够一次性计算共享的专家上下文和系统提示,并在多个并发请求中重复利用。此外,SGLang 的缓存感知调度程序可有效提升这些共享前缀的命中率,大幅降低预填充阶段的冗余内存操作。

Sarvam AI 与 NVIDIA 团队对生产流量配置文件进行了建模,其特征为平均输入序列长度(ISL)3584 个 tokens,输出序列长度(OSL)128 个 tokens。在内部仿真数据的指导下,我们在两块 NVIDIA H100 SXM GPU 上部署了该模型,并采用特定的并行策略,以平衡 MoE 层在内存和计算方面的不同需求。

  • 专家权重的专家并行(EP = 2)。此配置通过采用分组 GEMM 内核来提升计算密度,同时确保大量专家权重驻留在 HBM 中,从而降低专家路由的开销。
  • 结合 -enable-dp-attention 实现注意力权重的数据并行(DP = 2)。该策略支持在多个并行批次中同时处理注意力计算,有效提升预填充阶段的整体吞吐量。

虽然此配置提供了可靠的功能基准,但分析表明,在高并发场景下实现亚秒级 TTFT 需要更深入的优化,这促使我们转向具体的内核与精度策略,具体如下。

从分析到优化:突破 MoE 瓶颈

模拟数据表明,32 至 64 个请求的并发范围较有可能满足 SLA 要求。为确定在此并发范围内限制 token 吞吐量的具体瓶颈,NVIDIA 与 Sarvam AI 团队采用 NVIDIA Nsight Systems,以 32 个并发请求的形式捕获预填充和解码阶段的执行追踪。随后,我们对追踪数据进行处理,以提取单个 Transformer 层中每个内核的微秒级延迟贡献。

分析结果显示,尽管计算密集型的通用矩阵乘法(GEMM)运算(专家和注意力部分)表现良好,但在非计算密集型操作中仍存在显著的延迟气泡,尤其是在 MoE 路由逻辑和位置嵌入计算环节。这些操作面临内核启动开销大以及内存读取冗余的问题。

A diagram showing the Nsight Systems profiler timeline for a single transformer layer during the model’s prefill phase. The horizontal axis shows time, and stacked rows display GPU metrics including GPC and system clock frequency, GPU active time, streaming multiprocessor (SM) active percentage, SM instructions, and SM warp occupancy. Along the bottom, a sequence of GPU kernel launches is visible. Several regions are outlined with red boxes to highlight the most time-consuming operations: Query and key (QK) normalization and rotary positional embedding (RoPE), attention computation, router logits with top-K selection, routed MoE expert GEMM plus gated linear unit (GLU), and a shared expert GEMM plus GLU. The visualization emphasizes how GPU compute and occupancy vary across these kernels within one transformer layer.
图 1. Nsys 分析器时间轴显示 SM 活动和核函数在预填充阶段的执行情况,红色方框标记层中耗时最多的核函数:QK 归一化、注意力和 MoE 专家计算。

根据这些观察结果,我们从三个维度实施了有针对性的优化策略,分别是内核优化、调度效率和细分服务。

通过内核级优化将 Transformer 层的耗时缩短 34%

NVIDIA 和 Sarvam AI 团队系统地锁定了追踪中识别出的开销最高的内核,用特定于架构的融合内核替代了标准的 PyTorch 实现。我们首先在 H100 GPU 上的 SGLang 中使用基准实现来部署模型,随后对其进行优化以实现显著加速,具体结果如表 1 及下文所述。

内核 基准时间 (微秒) 优化时间 (微秒) 已应用优化
RMSNorm = 准备 QKV 186 185 N/A
QK Norm = RoPE 414 54 使用优化的原位查询-键归一化内核
Attention 322 296 使用 FA3 进行预填充,FlashInfer 后端用于解码
Post-attention 线性投影 114 112 N/A
AllReduce 252 250 N/A
Router logits 和 TopK 560 134 使用融合 TopK 实现;ReplicatedLinear 模块用于 router logits
路由专家计算 1103 1080 调优内核参数以适配 DEP2 配置(每个 GPU 64 位专家)
共享专家计算 216 215 使用 NVIDIA CUDA 流与 TopK 重叠
AllReduce 265 249 N/A
T 层总时间 3432 2575 1.34 倍整体预填充速度提升
表 1. 内核级优化带来了回报:融合和调整热门内核可显著缩短层时间,并加快预填充速度。

MoE 路由(比基准 H100 性能快 4.1 倍):已确认的主要瓶颈是 MoE 路由机制。在基准测试中,计算路由器日志并执行 TopK 选择需多次启动内核并产生冗余的内存往返。

  • 优化:我们实现了 Fused TopK 内核,将 logit 计算与选择逻辑融合至单个 CUDA 内核中。同时,针对路由器 logits 采用了 ReplicatedLinear 模块。由于路由器权重较小,跨 GPU 复制这些权重可消除门控阶段中高昂的通信开销,从而使该操作完全受限于计算性能。

融合位置嵌入(性能比基准 H100 快 7.6 倍): 查询密钥(QK)范数的基准实现以及旋转位置嵌入(RoPE)均需对大量 KV 缓存进行两次读写操作。

  • 优化:我们部署了自定义的就地融合 QK 规范与 RoPE 内核。该内核能够在一次传递中完成归一化和旋转嵌入的计算,使数据保留在 L2 缓存中,降低全局内存带宽的消耗。

通过重叠隐藏延迟:尽管共享专家计算本身的加速效果微乎其微,但我们有效掩盖了其开销。借助独立的 NVIDIA CUDA 流,我们将共享专家的计算与路由器 logits 及 TopK 计算安排为异步执行。这种并行机制确保 GPU 的计算单元(流多处理器或 SM)在解析路由逻辑的同时仍能保持充分负载。

这些有针对性的内核优化将预填充阶段每个 Transformer 层的总处理时间从 3.4 毫秒缩短至 2.5 毫秒,相比基准 H100 性能提升了 1.3 倍。延迟的降低直接带来了更高的并发支持能力,使我们能够在每个 GPU 上为更多用户提供服务,同时仍将首个 token 延迟(TTFT)以及约 15 毫秒的 token 间延迟(ITL SLA)严格控制在 1000 毫秒以内,如图 2 所示。

Line chart titled “Performance impact of kernel optimizations on Sarvam 30B model.” The x-axis shows tokens per second per user, and the y-axis shows tokens per second per GPU. Two lines compare performance: a green line for optimized kernels and a lighter green line for baseline (unoptimized). Across all concurrency points, the optimized line remains above the baseline line, indicating higher throughput per GPU. At 75 tokens per second per user, the optimized configuration reaches about 1,255 TPS per GPU compared to about 998 TPS per GPU for baseline, marked with dashed guide lines and an annotation indicating a 1.26× improvement. As tokens per second per user increase, both lines slope downward, but the optimized kernels consistently deliver higher throughput than the baseline.
图 2. 通过在不同并发点进行内核优化实现性能提升。重点关注每用户 75 TPS 时的性能表现,经内核优化后,每个 GPU 的整体 token 吞吐量提升了 1.26 倍。

混合预填充与解码调度如何提升 GPU 利用率

虽然内核级优化能够改善单个操作的延迟,但通过优化聚合服务(在同一 GPU 上运行预填充和解码)与分解服务(在不同 GPU 上运行预填充和解码),可在调度程序层面实现显著的效率提升。

SGLang 引擎中聚合服务的默认调度策略是严格序列化预填充和解码阶段。在此默认模式下,GPU 会先处理一批预填充请求,待其全部完成后,才切换至解码阶段的处理。尽管这种做法简化了内存管理,但通常会导致 GPU 利用率不高。预填充阶段通常受计算限制(涉及密集矩阵乘法),而解码阶段则受内存限制(需频繁加载 KV 缓存)。由于两个阶段被串行执行,GPU 的 Tensor 核心单元(SM)在解码阶段难以充分使用,同时在预填充阶段,内存带宽也可能未能充分利用,尤其是在严格的 SLA 要求下导致的低并发操作点时更为明显。

为解决此问题,我们启用了混合批处理策略。该方法允许 SGLang 调度程序在同一批量或计算块中同时处理预填充 tokens 和解码 tokens。通过整合预填充 tokens 的处理与持续的解码请求,我们在 GPU 上实现了更均衡的资源配置。然而,这种优化引入了一定的权衡:将计算密集的预填充块混入解码流中,可能导致活动解码请求的 inter-token 延迟(ITL)上升,因其需等待共享计算资源。

但是,对于 Sarvam 30B 工作负载,我们发现这种影响极小,仍在我们 15 毫秒的 ITL SLA 范围内。作为交换,由于队列时间的缩短,端到端请求延迟得到显著改善。通过更快地清空预填充队列(在解码时附带),我们减少了等待请求启动的时间,从而将系统总吞吐量提升了 15%。这种调度优化在当前关注的高 ISL、低 OSL 场景中尤为有利。对于解码比例更高的场景,采用较小的混合数据块或完全禁用该数据块可能是更合适的选择。

Line chart titled “Impact of mixed prefill and decode chunks in SGLang aggregate serving.” The x-axis shows P95 request latency in milliseconds (lower is better), and the y-axis shows tokens per second per GPU (higher is better). Two lines are compared: a blue line for separate prefill and decode chunks and a red line for mixed chunks. At all latency points, the mixed-chunk line sits above the separate-chunk line, indicating higher throughput. Around the 2-second latency point, annotations show roughly 1,310 TPS per GPU for mixed chunks versus about 1,140 TPS per GPU for separate chunks, highlighted as an approximately 1.15× throughput improvement. As latency increases, both configurations scale to higher throughput, with mixed chunks consistently outperforming separate chunks.
图 3. 混合数据块调度的影响,在 2 秒请求延迟时,吞吐量提升 15%__ XTOKENX_XX。

分离服务如何消除关键路径并使吞吐量提升1.5倍

尽管改进了内核和调度,但我们的分析表明,token 分布(专家并行)的 GPU 间通信仍处于关键路径上。由于 Sarvam 30B 模型(通过 FP8 精度进行优化)可轻松适配单个 NVIDIA H100 SXM GPU 的显存,我们决定从模型并行转向分解服务。

我们重新配置了设置,通过 SGLang 路由器采用 1P+1D 策略:将一个 NVIDIA H100 SXM GPU 专门用于预填充,另一个用于解码。该方法消除了前向传递过程中在 GPU 之间路由 tokens 的开销。效果立竿见影:TTFT 显著降低(得益于预填充工作进程持续运行),同时每位用户的解码吞吐量大幅提升(较基准 H100 性能高出 1.5 倍),表明对于此模型规模,工作流分离的优势已超越聚合内存容量的收益。

Line chart titled “Performance impact of disaggregated serving with NVIDIA H100 SXM GPUs on Sarvam 30B model.” The x-axis shows tokens per second per user, and the y-axis shows tokens per second per GPU. Two lines are plotted: a light green for baseline aggregate EP2 configuration (unoptimized), an orange line for optimized aggregate EP2 configuration, and a green line for disaggregated 1P+1D optimized configuration. Across all user throughput points, the disaggregated configuration delivers the highest tokens per second per GPU, followed by the optimized aggregate configuration, with the baseline lowest. At 75 tokens per second per user, annotations show approximately 998 TPS/GPU for baseline, and about 1,995 TPS/GPU for disaggregated serving, highlighted with arrows indicating roughly a 2x× improvement over baseline.
图 4. 在 NVIDIA H100 SXM 上部署服务对 Sarvam 30B 模型的优势

内核、调度与分解优化的端到端影响

下图 5 总结了我们通过结合使用优化内核和调度优化所实现的端到端性能加速效果。我们还发现,针对该模型和 ISL/ OSL 工作负载模式,以及特定的 TTFT 和 ITL SLA 要求,解服务是较为理想的配置方案。

Bar chart titled “Performance optimization journey for Sarvam 30B on NVIDIA H100 SXM.” The y-axis shows token throughput ratio at 75 tokens per second per user, and the x-axis lists serving configurations. Three green bars show increasing performance with a gray bar as the baseline: “Baseline aggregated serving” at 1.00, “aggregated serving + optimized kernels” at 1.26 with notes about MoE GEMM shape tuning, router kernel optimization, fused normalization with RoPE, and shared expert overlap, “aggregated serving + optimal scheduling” at 1.31 with optimized kernels and mixed prefill and decode chunking, and “Disaggregated optimized” at 2.00 labeled as disaggregated prefill and decode (1P+1D configuration) with optimized kernels. The chart illustrates steady gains in throughput as kernel optimizations, scheduling improvements, and disaggregated serving are applied.
图 5. 通过结合内核优化、调度优化与分解服务,在 NVIDIA H100 SXM 上实现了 Sarvam 30B 模型推理的逐步改进。

在 Blackwell NVIDIA GPU 上运行 Sarvam 30B 模型

NVIDIA Blackwell 架构旨在加速生成式 AI。NVIDIA Blackwell GPU 可提供高达 20 PFLOPS 的 FP4 峰值计算能力和 8 TB/s 的显存带宽,性能超越 NVIDIA H100 GPU。这一吞吐量由第二代 Transformer 引擎驱动,该引擎采用全新的 NVFP4 格式,在保持高模型精度的同时,性能较 FP8 提升逾两倍。

为了利用 Sarvam 模型中的这些功能,我们采用 NVIDIA Model Optimizer 将基础 BF16 模型量化为 NVFP4 格式。与需多个 H100 GPU 的配置不同,NVIDIA HGX B200 仅使用一块 Blackwell GPU 即可高效地为 Sarvam 30B 模型提供服务。通过结合模型的内核与调度优化以及 NVIDIA Blackwell 的 NVFP4 计算吞吐能力,我们实现了推理服务吞吐量 4 倍的提升,达到每个用户操作点每秒 75 个 tokens 的处理速度。

如下图 6 所示,NVIDIA Blackwell GPU 凭借其卓越的计算能力,在低延迟条件下实现高性能,并依托显存容量优势,在高并发场景下展现出优异的吞吐能力。

Line chart titled “Performance comparison between NVIDIA B200 and NVIDIA H100 SXM for Sarvam 30B inference.” The x-axis shows tokens per second per user, and the y-axis shows tokens per second per GPU. Two lines are plotted: a green line for NVIDIA B200 (nvfp4, aggregate 1 GPU) and a light green line for NVIDIA H100 SXM (fp8, disaggregated 1P+1D). Across all operating points, the B200 line is significantly higher than the H100 line, indicating greater throughput per GPU. At 100 tokens per second per user, annotations show approximately 3,571 TPS per GPU for B200 versus about 1,274 TPS per GPU for H100, with an arrow highlighting roughly a 2.8x throughput advantage for B200. At the 75 tokens per second per user operating point, the B200 still maintains a 2x advantage over H100.
图 6. 与 NVIDIA H100 SXM GPU 相比,NVIDIA Blackwell GPU 在 100 TPS/用户操作点下,可将 token 吞吐量提升 2.8 倍。

了解详情

这项工作共同展示了将模型设计、内核工程、调度策略、量化和 GPU 架构视为一个整体系统而非独立组件时所能实现的潜力。通过在全栈范围内协同优化,Sarvam AI 与 NVIDIA 在满足现实世界部署所要求的严格 TTFT 和 inter-token 延迟目标的同时,显著提升了吞吐量与延迟表现。

这不仅是一个速度更快的模型,更是一个具备成本效益且符合主权要求的推理堆栈,能够扩展以支持国家级工作负载。这些实践经验为其他在 NVIDIA 平台上构建大型生产级 AI 系统的团队提供了 blueprint。

有关 Sarvam AI 模型的更多信息,请点击此处

要探索您自己的自主 AI 模型策略,可查看 NVIDIA Nemotron 框架和库,以便在本地基础设施上训练、微调和部署模型。

单击此处,深入了解 NVIDIA 的多云高性能 AI 推理解决方案 NVIDIA Cloud Functions

 

标签