Instructions to use ToPo-ToPo/Ornith-1.5-122B-mlx-4bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use ToPo-ToPo/Ornith-1.5-122B-mlx-4bit with MLX:
# Make sure mlx-vlm is installed # pip install --upgrade mlx-vlm from mlx_vlm import load, generate from mlx_vlm.prompt_utils import apply_chat_template from mlx_vlm.utils import load_config # Load the model model, processor = load("ToPo-ToPo/Ornith-1.5-122B-mlx-4bit") config = load_config("ToPo-ToPo/Ornith-1.5-122B-mlx-4bit") # Prepare input image = ["http://images.cocodataset.org/val2017/000000039769.jpg"] prompt = "Describe this image." # Apply chat template formatted_prompt = apply_chat_template( processor, config, prompt, num_images=1 ) # Generate output output = generate(model, processor, formatted_prompt, image) print(output) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use ToPo-ToPo/Ornith-1.5-122B-mlx-4bit with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "ToPo-ToPo/Ornith-1.5-122B-mlx-4bit"
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "ToPo-ToPo/Ornith-1.5-122B-mlx-4bit" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent
How to use ToPo-ToPo/Ornith-1.5-122B-mlx-4bit with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "ToPo-ToPo/Ornith-1.5-122B-mlx-4bit"
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 ToPo-ToPo/Ornith-1.5-122B-mlx-4bit
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use ToPo-ToPo/Ornith-1.5-122B-mlx-4bit with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "ToPo-ToPo/Ornith-1.5-122B-mlx-4bit"
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 "ToPo-ToPo/Ornith-1.5-122B-mlx-4bit" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
ToPo-ToPo/Ornith-1.5-122B-mlx-4bit
MLX 4bit conversion of ornith-ai/Ornith-1.5-122B for Apple Silicon (mlx-vlm), with the vision tower kept.
It uses a mixed-precision recipe: the routed experts are 4bit and every other linear layer is 8bit. This is the same recipe as ToPo-ToPo/Ornith-1.5-35B-A3B-mlx-4bit.
Provenance (self-converted from official weights)
- Source:
ornith-ai/Ornith-1.5-122B(license: mit) - Tool:
mlx-vlm 0.7.6(mlx 0.32.3),mlx_vlm.convert(..., quantize=True, q_bits=4, q_group_size=64, quant_predicate=predicate)with the predicate below - Quantization (affine, group size 64):
- Routed experts (
mlp.switch_mlp.{gate,up,down}_proj, 144 layers): 4bit - All other linear layers (470 layers): 8bit. This covers
lm_head,embed_tokens, full attention, Gated DeltaNet projections, the shared expert and the routers. - Vision tower: not quantized (bf16)
- Routed experts (
- Size: about 72.7 GB of weights. The official 4bit is 69.6 GB but has no vision tower; the 8bit is 130.6 GB.
- Vision: the source checkpoint is
Qwen3_5MoeForConditionalGenerationand contains the vision tower (333 tensors) and the image/video processor configs. This conversion keeps them, so the model accepts image input. The officialornith-ai/Ornith-1.5-122B-MLX-4bitis a text-only conversion without the vision tower. - The MTP (multi-token prediction) weights of the source are not included. A separately extracted drafter is at
ToPo-ToPo/Ornith-1.5-122B-MTP-bf16.
from mlx_vlm.utils import skip_multimodal_module
def predicate(path, module):
if not hasattr(module, "to_quantized") or skip_multimodal_module(path):
return False
if ".switch_mlp." in path:
return {"group_size": 64, "bits": 4}
return {"group_size": 64, "bits": 8}
Why mixed precision
The official MLX 4bit uses the default uniform 4bit conversion, with only the routers and shared-expert gates kept at 8bit. Only 8 of the 256 experts run for each token, while the non-expert layers run for every token. Keeping the non-expert layers at 8bit costs little size and reduced quantization errors in our tests.
Small in-house evaluation, thinking off, 5 samples per case: 34 short Japanese/English probes and 20 tool-calling scenarios, each in Japanese and English. All models were served directly with mlx-vlm (no MTP) on the same Apple Silicon Mac.
| Metric | 8bit | official 4bit | this repo |
|---|---|---|---|
| Japanese tool-calling accuracy | 98% | 94% | 99% |
| Valid tool-call format (Japanese) | 98.6% | 98.5% | 100% |
| English tool-calling accuracy | 99% | 100% | 100% |
| Responses with Simplified Chinese / Hangul (tool calling) | 0% | 3% | 0% |
| Same, probes | 2.4% | 3.5% | 3.5% |
| Thinking leaked with thinking off (probes) | 0% | 2.9% | 0% |
| Probe accuracy | 97.4% | 100% | 98.3% |
| Generation speed (no MTP, 400 tokens) | 46.7 tok/s | 60.9 tok/s | 52.3 tok/s |
| Peak memory | 130.9 GB | 72.9 GB | 72.9 GB |
- The official 4bit failed one Japanese tool-calling scenario (drafting a meeting-reschedule email) in all 5 samples. It called an unrelated calendar tool or wrote the email without the tool. The 8bit and this repo passed it.
- Ornith-1.5-122B switches to Chinese in some Japanese idiom explanations even at 8bit. This repo's remaining probe cases are the same idioms, so they look like a habit of the model rather than quantization damage.
- The differences in probe accuracy are within one or two samples. The suite is small and does not cover long agentic tasks.
Validation
- Image input tested with mlx-vlm. The model correctly named the colors, shapes and positions in a synthetic test image.
- Tokenization and the chat template give the same token IDs as the source checkpoint on Japanese, English, code, tool-call markup and combining characters, with and without
enable_thinking=False.
Usage
from mlx_vlm import load, generate
model, processor = load("ToPo-ToPo/Ornith-1.5-122B-mlx-4bit")
- Downloads last month
- 28
4-bit
Model tree for ToPo-ToPo/Ornith-1.5-122B-mlx-4bit
Base model
ornith-ai/Ornith-1.5-122B