Instructions to use OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF 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 OpenMOSE/Qwen3.5-REAP-97B-A10B-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 OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF:Q4_K_M
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 OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF:Q4_K_M
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 OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF:Q4_K_M
Use Docker
docker model run hf.co/OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF:Q4_K_M
- LM Studio
- Jan
- Ollama
How to use OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF with Ollama:
ollama run hf.co/OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF:Q4_K_M
- Unsloth Desktop
- Pi
How to use OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF:Q4_K_M
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": "OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF with Docker Model Runner:
docker model run hf.co/OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF:Q4_K_M
- Lemonade
How to use OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF:Q4_K_M
Run and chat with the model
lemonade run user.Qwen3.5-REAP-97B-A10B-GGUF-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use OpenMOSE/Qwen3.5-REAP-97B-A10B-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 OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF:Q4_K_M
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 OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF:Q4_K_M
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 "OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF:Q4_K_M" \ --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"
| license: apache-2.0 | |
| base_model: | |
| - OpenMOSE/Qwen3.5-REAP-97B-A10B | |
| # OpenMOSE/Qwen3.5-REAP-97B-A10B-GGUF | |
| Vision–Language MoE model created by applying **Router-weighted Expert Activation Pruning (REAP)** to **Qwen3.5-122B-A10B**. | |
| --- | |
| ### 1. Model Summary | |
| * **Base model:** Qwen/Qwen3.5-122B-A10B (vision–language MoE LLM) | |
| * **Variant name:** Qwen3.5-REAP-97B-A10B | |
| * **Architecture:** Decoder-only Transformer (hybrid linear/full attention) + MoE MLP experts, with vision encoder + VL fusion as in Qwen3.5 | |
| * **Pruning method:** REAP (Router-weighted Expert Activation Pruning) by Cerebras Research | |
| [https://github.com/CerebrasResearch/reap](https://github.com/CerebrasResearch/reap) | |
| * **Expert sparsity:** ~**22% of MoE experts pruned globally** (256 → 200 experts) | |
| * **Active parameters:** "A10B" indicates roughly ~10B active parameters per token (MoE sparse activation, 8 experts per token), while total parameters are reduced to about **97B** | |
| * **Modality:** Text + Vision (VL support **kept intact**) | |
| * **License:** **Apache 2.0** | |
| * **Author / Maintainer:** **OpenMOSE** | |
| * **Year:** 2025 | |
| This is an **unofficial community variant** of Qwen3.5, not affiliated with or endorsed by Alibaba or Cerebras Systems. | |
| --- | |
| ### 2. What Is REAP and What Did We Change? | |
| **REAP (Router-weighted Expert Activation Pruning)** is a pruning method for MoE models that uses: | |
| * Router statistics (routing probabilities) | |
| * Expert activation patterns on a calibration set | |
| to identify **under-used or redundant experts** and prune them while preserving model quality as much as possible. | |
| For this model: | |
| * We applied REAP to **Qwen3.5-122B-A10B** across its MoE MLP blocks. | |
| * **~22% of experts** are pruned (256 → 200), based on router-weighted activation statistics. | |
| * The **routing mechanism itself is not conceptually changed**; we only changed which experts remain. | |
| * We extended the original REAP implementation to **support the Qwen3.5 hybrid architecture** (interleaved linear attention + full attention layers), so pruning can be applied without disrupting either attention pathway or VL functionality. | |
| In short: **same REAP algorithm, adapted to Qwen3.5's hybrid linear/full attention MoE architecture, leaving VL functionality available.** | |
| --- | |
| ### 3. Calibration Data | |
| The REAP pruning statistics were computed using: | |
| * **Calibration dataset:** [https://huggingface.co/datasets/OpenMOSE/reap-calib-mix](https://huggingface.co/datasets/OpenMOSE/reap-calib-mix) | |
| * This dataset is **mostly synthetic**, generated by **Qwen3-235B-Instruct** on mixed prompts designed to cover: | |
| * General instruction-following | |
| * Reasoning and long-form text | |
| The calibration set is **not** used for additional fine-tuning; it is used solely to measure **router/expert activations** to decide which experts to prune. | |
| --- | |
| ### 4. Why 97B-A10B? (Motivation & Hardware Footprint) | |
| Qwen3.5-122B-A10B is one of the most frontier-capable open-source models runnable at 96 GB, but it still exceeds what a typical 48 GB GPU setup can handle. By pruning ~22% of experts: | |
| * The model shrinks from ~122B total parameters to about **97B total parameters**. | |
| * Sparse MoE activation keeps around **10B parameters active per token** ("A10B"), same effective compute profile as the base model. | |
| * In practice, this makes the model feasible to **deploy on a 48 GB GPU with modest CPU offload**: | |
| * Aggressive quantization (e.g., Q4) eliminates the need for offloading on 96 GB setups. | |
| * 48 GB configurations can work with partial layer offloading to CPU. | |
| The overarching goal is to **bring the closest OSS approximation to a frontier model into local deployment**, making Qwen3.5-122B-A10B accessible without requiring multi-GPU nodes. | |
| --- | |
| ### 5. Architecture Notes | |
| Key architectural properties inherited from the base model and preserved after pruning: | |
| | Property | Value | | |
| |---|---| | |
| | Hidden size | 3072 | | |
| | Num layers | 48 | | |
| | Attention type | Hybrid (3× linear + 1× full, repeating) | | |
| | Full attention interval | every 4th layer | | |
| | Num attention heads | 32 | | |
| | Num KV heads | 2 | | |
| | Head dim | 256 | | |
| | MoE experts total | **200** (pruned from 256) | | |
| | Experts per token | 8 | | |
| | MoE intermediate size | 1024 | | |
| | Max context length | 262,144 tokens | | |
| | Vocab size | 248,320 | | |
| The hybrid attention design (linear attention layers interleaved with full attention every 4 layers) is a distinctive feature of the Qwen3.5 family and is retained fully after pruning. | |
| --- | |
| ### 6. Intended Use | |
| **Primary intended uses** | |
| * Research on: | |
| * MoE pruning and compression (especially REAP) applied to hybrid attention architectures | |
| * Scaling behavior of pruned MoE VL models under conservative pruning ratios (~22%) | |
| * Trade-offs between expert sparsity and performance in linear-attention hybrids | |
| * Experimental deployment for: | |
| * Vision–language assistants on constrained hardware | |
| * Multimodal chatbots | |
| * Document + image understanding | |
| **Suitable tasks (examples)** | |
| * Multimodal chat (image + text → text) | |
| * Image captioning / description | |
| * Visual question answering | |
| * General instruction-following and long-form text generation | |
| * Long-context reasoning (up to 262K tokens) | |
| **Out-of-scope / high-risk uses** | |
| This model **should not** be used **without additional safeguards** for: | |
| * Medical, legal, or financial advice | |
| * Safety-critical decision making | |
| * Political persuasion or targeted disinformation | |
| * Any scenario where incorrect or biased outputs can cause real-world harm | |
| --- | |
| ### 7. Limitations & Risks | |
| This model inherits all the limitations of **Qwen3.5-122B-A10B** plus those introduced by pruning: | |
| * **Hallucinations:** The model can generate plausible but incorrect facts. | |
| * **Bias & toxicity:** Biases from the original training data and synthetic calibration data remain and may be amplified. | |
| * **Distribution shift from pruning:** | |
| * Some long-tail behaviors or rare domain knowledge may degrade due to removal of 56 experts. | |
| * Performance may be uneven across tasks or languages underrepresented in the calibration set. | |
| * **Multimodal edge cases:** | |
| * Complex compositional visual reasoning or high-resolution images may not work reliably. | |
| * VL behavior is preserved but not re-tuned after pruning. | |
| * **Hybrid attention sensitivity:** | |
| * Linear attention layers are more sensitive to expert distribution changes than standard full attention; this is a known risk with the Qwen3.5 architecture. | |
| Users should perform their **own evaluation** before relying on the model in any sensitive context. | |
| --- | |
| ### 8. How to Use | |
| > **Note:** Requires `transformers >= 4.57.0.dev0` for Qwen3.5 MoE support (`Qwen3_5MoeForConditionalGeneration`). | |
| ```python | |
| import torch | |
| from transformers import AutoProcessor | |
| from transformers.models.qwen3_5_moe import Qwen3_5MoeForConditionalGeneration | |
| model_id = "OpenMOSE/Qwen3.5-REAP-97B-A10B" | |
| # default: Load the model on the available device(s) | |
| model = Qwen3_5MoeForConditionalGeneration.from_pretrained( | |
| model_id, dtype="auto", device_map="auto"#, use_cache = False | |
| ) | |
| processor = AutoProcessor.from_pretrained(model_id) | |
| messages = [ | |
| { | |
| "role": "user", | |
| "content": [ | |
| { | |
| "type": "image", | |
| "image": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg", | |
| }, | |
| {"type": "text", "text": "Describe the image."}, | |
| ], | |
| } | |
| ] | |
| # Preparation for inference | |
| inputs = processor.apply_chat_template( | |
| messages, | |
| tokenize=True, | |
| add_generation_prompt=True, | |
| return_dict=True, | |
| return_tensors="pt" | |
| ) | |
| print(inputs) | |
| # Inference: Generation of the output | |
| generated_ids = model.generate(**inputs, max_new_tokens=256,do_sample=True,temperature=0.7, # ← 1.0より小さいほど保守的 | |
| top_p=0.9) # or top_k=50 など) | |
| generated_ids_trimmed = [ | |
| out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids) | |
| ] | |
| output_text = processor.batch_decode( | |
| generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False | |
| ) | |
| print(output_text[0]) | |
| ``` | |
| For text-only usage, omit the `images=` argument. | |
| #### llama.cpp / GGUF | |
| For 48 GB GPU + CPU offload configurations, GGUF quantized versions (e.g., Q4_K_M) are recommended. Example offload configuration: | |
| ```bash | |
| ./llama-cli -m qwen3.5-reap-97b-a10b.Q4_K_M.gguf \ | |
| --n-gpu-layers 38 \ # tune based on your VRAM | |
| --ctx-size 8192 | |
| ``` | |
| --- | |
| ### 9. Evaluation (Status) | |
| * This release focuses on **making the REAP-pruned model available** for the community. | |
| * Quantitative benchmarks (e.g., MMLU, GSM8K, MMBench) are still **work in progress**. | |
| * Early qualitative checks show: | |
| * **VL behavior is preserved** after pruning at this sparsity level. | |
| * **Latency and memory usage** are meaningfully reduced compared to Qwen3.5-122B-A10B, enabling 48 GB + CPU-offload deployments. | |
| * The conservative 22% pruning ratio appears to cause less degradation than more aggressive pruning schedules. | |
| Community contributions with detailed benchmarks are very welcome. | |
| --- | |
| ### 10. Training & Distillation Details (High-Level) | |
| * **Base model:** Qwen/Qwen3.5-122B-A10B | |
| * **Pruning method:** REAP (Router-weighted Expert Activation Pruning) | |
| * **Experts:** 256 → 200 (22% pruned) | |
| * **Calibration data:** `OpenMOSE/reap-calib-mix` (mostly generated by Qwen3-235B-Instruct) | |
| * **Post-processing:** | |
| * Router / gating structure retained | |
| * Experts pruned according to REAP scoring | |
| * No additional large-scale pretraining in this release | |
| Future versions may include **post-pruning fine-tuning** or **knowledge distillation** from the full 122B model to recover further performance. | |
| --- | |
| ### 11. Community & Contribution | |
| > Let's grow this model together as a community. | |
| You are encouraged to: | |
| * Run benchmarks and publish results | |
| * Contribute scripts for: | |
| * Further pruning experiments | |
| * Quantization (GGUF, AWQ, GPTQ) | |
| * Long-context or domain-specific fine-tuning | |
| * CPU/GPU offload configuration guides for various hardware setups | |
| * Report issues or findings about failure modes, biases, or surprising behaviors | |
| --- | |
| ### 12. License | |
| * **Model & code (this repository):** **Apache License 2.0** | |
| * The original Qwen3.5-122B-A10B model and any downstream use must also respect their respective licenses and usage terms. | |
| --- | |
| ### 13. Acknowledgements | |
| This architecture research and implementation was made possible with computing power and technical support from Recursal AI. We sincerely thank them for enabling this work. | |
| https://featherless.ai/ | |
| * **Qwen team** for building the Qwen3.5 family of models. | |
| * **Cerebras Research** for the REAP method and reference implementation: | |
| [https://github.com/CerebrasResearch/reap](https://github.com/CerebrasResearch/reap) | |
| * **OpenMOSE community** for experimentation, engineering, and calibration data generation. | |
| --- | |
| 2025 OpenMOSE |