Instructions to use nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16", trust_remote_code=True) messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16", trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained("nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16", trust_remote_code=True, device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Inference
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16
- SGLang
How to use nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16 with Docker Model Runner:
docker model run hf.co/nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16
Disobedient and "rude"
The model is excellent in reasoning and such, but it's quite "disobedient" and even (in some sense) "rude", in regards to modifications to its instructions given during agentic coding.
For example, if you kick off a task, it can work through that. If it stops and asks something, and you respond, it can work through that appropriately (usually).
BUT, if you interrupt its reasoning, and tell it that it should do something else, or that it's going off course and needs to follow the original instruction, it often just continues on, giving little or not regard to the additional instruction.
AT LEAST, instead of being ignored, instead of output of the form "<further_output"> I would expect "OK, I hear you, I'll incorporate that as I go forward. ", or (if it must) "The user says . Actually, I think that's incorrect due to ; I'm still fully aligned with everything the user has requested, and so I can to proceed as before. In this framework, the user can simply interrupt me again if I've gotten this wrong, so I'll proceed. ".
Actually, it's disobedient from the outset, too. For example, if I tell it to make a skill, and to search online for the format of skill.md files, it will decide to initially search the filesystem for skill.md files instead. Not ideal.
To clarify: I believe there's a gap in the training dataset here: it's likely trained on a simple back and forth flow, whereas the training should include interruptions for questions, additions, course corrections (of the model's CoT), and "changes of mind" (of the user) and so on.