Instructions to use Kukedlc/Slopus-9B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Kukedlc/Slopus-9B with Transformers:
# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("Kukedlc/Slopus-9B", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use Kukedlc/Slopus-9B 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 Kukedlc/Slopus-9B:Q4_K_M # Run inference directly in the terminal: llama cli -hf Kukedlc/Slopus-9B:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf Kukedlc/Slopus-9B:Q4_K_M # Run inference directly in the terminal: llama cli -hf Kukedlc/Slopus-9B:Q4_K_M
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf Kukedlc/Slopus-9B:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama cli -hf Kukedlc/Slopus-9B:Q4_K_M
Use Docker
docker model run hf.co/Kukedlc/Slopus-9B:Q4_K_M
- Llama new
- LM Studio
- Jan
- Ollama
How to use Kukedlc/Slopus-9B with Ollama:
ollama run hf.co/Kukedlc/Slopus-9B:Q4_K_M
- Unsloth Desktop
- Pi
How to use Kukedlc/Slopus-9B with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Kukedlc/Slopus-9B: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": "Kukedlc/Slopus-9B:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use Kukedlc/Slopus-9B with Docker Model Runner:
docker model run hf.co/Kukedlc/Slopus-9B:Q4_K_M
- Lemonade
How to use Kukedlc/Slopus-9B with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull Kukedlc/Slopus-9B:Q4_K_M
Run and chat with the model
lemonade run user.Slopus-9B-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use Kukedlc/Slopus-9B with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Kukedlc/Slopus-9B: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 Kukedlc/Slopus-9B:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use Kukedlc/Slopus-9B with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Kukedlc/Slopus-9B: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 "Kukedlc/Slopus-9B: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"
Add main README
Browse files
README.md
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
base_model: Tesslate/OmniCoder-9B
|
| 4 |
+
tags:
|
| 5 |
+
- qwen3.5
|
| 6 |
+
- lora
|
| 7 |
+
- sft
|
| 8 |
+
- reasoning
|
| 9 |
+
- coding
|
| 10 |
+
- gguf
|
| 11 |
+
- omnicoder
|
| 12 |
+
language:
|
| 13 |
+
- en
|
| 14 |
+
- es
|
| 15 |
+
library_name: transformers
|
| 16 |
+
---
|
| 17 |
+
|
| 18 |
+
# Slopus 9B
|
| 19 |
+
|
| 20 |
+
**Pipeline experimental de fine-tuning sobre `Tesslate/OmniCoder-9B` (Qwen3.5-9B + 425K trazas Opus agenticas).**
|
| 21 |
+
|
| 22 |
+
Dos fases de LoRA encadenadas: primero una capa fina de coding agentico, despues una segunda capa mas pesada de razonamiento puro de Opus 4.6.
|
| 23 |
+
|
| 24 |
+

