Instructions to use unsloth/gpt-oss-120b-GGUF with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use unsloth/gpt-oss-120b-GGUF with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="unsloth/gpt-oss-120b-GGUF") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("unsloth/gpt-oss-120b-GGUF") model = AutoModelForCausalLM.from_pretrained("unsloth/gpt-oss-120b-GGUF", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use unsloth/gpt-oss-120b-GGUF with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf unsloth/gpt-oss-120b-GGUF:UD-Q4_K_XL # Run inference directly in the terminal: llama cli -hf unsloth/gpt-oss-120b-GGUF:UD-Q4_K_XL
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf unsloth/gpt-oss-120b-GGUF:UD-Q4_K_XL # Run inference directly in the terminal: llama cli -hf unsloth/gpt-oss-120b-GGUF:UD-Q4_K_XL
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf unsloth/gpt-oss-120b-GGUF:UD-Q4_K_XL # Run inference directly in the terminal: ./llama-cli -hf unsloth/gpt-oss-120b-GGUF:UD-Q4_K_XL
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf unsloth/gpt-oss-120b-GGUF:UD-Q4_K_XL # Run inference directly in the terminal: ./build/bin/llama-cli -hf unsloth/gpt-oss-120b-GGUF:UD-Q4_K_XL
Use Docker
docker model run hf.co/unsloth/gpt-oss-120b-GGUF:UD-Q4_K_XL
- LM Studio
- Jan
- vLLM
How to use unsloth/gpt-oss-120b-GGUF with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "unsloth/gpt-oss-120b-GGUF" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "unsloth/gpt-oss-120b-GGUF", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/unsloth/gpt-oss-120b-GGUF:UD-Q4_K_XL
- SGLang
How to use unsloth/gpt-oss-120b-GGUF 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 "unsloth/gpt-oss-120b-GGUF" \ --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": "unsloth/gpt-oss-120b-GGUF", "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 "unsloth/gpt-oss-120b-GGUF" \ --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": "unsloth/gpt-oss-120b-GGUF", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Ollama
How to use unsloth/gpt-oss-120b-GGUF with Ollama:
ollama run hf.co/unsloth/gpt-oss-120b-GGUF:UD-Q4_K_XL
- Unsloth Desktop
- Pi
How to use unsloth/gpt-oss-120b-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf unsloth/gpt-oss-120b-GGUF:UD-Q4_K_XL
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "unsloth/gpt-oss-120b-GGUF:UD-Q4_K_XL" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use unsloth/gpt-oss-120b-GGUF with Docker Model Runner:
docker model run hf.co/unsloth/gpt-oss-120b-GGUF:UD-Q4_K_XL
- Lemonade
How to use unsloth/gpt-oss-120b-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull unsloth/gpt-oss-120b-GGUF:UD-Q4_K_XL
Run and chat with the model
lemonade run user.gpt-oss-120b-GGUF-UD-Q4_K_XL
List all available models
lemonade list
- Hermes Agent
How to use unsloth/gpt-oss-120b-GGUF with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf unsloth/gpt-oss-120b-GGUF:UD-Q4_K_XL
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default unsloth/gpt-oss-120b-GGUF:UD-Q4_K_XL
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use unsloth/gpt-oss-120b-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf unsloth/gpt-oss-120b-GGUF:UD-Q4_K_XL
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "unsloth/gpt-oss-120b-GGUF:UD-Q4_K_XL" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
What is the difference between the quants?
Sorry if this is a dumb question, but I see that you have published multiple quants and they all have same size.
Can you clarify what is the difference?
From their docs:
Any quant smaller than f16, including 2-bit β has minimal accuracy loss, since only some parts (e.g., attention layers) are lower bit while most remain full-precision. Thatβs why sizes are close to the f16 model; for example, the 2-bit (11.5 GB) version performs nearly the same as the full 16-bit (14 GB) one. Once llama.cpp supports better quantization for these models, we'll upload them ASAP.
From their docs:
Any quant smaller than f16, including 2-bit β has minimal accuracy loss, since only some parts (e.g., attention layers) are lower bit while most remain full-precision. Thatβs why sizes are close to the f16 model; for example, the 2-bit (11.5 GB) version performs nearly the same as the full 16-bit (14 GB) one. Once llama.cpp supports better quantization for these models, we'll upload them ASAP.
Correct. With proper llama.cpp quantization, the sizes will be much different
More like what is the point of lower quants for this model when they are the same size.
More like what is the point of lower quants for this model when they are the same size.
Just in case someone wants to use them and more choice is always better. E.g. the f16 one is 66gb but someone might have a 64gb device and it won't fit so they'd rather use a smaller one
@Lamamanx advertisment for unsloth. what else. they gotta be the first one no matter what.
How exactly is it an advertisement for Unsloth? Other people uploaded quants just like this with similar sizes as well. This is unfortunately a temporary limitation of llama.cpp which they're going to work on and once they fix it we can reupload the quants. It's not like we're blasting everywhere that there are many different sizes to run?
In fact in all our social media posts, we only post about one size to run and that is the f16 one. So I further don't understand what you mean by advertisement.
More like what is the point of lower quants for this model when they are the same size.
Just in case someone wants to use them and more choice is always better. E.g. the f16 one is 66gb but someone might have a 64gb device and it won't fit so they'd rather use a smaller one
@Lamamanx advertisment for unsloth. what else. they gotta be the first one no matter what.
How exactly is it an advertisement for Unsloth? Other people uploaded quants just like this with similar sizes as well. This is unfortunately a temporary limitation of llama.cpp which they're going to work on and once they fix it we can reupload the quants. It's not like we're blasting everywhere that there are many different sizes to run?
In fact in all our social media posts, we only post about one size to run and that is the f16 one. So I further don't understand what you mean by advertisement.
Is there a real performance prefill and token generation difference between the different quants if they are almost identical?
@shimmyshimmer I still don't get it. What is the point when all the quants are almost the same size. For eg. the Q2_K_L is 62.9GB and the Q5_K_M is 62.9GB.
I'm just wondering what I'm am missing or not understanding about the OSS model. Because I know the OSS is native 4bit.