NVIDIA 與 Mistral 合作構建了下一代語言模型,該模型可在其類別中的基準測試中實現領先的性能。
隨著越來越多的語言模型專為選定任務而構建,NVIDIA Research 和 Mistral AI 結合力量,提供了一個通用、開放、高性能且在單個 GPU 上運行的語言模型。
本文將探討 Mistral NeMo 的優勢、訓練和推理優化,以及其在各種用例中的適用性,最后討論與NVIDIA NIM的部署易用性。
Mistral NeMo 12B
Mistral NeMo 是一個 12B 參數、僅使用文本解碼器的密集 Transformer 模型,使用大小為 131K 的多語種詞匯表進行訓練。它在常見的基準測試中提供領先的準確性,涵蓋常識推理、世界知識、編碼、數學以及多語種和多回合聊天任務。
模型 | 上下文窗口 | HellaSwag (0-shot) | Winograd (0-shot) | NaturalQ (5-shot) | TriviaQA (5-shot) | MMLU (5-shot) | OpenBookQA (0-shot) | CommonSenseQA (0-shot) | TruthfulQA (0-shot) | MBPP (pass@1 3-shots) |
Mistral NeMo 12B | 12.8 萬 | 83.5% | 76.8% | 31.2% | 73.8% | 68.0% | 60.6% | 70.4% | 50.3% | 61.8% |
Gemma 2 9B | 8k | 80.4% | 74.0% | 29.8% | 71.3% | 71.5% | 50.8% | 60.8% | 46.6% | 56.0% |
Llama 3 8B | 8k | 80.6% | 73.5% | 28.2% | 61.0% | 62.3% | 56.4% | 66.7% | 43.0% | 57.2% |
該模型支持 128K 上下文長度,增強了理解能力和處理大量復雜信息的能力,從而實現更一致、更準確和與上下文相關的輸出。
Mistral NeMo 基于 Mistral 的專有數據集進行訓練,該數據集包含大量多語種和代碼數據,從而實現更好的特征學習、減少偏見,并提高處理多樣和復雜場景的能力。
優化訓練
該模型使用 NVIDIA Megatron-LM 進行訓練,這是一個開源庫,基于 PyTorch,包含一系列 GPU 優化技術、先進的系統級創新和模塊化 API,用于大規模模型訓練。
Megatron-LM, NVIDIA NeMo 的一部分,為分布式文本訓練提供核心構建塊:原生內置于庫中的多模態和 mixture of experts (MoE) 模型。
- 注意力機制
- Transformer 塊和層
- 歸一化層
- 嵌入技術
- 激活重新計算
- 分布式檢查點
優化推理
Mistral NeMo 已使用 TensorRT-LLM 引擎進行優化,以實現更高的推理性能。TensorRT-LLM 將模型編譯為 TensorRT 引擎,從模型層編譯為優化的 CUDA 內核,以最大限度地提高推理性能。這是通過模式匹配和融合實現的。這些引擎由 TensorRT-LLM 運行時執行,其中包括多項優化。
使用 NVIDIA TensorRT-Model-Optimizer 還支持 FP8 精度中的推理。通過在 NVIDIA Hopper 和 NVIDIA Ada GPU 上使用 后訓練量化 (Post Training Quantization),您可以創建內存占用更少、模型更小的模型,從而優化和降低模型復雜性,同時不會影響準確性。
此模型適用于單個 GPU,可提高計算效率、降低計算成本并增強安全性和隱私性。在一系列商業用例中運行該模型,包括總結長文檔、分類、多回合對話、語言翻譯和代碼生成。
NVIDIA NIM
Mistral NeMo 模型被打包為 NVIDIA NIM 推理微服務,以簡化和加速生成式 AI 模型在 NVIDIA 加速基礎設施中的部署,包括云、數據中心和工作站。
NIM 使用推理優化引擎、工業標準 APIs 和預構建容器,提供可隨需求擴展的高吞吐量 AI 推理。它支持語音、圖像、視頻、醫療健康等領域的各種生成式 AI 模型。
NVIDIA NIM 可提供出色的吞吐量,使企業生成 tokens 的速度提升高達 5 倍。對于生成式 AI 應用,token 處理是關鍵的性能指標,而 token 吞吐量的增加直接轉化為企業收入的增加。
Mistral NeMo 具有開放的 Apache 2.0 許可證,該許可證為企業提供了自定義模型并將其集成到商業應用程序中的靈活性。
以下是如何測試 NeMo 模型以執行編程任務。
編碼 Copilot
編碼是該模型支持的熱門用例,可通過 AI 驅動的代碼建議提高開發者的工作效率。編碼 copilot 不僅提供內聯代碼建議,還可以生成代碼、文檔、注釋、單元測試和錯誤修復,所有這些都可以通過行業標準 APIs 輕松訪問。