|
| 25 |
+
|
| 26 |
+
## Indice
|
| 27 |
+
1. [Resumen](#resumen)
|
| 28 |
+
2. [Pipeline en 5 pasos](#pipeline-en-5-pasos)
|
| 29 |
+
3. [Fase 1 — LoRA r=8 sobre OmniCoder-9B](#fase-1)
|
| 30 |
+
4. [Fase 2 — LoRA r=128 sobre merge fase 1](#fase-2)
|
| 31 |
+
5. [Costos](#costos)
|
| 32 |
+
6. [Quants disponibles](#quants-disponibles)
|
| 33 |
+
7. [Uso con llama-server](#uso-con-llama-server)
|
| 34 |
+
8. [Limitaciones](#limitaciones)
|
| 35 |
+
9. [Datasets y agradecimientos](#datasets-y-agradecimientos)
|
| 36 |
+
|
| 37 |
+
## Resumen
|
| 38 |
+
|
| 39 |
+
| | Fase 1 | Fase 2 |
|
| 40 |
+
|---|--------|--------|
|
| 41 |
+
| Dataset | `Kukedlc/omnicoder-train` (16K, coding agentico) | `Kukedlc/omnicoder-fase2-reasoning` (24K, Opus 4.6 reasoning, derivado de [`Gryphe/Opus-4.6-Reasoning-24k`](https://huggingface.co/datasets/Gryphe/Opus-4.6-Reasoning-24k)) |
|
| 42 |
+
| Base | `Tesslate/OmniCoder-9B` | `Tesslate/OmniCoder-9B` + Fase 1 LoRA mergeada (fp16) |
|
| 43 |
+
| LoRA rank / alpha | r=8, alpha=16 | r=128, alpha=256 |
|
| 44 |
+
| Targets | q,k,v,o,gate,up,down,**out_proj** (GDN) | igual + r mucho mas alto |
|
| 45 |
+
| Epochs | 2 | 2 |
|
| 46 |
+
| Steps totales | 506 | 758 |
|
| 47 |
+
| Batch effective | 16 (batch=8, GA=8) | 64 (batch=16, GA=4) |
|
| 48 |
+
| LR | 2e-4 | 1e-4 (mas bajo, base ya fine-tuneado) |
|
| 49 |
+
| Max seq | 2048 | 4096 |
|
| 50 |
+
| Hardware train | RunPod H100 80GB SXM Secure | RunPod H100 80GB SXM Secure |
|
| 51 |
+
| Tiempo aproximado | ~1.5h | ~4.8h |
|
| 52 |
+
| Loss inicial → final | 1.14 → 0.88 (**-23.1%**) | 1.03 → 0.88 (**-14.3%**) |
|
| 53 |
+
|
| 54 |
+
## Pipeline en 5 pasos
|
| 55 |
+
|
| 56 |
+
1. **Base**: [`Tesslate/OmniCoder-9B`](https://huggingface.co/Tesslate/OmniCoder-9B) — Qwen3.5-9B con arquitectura híbrida GDN (Gated Delta Networks) fine-tuneada por Tesslate con 425K trazas Opus de coding agentico.
|
| 57 |
+
2. **Fase 1 LoRA r=8 alpha=16** sobre la base, dataset `Kukedlc/omnicoder-train`. 2 epochs, 506 steps. Adapter resultante: [`Kukedlc/omnicoder-9b-lora`](https://huggingface.co/Kukedlc/omnicoder-9b-lora) (checkpoints 100/200/300/400/500/506).
|
| 58 |
+
3. **Merge Fase 1**: base + adapter Fase 1 → modelo HF fp16 de ~18 GB (no publicado, solo usado como base interna para Fase 2).
|
| 59 |
+
4. **Fase 2 LoRA r=128 alpha=256** sobre el merge anterior, dataset `Kukedlc/omnicoder-fase2-reasoning` (rendereado de Gryphe Opus reasoning con `<think>` inline). 2 epochs, 758 steps. Adapter resultante: [`Kukedlc/omnicoder-9b-fase2-lora`](https://huggingface.co/Kukedlc/omnicoder-9b-fase2-lora) (checkpoints 100/200/.../758).
|
| 60 |
+
5. **Merge Fase 2 + Quantize** con `llama.cpp` tag `b8292` (commit `b54124110`) — el master nuevo y otras versiones NO soportan correctamente la arquitectura GDN híbrida de Qwen3.5 y fallan con `missing tensor 'blk.32.attn_norm.weight'`. Quants generados: Q2_K, Q3_K_M, Q4_K_M, Q6_K, Q8_0.
|
| 61 |
+
|
| 62 |
+
## Fase 1
|
| 63 |
+
|
| 64 |
+

|
| 65 |
+
|
| 66 |
+
LoRA conservador (r=8 alpha=16) sobre OmniCoder-9B para introducir un primer ajuste de estilo en el dominio que nos interesa antes de la inyeccion mas agresiva de Fase 2. La idea: no romper la base con un LoRA gigante en el primer paso.
|
| 67 |
+
|
| 68 |
+
**Observacion**: la loss baja MÁS en epoch 2 que en epoch 1 (10% epoch 1 vs 15% epoch 2), señal de que la base seguia teniendo capacidad de aprender — no overfitting.
|
| 69 |
+
|
| 70 |
+
## Fase 2
|
| 71 |
+
|
| 72 |
+

|
| 73 |
+
|
| 74 |
+
LoRA de capacidad alta (r=128 alpha=256, 258M trainable params = 2.67% del 9B) sobre el merge de Fase 1, con dataset de razonamiento puro de Opus 4.6 (24K ejemplos chat con `reasoning_content` separado, rendereados como `<think>X</think>content` inline para el chat_template de Qwen3.5).
|
| 75 |
+
|
| 76 |
+
LR bajado a 1e-4 (vs 2e-4 fase 1) porque el modelo ya estaba fine-tuneado. Cosine scheduler con 20 warmup steps.
|
| 77 |
+
|
| 78 |
+
**Sampling parameters recomendados** (de Qwen3.6 model card, validos para Qwen3.5):
|
| 79 |
+
|
| 80 |
+
| Modo | temp | top_p | pres_pen | top_k | min_p |
|
| 81 |
+
|------|------|-------|----------|-------|-------|
|
| 82 |
+
| Thinking general | 1.0 | 0.95 | 1.5 | 20 | 0 |
|
| 83 |
+
| Thinking coding | 0.6 | 0.95 | 0.0 | 20 | 0 |
|
| 84 |
+
| Instruct general | 0.7 | 0.80 | 1.5 | 20 | 0 |
|
| 85 |
+
|
| 86 |
+
## Costos
|
| 87 |
+
|
| 88 |
+
| Item | Tiempo | Costo |
|
| 89 |
+
|------|--------|-------|
|
| 90 |
+
| Train Fase 1 H100 SXM Secure ($3.29/h) | ~1.5h | ~$4.95 |
|
| 91 |
+
| Train Fase 2 H100 SXM Secure ($3.29/h) | ~4.8h | ~$15.8 |
|
| 92 |
+
| Merge intermedios + quantize local (3090) | ~2h | $0 (local) |
|
| 93 |
+
| Storage HF (XET turbo) | - | $0 |
|
| 94 |
+
| **Total compute pago** | ~6.3h cloud | **~$20.75** |
|
| 95 |
+
|
| 96 |
+
## Quants disponibles
|
| 97 |
+
|
| 98 |
+
| Quant | Tamano | Uso recomendado |
|
| 99 |
+
|-------|--------|------------------|
|
| 100 |
+
| `Slopus-9B-Q2_K.gguf` | ~3.6 GB | Solo si VRAM <6 GB. Calidad notablemente menor. |
|
| 101 |
+
| `Slopus-9B-Q3_K_M.gguf` | ~4.5 GB | VRAM ~6 GB. Compromiso ajustado. |
|
| 102 |
+
| **`Slopus-9B-Q4_K_M.gguf`** | **~5.5 GB** | **Sweet spot, default recomendado**. VRAM 8 GB+ |
|
| 103 |
+
| `Slopus-9B-Q6_K.gguf` | ~7.5 GB | Calidad casi perfecta. VRAM 10 GB+ |
|
| 104 |
+
| `Slopus-9B-Q8_0.gguf` | ~9.5 GB | Casi indistinguible de fp16. VRAM 12 GB+ |
|
| 105 |
+
|
| 106 |
+
## Uso con llama-server
|
| 107 |
+
|
| 108 |
+
**IMPORTANTE**: hay que usar `llama.cpp` tag `b8292` (commit `b54124110`). El master nuevo NO carga estos GGUF (falla con missing tensor por bug del converter+loader con la arquitectura GDN híbrida de Qwen3.5).
|
| 109 |
+
|
| 110 |
+
```bash
|
| 111 |
+
# Instalar llama.cpp en b8292
|
| 112 |
+
git clone https://github.com/ggml-org/llama.cpp
|
| 113 |
+
cd llama.cpp
|
| 114 |
+
git checkout b8292
|
| 115 |
+
cmake -B build -DGGML_CUDA=ON
|
| 116 |
+
cmake --build build --target llama-quantize llama-server -j$(nproc)
|
| 117 |
+
|
| 118 |
+
# Servir
|
| 119 |
+
export LLAMA_CHAT_TEMPLATE_KWARGS='{"enable_thinking":true}'
|
| 120 |
+
./build/bin/llama-server \
|
| 121 |
+
--model Slopus-9B-Q4_K_M.gguf \
|
| 122 |
+
-ngl 999 -fa on --no-mmap \
|
| 123 |
+
-c 65536 \
|
| 124 |
+
--parallel 4 \
|
| 125 |
+
--jinja --reasoning-format deepseek \
|
| 126 |
+
--temp 1.0 --top-p 0.95 --top-k 20 --min-p 0.0 \
|
| 127 |
+
--presence-penalty 1.5 \
|
| 128 |
+
--port 12345
|
| 129 |
+
```
|
| 130 |
+
|
| 131 |
+
## Adapter LoRA fase 2 sin merge
|
| 132 |
+
|
| 133 |
+
Si querés usar el adapter LoRA de fase 2 directo (sin el merge), está en este mismo repo bajo [`adapter/`](./adapter). Para cargarlo necesitas tener primero el merge de fase 1 — pero ese **NO está publicado** (no agrega valor frente al GGUF Q4_K_M directo). Si necesitás reproducir desde fase 1, tenes que repetir el merge tu mismo siguiendo el pipeline.
|
| 134 |
+
|
| 135 |
+
## Limitaciones
|
| 136 |
+
|
| 137 |
+
- **r=128 alpha=256 sobre 24K** es borderline de la regla de pulgar "r alto requiere dataset grande". El modelo NO mostro signos visibles de overfit (loss bajando hasta el final del epoch 2), pero sin eval set no se puede confirmar. Para usar produccion idealmente armar un benchmark out-of-distribution.
|
| 138 |
+
- **GGUF requiere llama.cpp b8292** especifico. Versiones posteriores no cargan. Este modelo no es compatible con `Ollama` standard (que usa llama.cpp interno mas nuevo) — habria que parchear Ollama o usar `llama-server` directo.
|
| 139 |
+
- **Aritmetica basica en Q4_K_M** puede tener errores (el modelo lista bien los terminos pero a veces suma mal). Usar Q6_K o Q8_0 para tasks que requieren precision numerica.
|
| 140 |
+
- **Sin RLHF/DPO**. Solo SFT en ambas fases.
|
| 141 |
+
|
| 142 |
+
## Datasets y agradecimientos
|
| 143 |
+
|
| 144 |
+
- [`Tesslate/OmniCoder-9B`](https://huggingface.co/Tesslate/OmniCoder-9B) — base. Apache 2.0.
|
| 145 |
+
- [`Gryphe/Opus-4.6-Reasoning-24k`](https://huggingface.co/datasets/Gryphe/Opus-4.6-Reasoning-24k) — fuente del dataset de razonamiento (rendereado a chat_template Qwen3.5 con `<think>` inline). Apache 2.0.
|
| 146 |
+
- llama.cpp b8292 — Github ggml-org/llama.cpp, commit b54124110.
|
| 147 |
+
- Unsloth para training eficiente bf16 LoRA.
|
| 148 |
+
- bartowski por publicar GGUFs de OmniCoder-9B con b8292 que sirvieron como referencia para confirmar la version correcta.
|
| 149 |
+
|
| 150 |
+
## Reproducir el experimento
|
| 151 |
+
|
| 152 |
+
Scripts en [`Kukedlc/omnicoder-train`](https://huggingface.co/datasets/Kukedlc/omnicoder-train) dataset repo:
|
| 153 |
+
- `train_omnicoder.py` — fase 1
|
| 154 |
+
- `train_omnicoder_fase2.py` — fase 2
|
| 155 |
+
- `setup_train.sh` / `setup_fase2.sh` — launchers en pod RunPod
|
| 156 |
+
- `watcher_upload.sh` / `watcher_upload_fase2.sh` — auto upload de checkpoints
|
| 157 |
+
|
| 158 |
+
## License
|
| 159 |
+
|
| 160 |
+
Apache 2.0 — heredado de la base OmniCoder-9B y datasets Gryphe.
|