NVIDIA 2025 30B Text Generation

Nemotron-3-Nano-30B-A3B

Un modèle performant de 30B optimisé par NVIDIA, disponible en version GGUF pour une utilisation efficace sur matériel grand public.

Matériel requis

Le modèle Nemotron-3-Nano-30B-A3B nécessite une configuration solide pour l’inférence locale :

  • Version 4-bit : Environ 24 Go de RAM/VRAM.
  • Version 8-bit : Environ 36 Go de RAM/VRAM.

Certaines versions GGUF peuvent avoir des tailles similaires car l’architecture (comme gpt-oss) possède des dimensions non divisibles par 128, empêchant la quantification de certaines parties à des bits inférieurs.

Installation de llama.cpp

Pour exécuter ce modèle, compilez la dernière version de llama.cpp :

apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggml-org/llama.cpp
cmake llama.cpp -B llama.cpp/build \
    -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DLLAMA_CURL=ON
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-mtmd-cli llama-server llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp

Note : Désactivez -DGGML_CUDA=ON si vous n’avez pas de GPU NVIDIA.

Utilisation du modèle

Inférence standard (Chat)

Pour un usage général avec une fenêtre de contexte de 32k :

./llama.cpp/llama-cli \
    -hf unsloth/Nemotron-3-Nano-30B-A3B-GGUF:UD-Q4_K_XL \
    --ctx-size 32768 \
    --temp 1.0 --top-p 1.0

Tool-calling (Appel d’outils)

Pour des cas d’usage nécessitant une plus grande précision :

./llama.cpp/llama-cli \
    -hf unsloth/Nemotron-3-Nano-30B-A3B-GGUF:UD-Q4_K_XL \
    --ctx-size 32768 \
    --temp 0.6 --top-p 0.95

Téléchargement et exécution Python

Vous pouvez télécharger manuellement les poids via huggingface_hub :

# pip install huggingface_hub hf_transfer
import os
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
from huggingface_hub import snapshot_download

snapshot_download(
    repo_id = "unsloth/Nemotron-3-Nano-30B-A3B-GGUF",
    local_dir = "unsloth/Nemotron-3-Nano-30B-A3B-GGUF",
    allow_patterns = ["*UD-Q4_K_XL*"],
)

Ensuite, lancez le modèle en mode conversation :

./llama.cpp/llama-cli \
    --model unsloth/Nemotron-3-Nano-30B-A3B-GGUF/Nemotron-3-Nano-30B-A3B-UD-Q4_K_XL.gguf \
    --ctx-size 16384 \
    --seed 3407 \
    --prio 2 \
    --temp 0.6 \
    --top-p 0.95

Raisonnement et Contexte

Nemotron-3 utilise des tokens spécifiques pour le raisonnement : <think> (ID 12) et </think> (ID 13). Utilisez l’option --special dans llama.cpp pour les afficher.

Attention au contexte : Bien que le modèle puisse monter jusqu’à 1M de tokens, assurez-vous que votre matériel le supporte. Une fenêtre de 1M peut provoquer un “CUDA OOM” (Out of Memory). La valeur par défaut recommandée est de 262 144 (256k).