当前位置: 首页 > news >正文

开发者必读:NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-BF16模型架构与代码实现详解

开发者必读:NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-BF16模型架构与代码实现详解

【免费下载链接】NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-BF16项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-BF16

NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-BF16是一款由NVIDIA开发的部署优化型大语言模型,基于Nemotron-3-Super-120B-A12B衍生而来。该模型采用迭代拼图(Iterative Puzzle)后训练压缩框架,在保持强大下游任务准确性的同时,显著提升了交互式、推理密集型和长上下文工作负载的推理效率。

模型核心特性与优势 🚀

作为一款针对部署优化的大型语言模型,Puzzle-75B-A9B具有以下核心特性:

  • 混合架构设计:采用交错的Mamba、MoE和Attention层的混合MoE架构
  • 多令牌预测:支持Multi-Token Prediction (MTP),实现更快的文本生成
  • 参数优化:相比父模型从120.7B总参数/12.8B活跃参数减少到75.3B总参数/9.3B活跃参数
  • 效率提升:在单个8×B200节点上实现约2倍的服务器吞吐量提升
  • 长上下文支持:在1M令牌长度下,单H100并发请求从1个增加到8个
  • 多语言能力:支持英语、法语、德语、意大利语、日语、西班牙语和中文

模型架构深度解析 🔍

整体架构概览

Puzzle-75B-A9B的架构类型为Mamba2-Transformer混合潜在专家混合体(LatentMoE),并结合了多令牌预测(MTP)技术。其网络架构基于Nemotron-3-Super-120B-A12B-BF16修改而来,具有更小的Mamba SSM状态大小、每层不同数量的活跃专家以及跨层变化的专家中间通道大小。

创新压缩技术

模型通过多阶段流水线构建,结合了迭代拼图压缩框架与知识蒸馏、强化学习、量化和多令牌预测头等技术。压缩过程针对三个架构维度进行优化:

  1. 异构MoE通道剪枝:路由专家中间维度在MoE层间非均匀剪枝,从父模型的2688减少到1280-2688的层相关范围
  2. 异构活跃专家减少:每个令牌激活的路由专家数量从父模型的22个减少到4-18个的层相关范围
  3. Mamba SSM状态剪枝:Mamba SSM状态大小从128减少到96通道,减少Mamba缓存I/O并提高解码阶段效率

代码实现详解 💻

配置类设计

Puzzle模型的配置类NemotronHPuzzleConfig继承自NemotronHConfig,支持异构层配置。关键实现位于configuration_nemotron_h_puzzle.py:

class NemotronHPuzzleConfig(NemotronHConfig): model_type = "nemotron_h_puzzle" def __init__(self, **kwargs): self.block_configs = [] if "block_configs" in kwargs: self.block_configs, layers_block_type = build_block_configs(kwargs.pop("block_configs")) kwargs["layers_block_type"] = layers_block_type # MTP相关配置处理 # ... super().__init__(**kwargs) self._validate_block_field_consistency() self._delete_blockwise_members_from_global_config()

该配置类支持为每个层定义不同的配置,包括MoE中间大小、每令牌专家数量等参数,实现了模型的异构层设计。

模型块实现

Puzzle模型的核心块实现位于modeling_nemotron_h_puzzle.py,通过继承和猴子补丁技术实现对父类的扩展:

class NemotronHPuzzleBlock(NemotronHBlock): def __init__(self, config: NemotronHPuzzleConfig, layer_idx: int): layer_config = config.get_nemotron_h_config_for_layer(layer_idx) super().__init__(config=layer_config, layer_idx=layer_idx) class NemotronHPuzzleForCausalLM(NemotronHForCausalLM): config_class = NemotronHPuzzleConfig _no_split_modules = ["NemotronHPuzzleBlock"] def __init__(self, config): original_block_class = modeling_nemotron_h.NemotronHBlock try: modeling_nemotron_h.NemotronHBlock = NemotronHPuzzleBlock super().__init__(config) finally: modeling_nemotron_h.NemotronHBlock = original_block_class

这种实现方式最大化了代码复用,同时允许每个层从其自己的每层配置构建,实现了异构层架构。

