Instructions to use nvidia/Nemotron-Cascade-2-30B-A3B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use nvidia/Nemotron-Cascade-2-30B-A3B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="nvidia/Nemotron-Cascade-2-30B-A3B", trust_remote_code=True) messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForMultimodalLM tokenizer = AutoTokenizer.from_pretrained("nvidia/Nemotron-Cascade-2-30B-A3B", trust_remote_code=True) model = AutoModelForMultimodalLM.from_pretrained("nvidia/Nemotron-Cascade-2-30B-A3B", trust_remote_code=True) 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]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use nvidia/Nemotron-Cascade-2-30B-A3B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "nvidia/Nemotron-Cascade-2-30B-A3B" # 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/Nemotron-Cascade-2-30B-A3B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/nvidia/Nemotron-Cascade-2-30B-A3B
- SGLang
How to use nvidia/Nemotron-Cascade-2-30B-A3B 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/Nemotron-Cascade-2-30B-A3B" \ --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/Nemotron-Cascade-2-30B-A3B", "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/Nemotron-Cascade-2-30B-A3B" \ --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/Nemotron-Cascade-2-30B-A3B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use nvidia/Nemotron-Cascade-2-30B-A3B with Docker Model Runner:
docker model run hf.co/nvidia/Nemotron-Cascade-2-30B-A3B
Cascade-2 cheating attempts on Math is... cute
I was doing some inference of this model on a subset of harder problems from Nemotron-Math-V2, hoping to get a decent dataset for fun. I noticed that this model created a bunch of unrelated files in the sandbox folder (which is not network isolated in my case foolishly):
It downloaded IMO2021SL.pdf, imo2022sl.pdf and so on. I opened those files and they were legitimate PDF files. Which means the model tried to cheat by downloading those files 😄 Here are the statistics of network access attempts (out of 10K reasoning traces):
| Domain | Traces |
|---|---|
| artofproblemsolving.com | 64 |
| en.wikipedia.org | 58 |
| www.google.com | 40 |
| duckduckgo.com | 39 |
| oeis.org | 28 |
| math.stackexchange.com | 13 |
| api.stackexchange.com | 12 |
| www.imo-official.org | 11 |
| html.duckduckgo.com | 11 |
| raw.githubusercontent.com | 8 |
| api.duckduckgo.com | 6 |
| mathworld.wolfram.com | 6 |
| purplecomet.org | 5 |
| api.github.com | 3 |
| arxiv.org | 3 |
| www.bing.com | 3 |
| stackoverflow.com | 3 |
The cutest part is that in most of these cheating attempts, it fails to produce the correct answer. Here are in-depth analysis together with exported reasoning traces with tool use: https://huggingface.co/datasets/chankhavu/nemotron-cascade2-cheating-attempts (analysis was done by Claude Code)
Thanks for the analysis. We did not use tool calls for IMO/IOI evaluation.
@chankhavu
Thanks for providing the examples. We’ve observed similar behaviors before. We believe this stems from our SFT training data, generated by DeepSeek-V3.2 and GPT-OSS with tool calls, which includes trajectories involving network access attempts. Most of these are hallucinations and fail to produce correct answers.
Just to emphasize:
For benchmark evaluations , including IMO 2025 and IOI 2025, we disable tool calls and do not allow the model to access the network, to rule out any possibility of cheating attempts.
Why do you only benchmark IMO and IOI 2025? It would be too easy to include the solutions of those competitions in your training dataset. Can it solve a single problem from IMO/IOI in another year?