🚀 Llama-3_1-Nemotron-51B-instruct
Llama-3_1-Nemotron-51B-instruct是一款大語言模型,在模型準確性和效率之間實現了出色的平衡。它通過獨特的方法減少了內存佔用,能在單GPU上處理高負載任務,並且適用於商業用途。
🚀 快速開始
我們的代碼要求transformers
包的版本為4.44.2或更高。
以下是使用transformers
的代碼片段:
import torch
import transformers
model_id = "nvidia/Llama-3_1-Nemotron-51B-Instruct"
model_kwargs = {"torch_dtype": torch.bfloat16, "trust_remote_code": True, "device_map": "auto"}
tokenizer = transformers.AutoTokenizer.from_pretrained(model_id)
tokenizer.pad_token_id = tokenizer.eos_token_id
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
tokenizer=tokenizer,
max_new_tokens=20,
**model_kwargs
)
print(pipeline([{"role": "user", "content": "Hey how are you?"}]))
✨ 主要特性
- 在模型準確性和效率之間實現了出色的平衡,效率(吞吐量)直接影響成本,提供了高“性價比”。
- 使用新穎的神經架構搜索(NAS)方法,大大減少了模型的內存佔用,能夠處理更大的工作負載,並且可以在單個H100 - 80GB GPU上以高負載運行。
- 經過知識蒸餾(KD),專注於英語單輪和多輪聊天用例。
- 是一個通用的聊天模型,適用於英語和編碼語言,也支持其他非英語語言。
📦 安裝指南
代碼要求transformers
包的版本為4.44.2或更高。
💻 使用示例
基礎用法
import torch
import transformers
model_id = "nvidia/Llama-3_1-Nemotron-51B-Instruct"
model_kwargs = {"torch_dtype": torch.bfloat16, "trust_remote_code": True, "device_map": "auto"}
tokenizer = transformers.AutoTokenizer.from_pretrained(model_id)
tokenizer.pad_token_id = tokenizer.eos_token_id
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
tokenizer=tokenizer,
max_new_tokens=20,
**model_kwargs
)
print(pipeline([{"role": "user", "content": "Hey how are you?"}]))
📚 詳細文檔
模型概述
Llama-3_1-Nemotron-51B-instruct是一款在模型準確性和效率之間取得良好平衡的模型。效率(吞吐量)直接關係到成本,該模型提供了高“性價比”。通過使用新穎的神經架構搜索(NAS)方法,大大減少了模型的內存佔用,使得能夠處理更大的工作負載,並且可以在單個H100 - 80GB GPU上以高負載運行。這種NAS方法可以在準確性 - 效率的權衡中選擇理想的點。該模型可用於商業用途。
模型開發方式
Llama-3_1-Nemotron-51B-instruct是一個大語言模型(LLM),它是Llama-3.1 - 70B-instruct(又名參考模型)的衍生模型。我們對參考模型進行逐塊蒸餾,為每個塊創建多個變體,提供不同的質量與計算複雜度的權衡。然後在這些塊中進行搜索,以創建一個滿足所需吞吐量和內存(針對單個H100 - 80GB GPU進行優化)的模型,同時最小化質量下降。然後,該模型進行知識蒸餾(KD),重點關注英語單輪和多輪聊天用例。
KD步驟包含400億個標記,由3個數據集混合而成 - FineWeb、Buzz - V1.2和Dolma。
相關鏈接:NIM、博客和huggingface
最終得到的模型符合人類聊天偏好。
模型信息
屬性 |
詳情 |
模型開發者 |
NVIDIA |
模型輸入 |
僅文本 |
模型輸出 |
僅文本 |
模型訓練時間 |
2024年8月至9月 |
數據新鮮度 |
預訓練數據截止到2023年 |
蒸餾期間使用的序列長度 |
8192 |
所需硬件
- FP8推理(推薦):1個H100 - 80GB GPU
- BF16推理:2個H100 - 80GB GPU或2個A100 - 80GB GPU
模型架構
該模型是Llama-3.1 - 70B的衍生模型,使用了神經架構搜索(NAS)。NAS算法產生了非標準和非重複的塊,包括以下內容:
- 可變分組查詢注意力(VGQA):每個塊可以有不同數量的KV(鍵和值)頭,範圍從1到Llama典型的8個。
- 跳過注意力:在某些塊中,注意力被完全跳過,或者被單個線性層取代。
- 可變前饋網絡(FFN):FFN層中的擴展/壓縮比在不同塊之間不同。
架構類型:Transformer解碼器(自迴歸語言模型)
軟件集成
- 運行時引擎:NeMo 24.05
- 支持的硬件架構兼容性:NVIDIA H100、A100 80GB(BF16量化)
- 首選/支持的操作系統:Linux
預期用途
Llama-3_1-Nemotron-51B-Instruct是一個通用的聊天模型,旨在用於英語和編碼語言,也支持其他非英語語言。
評估結果
數據收集方法
自動化
MT - Bench
使用Judging LLM - as - a - Judge with MT - Bench and Chatbot Arena中的選定數據集進行評估,MT - bench得分為8.99。
MMLU
使用Measuring Massive Multitask Language Understanding中引入的多任務語言理解基準進行評估。
GSM8K
使用Training Verifiers to Solve Math Word Problems中引入的小學算術8K(GSM8K)基準進行評估。
Winogrande
Arc - C
Hellaswag
Truthful QA
侷限性
該模型在包含有毒語言、不安全內容和社會偏見的數據上進行訓練,這些數據最初是從互聯網上爬取的。因此,該模型可能會放大這些偏見,並在受到有毒提示時返回有毒響應。即使提示本身不包含任何明確的冒犯性內容,該模型也可能生成不準確的答案,遺漏關鍵信息,或者包含無關或冗餘的文本,產生社會不可接受或不良的文本。
該模型在對抗對齊破壞攻擊方面表現較弱。建議用戶在使用該模型時部署語言模型護欄,以防止潛在的有害輸出。
對抗測試和紅隊評估
Llama-3_1-Nemotron-51B-instruct模型經過了廣泛的安全評估,包括通過三種不同方法進行的對抗測試:
- Garak:一個自動化的大語言模型漏洞掃描器,用於探測常見的弱點,包括提示注入和數據洩露。
- AEGIS:一個內容安全評估數據集和基於大語言模型的內容安全分類器模型,遵循人類與大語言模型交互中13類關鍵風險的廣泛分類法。
- 人工內容紅隊評估:利用人類對模型響應的交互和評估。
推理
- 推理引擎:Tensor(RT)
- 測試硬件:H100 - 80GB
倫理考量
NVIDIA認為可信AI是一項共同責任,我們已經制定了政策和實踐,以支持廣泛的AI應用開發。當按照我們的服務條款下載或使用時,開發者應與他們的內部模型團隊合作,確保該模型滿足相關行業和用例的要求,並解決不可預見的產品濫用問題。
請在此報告安全漏洞或NVIDIA AI相關問題。
🔧 技術細節
模型架構
該模型是Llama-3.1 - 70B的衍生模型,使用了神經架構搜索(NAS)。NAS算法產生了非標準和非重複的塊,包括可變分組查詢注意力(VGQA)、跳過注意力和可變前饋網絡(FFN)。
知識蒸餾
模型進行了知識蒸餾(KD),重點關注英語單輪和多輪聊天用例。KD步驟包含400億個標記,由3個數據集混合而成 - FineWeb、Buzz - V1.2和Dolma。
📄 許可證
您使用此模型受NVIDIA開放模型許可證的約束。
附加信息:Llama 3.1社區許可協議。該模型基於Llama構建。