配置获取方法

get_nemotron_h_config_for_layer方法是实现异构层配置的关键,它为特定层构建匹配其块配置的NemotronHConfig:

def get_nemotron_h_config_for_layer(self, layer_idx: int) -> NemotronHConfig: config_dict = self.to_dict() if layer_idx < self.num_hidden_layers: block_configs = config_dict["block_configs"] else: # MTP层处理逻辑 # ... block_config = block_configs[layer_idx] config_dict.update(block_config) # 删除块配置,避免递归问题 del config_dict["block_configs"] del config_dict["mtp_block_configs"] nemotron_h_config = NemotronHConfig.from_dict(config_dict) nemotron_h_config._attn_implementation = self._attn_implementation return nemotron_h_config

训练与优化流程 📊

Puzzle-75B-A9B通过以下四个主要阶段产生:

阶段1:迭代拼图压缩

模型通过三个压缩和恢复阶段构建,每个阶段将模型剪枝到特定的中间目标预算,然后执行短期知识蒸馏恢复阶段:

  • 第一阶段:将MoE权重减少到教师容量的75%,Mamba SSM状态大小减少到教师大小的75%,使用24B令牌进行知识蒸馏恢复
  • 第二阶段:将MoE权重进一步减少到教师容量的60%,使用43.2B令牌进行恢复
  • 第三阶段:将激活的路由专家预算限制在教师预算的50%,使用52.8B令牌进行恢复

阶段2:长上下文知识蒸馏恢复

压缩后模型从Nemotron-3-Super进行额外知识蒸馏,恢复压缩过程中丢失的质量和长上下文能力。训练使用30%预训练数据和70%监督微调数据的混合,在32Ki、128Ki和512Ki序列长度上进行。

阶段3:强化学习(RL)恢复

模型进行强化学习恢复,主要关注软件工程和代理能力,包括单步工具使用比较训练和端到端沙盒RL。使用NeMo-RL软件进行强化学习。

阶段4:部署优化

最终检查点通过训练后量化进一步准备部署,FP8检查点针对Hopper级GPU,而NVFP4检查点针对Blackwell级GPU。模型还使用持续MTP训练来提高推测解码接受长度并增加服务吞吐量。

快速部署指南 🚀

使用vLLM部署

要在NVIDIA Hopper GPU上部署Nemotron Labs 3 Puzzle BF16和FP8检查点,可使用以下命令:

vllm serve "$path" \ --served-model-name "$model" \ --port "$port" \ --tensor-parallel-size "$tp" \ --enable-expert-parallel \ --async-scheduling \ --trust-remote-code \ --mamba-backend flashinfer \ --speculative-config '{"method":"mtp","num_speculative_tokens":3}' \ --tool-call-parser qwen3_coder \ --reasoning-parser nemotron_v3 \ --enable-auto-tool-choice \ --gpu-memory-utilization 0.85

注意

  • 在vLLM v0.20.0上测试通过
  • NVIDIA建议将tp设置为2或4
  • 对于MTP,num_speculative_tokens=3是推荐的默认值
  • 对于NVIDIA H200 SXM部署,建议使用--gpu-memory-utilization 0.9

Transformers库使用示例

推荐使用Transformers ≥ 5.3.0:

import torch from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("nvidia/NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-BF16") model = AutoModelForCausalLM.from_pretrained( "nvidia/NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-BF16", torch_dtype=torch.bfloat16, device_map="auto", trust_remote_code=True )

生成示例:

messages = [ {"role": "user", "content": "Write a haiku about GPUs"}, ] tokenized_chat = tokenizer.apply_chat_template( messages, tokenize=True, add_generation_prompt=True, return_tensors="pt" ).to(model.device) outputs = model.generate( tokenized_chat, max_new_tokens=50, temperature=1.0, top_p=0.95, eos_token_id=tokenizer.eos_token_id ) print(tokenizer.decode(outputs[0]))

性能基准测试 📈

Puzzle-75B-A9B在保持高性能的同时实现了效率提升,以下是部分关键基准测试结果:

基准测试Puzzle-75B-A9BNemotron-3-Super-120B
一般知识
MMLU-Pro82.483.8
推理能力
AIME25 (无工具)89.792.2
HMMT Feb25 (无工具)93.494.2
GPQA (无工具)78.680.5
LiveCodeBench81.182.1
长上下文
RULER @ 1M92.293.9

所有评估结果均通过Nemo Evaluator SDK收集,大部分基准测试使用Nemo Skills Harness。

总结

NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-BF16代表了大型语言模型部署优化的重要进展,通过创新的压缩技术和异构架构设计,在保持高性能的同时显著提升了推理效率。其混合MoE架构、多令牌预测支持以及对长上下文的优化,使其成为构建AI代理系统、聊天机器人、RAG系统和其他AI驱动应用的理想选择。

无论是对于需要处理复杂指令遵循任务的开发者,还是需要长上下文推理能力的应用场景,Puzzle-75B-A9B都提供了强大而高效的解决方案。通过本文详细的架构解析和代码实现指南,开发者可以更好地理解和利用这一先进模型,构建下一代AI应用。

要开始使用该模型,请克隆仓库:git clone https://gitcode.com/hf_mirrors/nvidia/NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-BF16

【免费下载链接】NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-BF16项目地址: https://ai.gitcode.com/hf_mirrors/nvidia/NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-BF16

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.cnnetsun.cn/news/3271071.html

相关文章:

  • 成本效益分析:llama-nemotron-embed-vl-1b-v2在云服务和本地部署中的经济性对比
  • BI 看板加载优化:指标计算前推还是缓存预计算
  • 卡美德生物科普PDGFA(血小板衍生生长因子A)
  • LIExposeController高级用法:自定义Header/Footer与动画效果
  • eShopOnAbp测试策略:单元测试与集成测试完整指南
  • 只懂采购永远升不上总监!SCMP 项目补齐全链路短板,中研供应链实战课打破中层天花板
  • Cosmos3-Nano-Policy-DROID商业应用案例:制造业、物流、服务机器人的成功实践 [特殊字符]
  • 从零开始制作FOC轮腿机器人:开源DIY完整指南
  • NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-NVFP4强化学习恢复:软件工程能力提升的终极指南
  • 如何构建基于NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-NVFP4的RAG系统:完整指南
  • Honey Select 2汉化增强补丁:一站式解决方案让你的游戏体验全面提升
  • 为什么llama-nemotron-embed-vl-1b-v2在ViDoRe基准测试中表现卓越?深度技术解析
  • 如何快速部署MiniMax-M2.7-NVFP4:5分钟搭建高性能AI推理服务
  • 为什么越来越多的人开始使用ISP代理?
  • CANN/ops-math 偏置加法算子
  • NVIDIA-Nemotron-Labs-3-Puzzle-75B-A9B-BF16震撼发布:2倍吞吐量与1M长上下文的革命性AI模型
  • CANN/hixl C++通用编码规范
  • 2026 年 7 月 AI 模型价格战全解析:五大供应商价格、性能、选型指南
  • PIC18LF27K40驱动CMT-8540S-SMT蜂鸣器的智能硬件声音方案
  • PHP The Right Way设计模式实战:如何在PHP中正确应用23种经典设计模式
  • virtual-scroller架构设计:理解虚拟化渲染的核心机制
  • STM32与PAM8904实现高效音频驱动方案
  • 理解Meta-Llama-3.1-8B-Instruct-FP8-KV的许可证:AMD修改版权与使用限制说明
  • virtual-scroller可访问性设计:确保虚拟化内容的无障碍体验
  • 从零开始:如何快速使用Omni-Dreams-Models构建你的第一个AI应用
  • LLMDet-Swin-Tiny-HF论文精读:从arxiv到CVPR,看大语言模型如何革新目标检测
  • 3步解锁微信网页版:免安装浏览器插件让工作沟通零障碍
  • NVIDIA GLM-5-NVFP4 vs 原始GLM-5:量化模型在精度与效率上的平衡艺术
  • 网盘直链下载助手:告别限速困扰,九大平台一键获取真实下载链接
  • 如何利用Omni-Dreams-Models优化你的AI工作流程:3个实用技巧