以下是 Mistral NeMo 通過英語語言提示生成的語法和功能正確的代碼。您可以將以下內容粘貼到開發環境中。要生成其他代碼示例,請參閱 NVIDIA API 目錄。
import torch import torch.nn as nn import torch.nn.functional as F # Define the neural network class Net(nn.Module): def __init__( self ): super (Net, self ).__init__() # Convolutional layers self .conv1 = nn.Conv2d( 3 , 16 , kernel_size = 3 , stride = 1 , padding = 1 ) self .conv2 = nn.Conv2d( 16 , 32 , kernel_size = 3 , stride = 1 , padding = 1 ) # Fully connected layer self .fc = nn.Linear( 32 * 8 * 8 , 10 ) # Assuming input image size is 32x32 def forward( self , x): # Add convolutional layers with ReLU activation and max pooling x = F.relu( self .conv1(x)) x = F.max_pool2d(x, 2 ) x = F.relu( self .conv2(x)) x = F.max_pool2d(x, 2 ) # Flatten the tensor before passing it to the fully connected layer x = x.view( - 1 , 32 * 8 * 8 ) # Add fully connected layer with log softmax for multi-class classification x = self .fc(x) output = F.log_softmax(x, dim = 1 ) return output # Create an instance of the neural network net = Net() # Print the model architecture print (net) # Test the forward pass with a dummy input dummy_input = torch.randn( 1 , 3 , 32 , 32 ) # Batch size of 1, 3 channels, 32x32 image size output = net(dummy_input) print ( "Test output:\n" , output) |
您可能還想使用域數據微調模型,以生成更高準確度的響應。NVIDIA 提供工具,以便模型與您的用例保持一致。
模型定制
在 MT Bench、MixEval-Hard、IFEval-v5 和 WildBench 等多個基準測試中,Mistral NeMo 模型的指令調整變體在類似大小的語言模型中提供了強勁的性能。
您可以使用NVIDIA NeMo,一個端到端平臺,用于隨時隨地開發自定義生成式 AI,根據自己的特定需求對其進行進一步定制。
NeMo 通過參數高效微調 (Parameter-Efficient Fine-Tuning, PEFT) 技術 (包括 p-tuning、低階自適應 (Low-Rank Adaption, LoRA) 及其量化版本 (Quantized LoRA, QLoRA)) 提供先進的微調和對齊支持。這些技術有助于創建自定義模型,而無需大量計算能力。
NeMo 還支持 監督式微調 (SFT) 和對齊技術,例如 從人類反饋中進行強化學習 (RLHF), 直接偏好優化 (DPO), 和 NeMo SteerLM。這些技術使模型響應能夠進一步與人類偏好保持一致,從而使 Large Language Models (LLMs) 隨時可以集成到自定義應用中。
開始使用
要體驗 Mistral NeMo NIM 微服務,請參閱Artificial Intelligence解決方案頁面。您還可以找到熱門模型,例如Llama 3.1 405B、Mixtral 8X22B和Gemma 2B。
借助免費的 NVIDIA 云計算積分,您可以開始大規模測試模型,并通過將應用程序連接到在完全加速的堆棧上運行的 NVIDIA 托管 API 端點來構建概念驗證(POC)。
?