Instructions to use Myric/gpt-oss-78B-pruned-experiment with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use Myric/gpt-oss-78B-pruned-experiment 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 Myric/gpt-oss-78B-pruned-experiment # Run inference directly in the terminal: llama cli -hf Myric/gpt-oss-78B-pruned-experiment
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf Myric/gpt-oss-78B-pruned-experiment # Run inference directly in the terminal: llama cli -hf Myric/gpt-oss-78B-pruned-experiment
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 Myric/gpt-oss-78B-pruned-experiment # Run inference directly in the terminal: ./llama-cli -hf Myric/gpt-oss-78B-pruned-experiment
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 Myric/gpt-oss-78B-pruned-experiment # Run inference directly in the terminal: ./build/bin/llama-cli -hf Myric/gpt-oss-78B-pruned-experiment
Use Docker
docker model run hf.co/Myric/gpt-oss-78B-pruned-experiment
- LM Studio
- Jan
- vLLM
How to use Myric/gpt-oss-78B-pruned-experiment with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Myric/gpt-oss-78B-pruned-experiment" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Myric/gpt-oss-78B-pruned-experiment", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Myric/gpt-oss-78B-pruned-experiment
- Ollama
How to use Myric/gpt-oss-78B-pruned-experiment with Ollama:
ollama run hf.co/Myric/gpt-oss-78B-pruned-experiment
- Unsloth Studio
How to use Myric/gpt-oss-78B-pruned-experiment with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for Myric/gpt-oss-78B-pruned-experiment to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for Myric/gpt-oss-78B-pruned-experiment to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for Myric/gpt-oss-78B-pruned-experiment to start chatting
- Pi
How to use Myric/gpt-oss-78B-pruned-experiment with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Myric/gpt-oss-78B-pruned-experiment
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "Myric/gpt-oss-78B-pruned-experiment" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use Myric/gpt-oss-78B-pruned-experiment with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Myric/gpt-oss-78B-pruned-experiment
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 Myric/gpt-oss-78B-pruned-experiment
Run Hermes
hermes
- OpenClaw new
How to use Myric/gpt-oss-78B-pruned-experiment with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Myric/gpt-oss-78B-pruned-experiment
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 "Myric/gpt-oss-78B-pruned-experiment" \ --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"
- Docker Model Runner
How to use Myric/gpt-oss-78B-pruned-experiment with Docker Model Runner:
docker model run hf.co/Myric/gpt-oss-78B-pruned-experiment
- Lemonade
How to use Myric/gpt-oss-78B-pruned-experiment with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull Myric/gpt-oss-78B-pruned-experiment
Run and chat with the model
lemonade run user.gpt-oss-78B-pruned-experiment-{{QUANT_TAG}}List all available models
lemonade list
- Atomic Chat
gpt-oss-78b β Uniform Expert-Pruned Experiment
A structural-pruning experiment on openai/gpt-oss-120b: drop the least-used 1/3 of
experts from every MoE layer, uniformly, with no recovery training, and see what it
actually costs. Not an APEX/precision-reallocation quant β see below for why that
approach doesn't apply to this model.
APEX quantizaion takes advantage of the fact that 16bit precision is not actually needed for most tensors in LLM's. Most tensors can function with 8 bits with effectively zero degradation and medium-sized models in the 100-200B parameter range have started distributing 4-bit versions of their models. gpt-oss 120B is one such model where the BF16 was never actually even distributed - even their safetensors models are distruibuted with 4-bit experts. However, Laguna and Nemotron for example offer a 4-bit version directly from the vendor. Apex extends the speed and size advantages of this lower quantization to models for which they are not available. This is not a real option for gpt-oss, where the tensors are already 4-bit.
What this is
gpt-oss-120b is 36 transformer layers Γ 128 experts/layer (top-4 routing). Since
intermediate_size == hidden_size == 2880, essentially the entire model (~115B of
116.8B real params) lives in the expert FFN stacks β attention and everything else is a
rounding error by comparison. NVIDIA's own gpt-oss-puzzle-88B compresses this same base
model via heterogeneous Puzzle NAS: a different expert count, and even a different
expert width, chosen per layer, plus knowledge distillation, RL, and window-attention
swaps to recover quality afterward. This architecture does succeed in reducing the size,
but currently requires a special kernel to run which isn't even available in stock LLM
frameworks.
This experiment asks the simpler question: what happens if you skip all of that and just uniformly drop the same fraction of experts from every layer, choosing which specific experts to drop per-layer from real measured usage (not a fixed heuristic), and apply zero recovery training?
Method
- Measure real per-expert usage. Hooked each layer's expert-dispatch call during a real forward pass over a diverse calibration set (web prose + permissive code + multilingual text β not just English wiki prose, since MoE experts often specialize by domain, and a narrow calibration corpus would bias "usage" against experts a different domain actually needs).
- Drop the least-used 43 of 128 experts per layer (uniform count, not uniform which experts β each layer's own ranking decides which 85 it keeps), remap the router accordingly.
- Pure tensor surgery, no dequantization. The model ships natively in MXFP4
(block-quantized, ~4.25 bits/weight). Every expert-indexed tensor (
gate_up_proj/down_projblocks, scales, biases, and the router itself) has the expert dimension as its leading axis, so pruning is a plainindex_selecton packed MXFP4 bytes β the quantized values themselves are never touched or decoded. - No recovery training. Verified this isn't skippable for free: the native
MXFP4 inference kernels (Triton
matmul_ogs) have no registered backward pass at all β gradient can't reach any router, let alone the pruned experts, without dequantizing at least part of the model to bf16. Full dequant needs ~156GB just for the pruned model's weights alone, well past what fits on the hardware this was built on. A partial fix (dequantize only a small tail of layers to trainable bf16, keep the rest frozen in fast native format) is architecturally sound but wasn't built out β this release is the raw, undistilled structural cut.
Results (real, not simulated)
All numbers below are real llama-perplexity/llama-server runs, validated on two
independent llama.cpp implementations (mainline ggml-org/llama.cpp and a
Puzzle-support fork) agreeing to within ~1%, same corpus, same settings throughout.
| original 120b | pruned 78B | native 20b (for reference) | |
|---|---|---|---|
| total params | 116.8B | 78.3B | 20.9B |
| layers Γ experts/layer | 36 Γ 128 | 36 Γ 85 | 24 Γ 32 |
| PPL, raw wikitext completion (ctx 512) | 213.65 | 273.36 | 159.93 |
| chained tool-calling gate (3 trials) | 3/3 | 3/3 | 3/3 |
| hard-tier coding benchmark (5 real tasks, partial credit) | not tested | 47/59 (79.7%), 4/5 fully solved | not tested |
Raw completion PPL degrades ~28% relative to the original with no recovery applied β a real, non-trivial cost, exactly what you'd expect from skipping the distillation/RL step that NVIDIA's actual Puzzle pipeline uses. But two things are worth noting:
- Tool-calling and coding are untouched. The core agentic behavior gpt-oss is actually built for β chained tool calls with correct argument passing, not falling for a distractor tool, and solving real multi-file coding challenges β survives the pruning intact. 4 of 5 hard-tier coding challenges were solved completely, and the fifth got real partial credit, not a collapse.
- Raw wikitext PPL is a poor proxy for this model family. The native 20b variant scores better on this metric than either 120b configuration, despite being ~4x smaller β gpt-oss is heavily RL/chat-tuned, not built for bare next-token completion on generic prose, so this metric mostly measures something other than what these models are actually evaluated on in practice.
- Honest bottom line: if the goal is "smallest usable gpt-oss for constrained hardware," the native 20b β trained at that size, not surgically cut down to it β is the better answer on the one hard metric available, and it's still smaller than this pruned 78.3B. This release exists to document that a simple, recovery-free structural cut is mechanically sound and preserves core capability, not to claim it beats a purpose-built smaller model.
Why an APEX quant of gpt-oss-120b doesn't make sense
APEX-style quantization (used elsewhere in this account's releases) works by measuring per-tensor sensitivity and then non-uniformly reallocating precision β protecting sensitive tensors, sacrificing bits on insensitive ones β to beat a naive uniform quantization at the same total size. That has real headroom to exploit when the starting point is a uniform-precision baseline (e.g. a stock bf16 or Q4_K_M conversion).
gpt-oss-120b doesn't offer that headroom, for two concrete reasons:
- It already ships pre-allocated, not uniform. OpenAI's own release explicitly
excludes attention, router, embeddings, and
lm_headfrom MXFP4 quantization, keeping them at full bf16 while only the expert FFN weights go to ~4.25-bit MXFP4. That's already a "protect the sensitive stuff, compress the rest" allocation baked into the format β there's very little left for a second, independent sensitivity-driven pass to discriminate on top of. - There's no room to go lower, bit-wise. MXFP4 is already near the practical floor for this architecture; you can't meaningfully requantize an already-4-bit format down further and expect a size win the way you can starting from bf16/Q8. The only way to meaningfully shrink gpt-oss-120b further is structural β remove whole experts or layers β which is precisely what this experiment does instead. APEX and structural pruning are answers to different problems: APEX helps when the bit budget itself is the lever; here, the bit width is already fixed near its floor, and the count of things resident is the only lever left.
There's also a practical blocker: doing our own from-scratch sensitivity-driven requantization would require dequantizing the model to a continuous-precision baseline first, which at 120B scale needs ~240GB just to hold the weights β not something this was built to attempt, and even if it were, it would at best reproduce what OpenAI's own MXFP4 calibration already achieved, with no guaranteed improvement.
Files
gpt-oss-78B-pruned.ggufβ the pruned checkpoint, converted via mainlinellama.cpp, MXFP4-native experts preserved (not dequantized), bf16 for attention/router/norms β same mixed-precision layout as the original release.kept_expert_indices.jsonβ the exact per-layer set of retained expert indices (85 of 128, by original index), for reproducibility.
Attribution
- Base model: OpenAI β openai/gpt-oss-120b.
- Reference for the heterogeneous, distillation-recovered approach this experiment deliberately simplifies away from: NVIDIA β nvidia/gpt-oss-puzzle-88B.
- Quantization/inference engine: llama.cpp (ggml-org).
Unofficial community experiment; not affiliated with or endorsed by OpenAI or NVIDIA.
- Downloads last month
- 209
We're not able to determine the quantization variants.
Model tree for Myric/gpt-oss-78B-pruned-experiment
Base model
openai/gpt-oss-120b