🚀 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):各ブロックは、1からLlamaの典型的な8までの異なる数のKV(キーと値)ヘッドを持つことができます。
- スキップアテンション:一部のブロックでは、アテンションが完全にスキップされるか、単一の線形層に置き換えられます。
- 可変フィードフォワードネットワーク(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
Winogrande(5回のプロンプト) |
84.53% |
Arc - C
Arcチャレンジ(25回のプロンプト) |
69.20% |
Hellaswag
Hellaswag(10回のプロンプト) |
85.58% |
Truthful QA
TruthfulQA(0回のプロンプト) |
58.63% |
制限事項
このモデルは、有毒な言語、不安全な内容、および社会的偏見を含むデータで学習されており、これらのデータは当初インターネットから収集されたものです。したがって、このモデルはこれらの偏見を拡大する可能性があり、有毒なプロンプトを受け取った場合に有毒な応答を返すことがあります。プロンプト自体に明確な不快な内容が含まれていなくても、このモデルは不正確な答えを生成したり、重要な情報を見落としたり、関係のないまたは冗長なテキストを含んだり、社会的に受け入れられないまたは不適切なテキストを生成することがあります。
このモデルは、対抗的なアライメント破壊攻撃に対して脆弱です。ユーザーは、このモデルを使用する際に言語モデルのガードレールを導入して、潜在的な有害な出力を防止することをお勧めします。
対抗テストとレッドチーム評価
Llama-3_1-Nemotron-51B-instructモデルは、広範なセキュリティ評価を受けており、3つの異なる方法による対抗テストが行われています。
- 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をベースに構築されています。