モデル概要
モデル特徴
モデル能力
使用事例
🚀 AceMath-RL-Nemotron-7B GGUFモデル
AceMath-RL-Nemotron-7Bは、強化学習(RL)によって訓練された数学推論モデルです。Deepseek-R1-Distilled-Qwen-7Bをベースに構築され、AIME 2024やAIME 2025などの数学ベンチマークで高い精度を達成しています。また、LiveCodeBenchでのコーディング精度も向上しており、RL訓練の汎化能力を示しています。
🚀 クイックスタート
以下は、AceMath-RL-Nemotron-7Bモデルを使用する基本的なPythonコード例です。
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = 'nvidia/AceMath-RL-Nemotron-7B'
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto", device_map="auto")
prompt = "Jen enters a lottery by picking $4$ distinct numbers from $S=\\{1,2,3,\\cdots,9,10\\}.$ $4$ numbers are randomly chosen from $S.$ She wins a prize if at least two of her numbers were $2$ of the randomly chosen numbers, and wins the grand prize if all four of her numbers were the randomly chosen numbers. The probability of her winning the grand prize given that she won a prize is $\\tfrac{m}{n}$ where $m$ and $n$ are relatively prime positive integers. Find $m+n$."
messages = [{"role": "user", "content": prompt}]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to("cuda")
generated_ids = model.generate(
**model_inputs,
max_new_tokens=32768,
temperature=0.6,
top_p=0.95
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
✨ 主な機能
- 高精度な数学推論:AIME 2024で69.0%のPass@1精度、AIME 2025で53.6%のPass@1精度を達成。
- コーディング精度の向上:LiveCodeBenchでのコーディング精度が44.4%のPass@1に達し、6.8%の向上。
- 多様なモデル形式:BF16、F16、Q4_K、Q6_Kなど、ハードウェア能力やメモリ制約に合わせた選択が可能。
📦 インストール
このモデルを使用するには、transformers
ライブラリが必要です。以下のコマンドでインストールできます。
pip install transformers
📚 ドキュメント
モデル生成詳細
このモデルは、llama.cppのコミット19e899c
を使用して生成されました。
超低ビット量子化(1 - 2ビット)
最新の量子化方法では、超低ビットモデル(1 - 2ビット)に対して精度適応型量子化を導入し、Llama-3-8Bでのベンチマークで改善が実証されています。このアプローチでは、レイヤー固有の戦略を使用して、極端なメモリ効率を維持しながら精度を維持します。
ベンチマークの条件
- 対象モデル:Llama-3-8B-Instruct
- 評価パイプライン:標準的なパープレキシティ評価パイプライン
- コンテキストウィンドウ:2048トークン
- プロンプトセット:すべての量子化で同じ
量子化方法
- 動的精度割り当て
- 最初と最後の25%のレイヤー:IQ4_XS(選択されたレイヤー)
- 中央の50%:IQ2_XXS/IQ3_S(効率向上)
- 重要コンポーネント保護
- 埋め込み/出力レイヤーはQ5_Kを使用
- 標準的な1 - 2ビット量子化と比較して、エラー伝播を38%削減
量子化性能比較(Llama-3-8B)
量子化方式 | 標準PPL | DynamicGate PPL | ΔPPL | 標準サイズ | DGサイズ | Δサイズ | 標準速度 | DG速度 |
---|---|---|---|---|---|---|---|---|
IQ2_XXS | 11.30 | 9.84 | -12.9% | 2.5G | 2.6G | +0.1G | 234s | 246s |
IQ2_XS | 11.72 | 11.63 | -0.8% | 2.7G | 2.8G | +0.1G | 242s | 246s |
IQ2_S | 14.31 | 9.02 | -36.9% | 2.7G | 2.9G | +0.2G | 238s | 244s |
IQ1_M | 27.46 | 15.41 | -43.9% | 2.2G | 2.5G | +0.3G | 206s | 212s |
IQ1_S | 53.07 | 32.00 | -39.7% | 2.1G | 2.4G | +0.3G | 184s | 209s |
キー
- PPL = パープレキシティ(低いほど良い)
- ΔPPL = 標準からDynamicGateへのパープレキシティの変化率
- 速度 = 推論時間(CPU avx2、2048トークンコンテキスト)
- サイズの違いは混合量子化のオーバーヘッドを反映
これらのモデルを使用するシーン
- GPU VRAMにモデルを収める場合
- メモリ制約のあるデプロイメント
- 1 - 2ビットのエラーが許容されるCPUやエッジデバイス
- 超低ビット量子化の研究
適切なモデル形式の選択
モデル形式の選択は、ハードウェア能力とメモリ制約に依存します。
BF16(Brain Float 16) - BF16アクセラレーションが利用可能な場合に使用
- 高速な計算を目的とした16ビット浮動小数点形式で、良好な精度を維持します。
- FP32と同様のダイナミックレンジを提供し、低いメモリ使用量。
- ハードウェアがBF16アクセラレーションをサポートしている場合に推奨(デバイスの仕様を確認)。
- FP32と比較して、低いメモリフットプリントでの高性能推論に最適。
使用する場合
- ハードウェアがネイティブのBF16サポートを持っている場合(例:新しいGPU、TPU)
- メモリを節約しながらより高い精度が必要な場合
- モデルを別の形式に再量子化する予定の場合
避ける場合
- ハードウェアがBF16をサポートしていない場合(FP32にフォールバックし、低速になる可能性がある)
- BF16最適化を持たない古いデバイスとの互換性が必要な場合
F16(Float 16) - BF16よりも広くサポートされている
- 16ビット浮動小数点形式で、高い精度を持ち、BF16よりも値の範囲が狭い。
- ほとんどのFP16アクセラレーションをサポートするデバイス(多くのGPUや一部のCPUを含む)で動作します。
- BF16よりもわずかに低い数値精度ですが、一般的に推論には十分です。
使用する場合
- ハードウェアがFP16をサポートしているが、BF16をサポートしていない場合
- 速度、メモリ使用量、精度のバランスが必要な場合
- GPUまたはFP16計算に最適化された他のデバイスで実行する場合
避ける場合
- デバイスがネイティブのFP16サポートを持っていない場合(予想よりも低速になる可能性がある)
- メモリ制約がある場合
量子化モデル(Q4_K、Q6_K、Q8など) - CPUと低VRAM推論用
量子化は、モデルサイズとメモリ使用量を削減しながら、できるだけ精度を維持します。
- 低ビットモデル(Q4_K):最小限のメモリ使用量に最適で、精度が低い可能性があります。
- 高ビットモデル(Q6_K、Q8_0):より高い精度を提供し、より多くのメモリを必要とします。
使用する場合
- CPUで推論を実行し、最適化されたモデルが必要な場合
- デバイスのVRAMが少なく、フル精度のモデルをロードできない場合
- 合理的な精度を維持しながら、メモリフットプリントを削減したい場合
避ける場合
- 最大精度が必要な場合(フル精度のモデルが適しています)
- ハードウェアに十分なVRAMがあり、より高精度の形式(BF16/F16)が使用できる場合
超低ビット量子化(IQ3_XS、IQ3_S、IQ3_M、Q4_K、Q4_0)
これらのモデルは、極端なメモリ効率を目的として最適化されており、低電力デバイスまたはメモリが重要な制約となる大規模デプロイメントに最適です。
- IQ3_XS:超低ビット量子化(3ビット)で、極端なメモリ効率を実現。
- 使用例:Q4_Kでも大きすぎる超低メモリデバイスに最適。
- トレードオフ:高ビット量子化と比較して精度が低い。
- IQ3_S:最大のメモリ効率を実現する小さなブロックサイズ。
- 使用例:IQ3_XSが過度に激しい低メモリデバイスに最適。
- IQ3_M:IQ3_Sよりも精度が高い中規模ブロックサイズ。
- 使用例:IQ3_Sが制限的すぎる低メモリデバイスに適しています。
- Q4_K:ブロック単位の最適化により、精度が向上した4ビット量子化。
- 使用例:Q6_Kが大きすぎる低メモリデバイスに最適。
- Q4_0:純粋な4ビット量子化で、ARMデバイス用に最適化されています。
- 使用例:ARMベースのデバイスまたは低メモリ環境に最適。
モデル形式選択のまとめ
モデル形式 | 精度 | メモリ使用量 | デバイス要件 | 最適な使用シーン |
---|---|---|---|---|
BF16 | 最高 | 高 | BF16対応のGPU/CPU | 低メモリでの高速推論 |
F16 | 高 | 高 | FP16対応のデバイス | BF16が利用できない場合のGPU推論 |
Q4_K | 中低 | 低 | CPUまたは低VRAMデバイス | メモリ制約のある環境に最適 |
Q6_K | 中 | 中程度 | より多くのメモリを持つCPU | 量子化されたままでも精度が良い |
Q8_0 | 高 | 中程度 | 十分なVRAMを持つCPUまたはGPU | 量子化モデルの中で最高の精度 |
IQ3_XS | 非常に低 | 非常に低 | 超低メモリデバイス | 極端なメモリ効率と低精度 |
Q4_0 | 低 | 低 | ARMまたは低メモリデバイス | llama.cppがARMデバイス用に最適化できる |
含まれるファイルと詳細
AceMath-RL-Nemotron-7B-bf16.gguf
- モデルの重みがBF16で保存されています。
- モデルを別の形式に再量子化したい場合に使用します。
- デバイスがBF16アクセラレーションをサポートしている場合に最適。
AceMath-RL-Nemotron-7B-f16.gguf
- モデルの重みがF16で保存されています。
- デバイスがFP16をサポートしている場合、特にBF16が利用できない場合に使用します。
AceMath-RL-Nemotron-7B-bf16-q8_0.gguf
- 出力と埋め込みはBF16のままです。
- 他のすべてのレイヤーはQ8_0に量子化されています。
- デバイスがBF16をサポートし、量子化バージョンが必要な場合に使用します。
AceMath-RL-Nemotron-7B-f16-q8_0.gguf
- 出力と埋め込みはF16のままです。
- 他のすべてのレイヤーはQ8_0に量子化されています。
AceMath-RL-Nemotron-7B-q4_k.gguf
- 出力と埋め込みはQ8_0に量子化されています。
- 他のすべてのレイヤーはQ4_Kに量子化されています。
- メモリが制限されたCPU推論に適しています。
AceMath-RL-Nemotron-7B-q4_k_s.gguf
- 最小のQ4_Kバリアントで、精度を犠牲にしてメモリ使用量を削減します。
- 非常に低メモリのセットアップに最適。
AceMath-RL-Nemotron-7B-q6_k.gguf
- 出力と埋め込みはQ8_0に量子化されています。
- 他のすべてのレイヤーはQ6_Kに量子化されています。
AceMath-RL-Nemotron-7B-q8_0.gguf
- 完全にQ8に量子化されたモデルで、精度が向上します。
- より多くのメモリが必要ですが、より高い精度を提供します。
AceMath-RL-Nemotron-7B-iq3_xs.gguf
- IQ3_XS量子化で、極端なメモリ効率を実現。
- 超低メモリデバイスに最適。
AceMath-RL-Nemotron-7B-iq3_m.gguf
- IQ3_M量子化で、中規模のブロックサイズで精度が向上します。
- 低メモリデバイスに適しています。
AceMath-RL-Nemotron-7B-q4_0.gguf
- 純粋なQ4_0量子化で、ARMデバイス用に最適化されています。
- 低メモリ環境に最適。
- より高い精度が必要な場合はIQ4_NLを選択してください。
モデルのテスト
もしこれらのモデルが役に立った場合は、「いいね」をクリックしていただけると助かります!また、量子対応のセキュリティチェックを備えたAIパワードのネットワークモニターアシスタントのテストにもご協力いただけると幸いです。
テスト方法
AIアシスタントのタイプを選択します。
TurboLLM
(GPT-4o-mini)HugLLM
(Hugginfaceオープンソース)TestLLM
(実験的なCPUのみ)
テスト内容
AIネットワークモニタリング用の小規模なオープンソースモデルの限界を追求しています。具体的には、以下のことをテストしています。
- ライブネットワークサービスに対する関数呼び出し
- 以下のタスクを処理しながら、モデルをどれだけ小さくできるか
- 自動化されたNmapスキャン
- 量子対応チェック
- ネットワークモニタリングタスク
TestLLM - 現在の実験的モデル(2つのCPUスレッドでのllama.cpp)
- ゼロコンフィギュレーションセットアップ
- 30秒のロード時間(推論は遅いですが、APIコストがかからない)
- 協力者募集中! エッジデバイスAIに興味がある方は、一緒に協力しましょう!
その他のアシスタント
- TurboLLM - gpt-4o-miniを使用
- Free Network Monitor Agentsで.netコードを実行するカスタムコマンドプロセッサを作成
- リアルタイムのネットワーク診断とモニタリング
- セキュリティ監査
- ペネトレーションテスト (Nmap/Metasploit)
- ログインするか、AIアシスタントを統合した無料のネットワークモニターエージェントをダウンロードすることで、より多くのトークンを取得できます。
- HugLLM - 最新のオープンソースモデル
- Hugging Face推論API上で実行
テストできるコマンドの例
"Give me info on my websites SSL certificate"
"Check if my server is using quantum safe encyption for communication"
"Run a comprehensive security audit on my server"
- '"Create a cmd processor to .. (what ever you want)" 注: .netコードを実行するには、無料のネットワークモニターエージェントをインストールする必要があります。これは非常に柔軟で強力な機能です。注意して使用してください!
結果
AIME 2024、AIME 2025、およびGPQAで、同等のサイズの競合する推論モデルと比較して、このモデルを評価しました。
モデル | AIME 2024 (AVG@64) |
AIME 2025 (AVG@64) |
GPQA-Diamond (AVG@8) |
---|---|---|---|
DeepSeek-R1-Distill-Qwen-7B | 55.5 | 39.2 | 49.1 |
Light-R1-7B-DS | 59.1 | 44.3 | 49.4 |
AReaL-boba-RL-7B | 61.9 | 48.3 | 47.6 |
Llama-Nemotron-Nano-v1 (8B) | 63.8 | 47.1 | 54.1 |
Skywork-OR1-Math-7B-Preview | 69.8 | 52.3 | - |
AceMath-RL-Nemotron-7B | 69.0 | 53.6 | 52.1 |
また、追加の数学ベンチマークとLiveCodeBenchでもモデルを評価し、より包括的な評価を行いました。
モデル | GSM8K (AVG@1) |
MATH500 (AVG@4) |
Minerva Math (AVG@1) |
GaoKao2023En (AVG@1) |
Olympiad Bench (AVG@1) |
College Math (AVG@1) |
ACM23 (AVG@5) |
LiveCodeBench (AVG@8) |
---|---|---|---|---|---|---|---|---|
DeepSeek-R1-Distill-Qwen-7B | 92.7 | 92.8 | 57.4 | 82.3 | 58.2 | 56.7 | 89.0 | 37.6 |
AceMath-RL-Nemotron-7B | 93.3 | 94.1 | 56.6 | 85.5 | 66.7 | 59.8 | 94.0 | 44.4 |
🔧 技術詳細
このモデルは、強化学習(RL)を使用して、Deepseek-R1-Distilled-Qwen-7Bから訓練されました。数学推論タスクに特化した訓練を行い、AIME 2024やAIME 2025などのベンチマークで高い精度を達成しました。また、量子化技術を使用して、メモリ使用量を削減し、推論速度を向上させています。
💡 使用例
基本的な使用法
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = 'nvidia/AceMath-RL-Nemotron-7B'
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto", device_map="auto")
prompt = "Jen enters a lottery by picking $4$ distinct numbers from $S=\\{1,2,3,\\cdots,9,10\\}.$ $4$ numbers are randomly chosen from $S.$ She wins a prize if at least two of her numbers were $2$ of the randomly chosen numbers, and wins the grand prize if all four of her numbers were the randomly chosen numbers. The probability of her winning the grand prize given that she won a prize is $\\tfrac{m}{n}$ where $m$ and $n$ are relatively prime positive integers. Find $m+n$."
messages = [{"role": "user", "content": prompt}]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to("cuda")
generated_ids = model.generate(
**model_inputs,
max_new_tokens=32768,
temperature=0.6,
top_p=0.95
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
💡 使用アドバイス
⚠️ 重要提示
システムプロンプトを含めず、すべての指示をユーザープロンプトに直接記述してください。
💡 使用アドバイス
数学の質問には、以下のプロンプト形式を推奨します。 <begin_of_sentence>
{math_question}\nPlease reason step by step, and put your final answer within \boxed{}. \n
問い合わせ先
- Yang Chen (yachen@nvidia.com)
- Zihan Liu (zihanl@nvidia.com)
- Chankyu Lee (chankyul@nvidia.com)
- Wei Ping (wping@nvidia.com)
📄 ライセンス
このモデルの使用は、NVIDIA Open Model Licenseに準拠しています。
引用
@article{acemath2024,
title={AceMath: Advancing Frontier Math Reasoning with Post-Training and Reward Modeling},
author={Liu, Zihan and Chen, Yang and Shoeybi, Mohammad and Catanzaro, Bryan and Ping, Wei},
journal={arXiv preprint},
year={2024}
}



