Upload README.md with huggingface_hub
Browse files
README.md
CHANGED
|
@@ -26,6 +26,11 @@ library_name: gguf
|
|
| 26 |
corre en tu máquina, no en la nube. Fine-tune **LoRA** de `Qwen/Qwen3-4B-Instruct-2507` para el núcleo
|
| 27 |
de Daimon: **acciones de agente (tool-calling JSON), código y conversación en español nativo**.
|
| 28 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
### 📊 Benchmark (medido, reproducible)
|
| 30 |
|
| 31 |
<div align="center">
|
|
@@ -56,17 +61,21 @@ mismo harness) para que la comparación sea justa:
|
|
| 56 |
|---|---|---|---|
|
| 57 |
| HumanEval | 74.4% | **72.0%** | ❌ pierde |
|
| 58 |
| MBPP | 82.5% | **75.8%** | ❌ pierde |
|
| 59 |
-
| MMLU (subset) | 68.4% | **
|
| 60 |
| BFCL-lite (tool-calling estandar) | 76.0% | **77.0%** | ✅ gana |
|
| 61 |
|
| 62 |
*HumanEval/MBPP: pass@1 con ejecución real de tests ocultos (no similitud de
|
| 63 |
texto). MMLU: subset de 15 materias, precisión 0-shot. BFCL-lite: subset AST
|
| 64 |
del Berkeley Function-Calling Leaderboard v3 (simple/multiple/parallel/
|
| 65 |
parallel_multiple/irrelevance) — mide tool-calling en un esquema DISTINTO al
|
| 66 |
-
nuestro.
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 70 |
|
| 71 |
### 🧠 Con qué se entrenó (por contribución)
|
| 72 |
|
|
@@ -115,6 +124,65 @@ Respuesta esperada (un único objeto JSON, sin prosa alrededor):
|
|
| 115 |
|
| 116 |
SHA-256 del LoRA publicado: `ee6ad40ac3e2c6019a4526b0f0ce6c423b16a32a875315b24008e6c789149f06`.
|
| 117 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 118 |
---
|
| 119 |
|
| 120 |
## 🇬🇧 English
|
|
|
|
| 26 |
corre en tu máquina, no en la nube. Fine-tune **LoRA** de `Qwen/Qwen3-4B-Instruct-2507` para el núcleo
|
| 27 |
de Daimon: **acciones de agente (tool-calling JSON), código y conversación en español nativo**.
|
| 28 |
|
| 29 |
+
**Qué es exactamente**: el modelo base `Qwen/Qwen3-4B-Instruct-2507` (GGUF cuantizado, intacto) + un
|
| 30 |
+
**LoRA de ~66MB** que lo especializa como cerebro de agente. Es un modelo estándar:
|
| 31 |
+
funciona con llama.cpp / LM Studio / cualquier stack GGUF, **sin necesidad del software
|
| 32 |
+
de Daimon** — abajo está el contrato completo de prompts para usarlo standalone.
|
| 33 |
+
|
| 34 |
### 📊 Benchmark (medido, reproducible)
|
| 35 |
|
| 36 |
<div align="center">
|
|
|
|
| 61 |
|---|---|---|---|
|
| 62 |
| HumanEval | 74.4% | **72.0%** | ❌ pierde |
|
| 63 |
| MBPP | 82.5% | **75.8%** | ❌ pierde |
|
| 64 |
+
| MMLU (subset) | 68.4% | **68.4%** | ➖ empata |
|
| 65 |
| BFCL-lite (tool-calling estandar) | 76.0% | **77.0%** | ✅ gana |
|
| 66 |
|
| 67 |
*HumanEval/MBPP: pass@1 con ejecución real de tests ocultos (no similitud de
|
| 68 |
texto). MMLU: subset de 15 materias, precisión 0-shot. BFCL-lite: subset AST
|
| 69 |
del Berkeley Function-Calling Leaderboard v3 (simple/multiple/parallel/
|
| 70 |
parallel_multiple/irrelevance) — mide tool-calling en un esquema DISTINTO al
|
| 71 |
+
nuestro.*
|
| 72 |
+
|
| 73 |
+
**El trade-off, explícito**: este LoRA es un **especialista de agente**, no un
|
| 74 |
+
fine-tune general-purpose. Los puntos que cede en código/conocimiento general
|
| 75 |
+
son el costo deliberado de la ganancia enorme en su tarea núcleo (la tabla de
|
| 76 |
+
arriba: de ~47% a ~100% en acciones correctas). Para programar "a mano" usá el
|
| 77 |
+
modelo base; para operar como agente de Daimon, este. Si una dimensión pierde,
|
| 78 |
+
se muestra perdiendo — preferimos que la card sea creíble a que sea linda.
|
| 79 |
|
| 80 |
### 🧠 Con qué se entrenó (por contribución)
|
| 81 |
|
|
|
|
| 124 |
|
| 125 |
SHA-256 del LoRA publicado: `ee6ad40ac3e2c6019a4526b0f0ce6c423b16a32a875315b24008e6c789149f06`.
|
| 126 |
|
| 127 |
+
### 🔌 Cómo usarlo standalone (sin el software de Daimon)
|
| 128 |
+
|
| 129 |
+
El modelo no depende de ninguna app: es un GGUF estándar servido con llama.cpp
|
| 130 |
+
(o LM Studio, Ollama con adapter, etc.). Lo único que necesitás es hablarle con
|
| 131 |
+
los **system prompts con los que fue entrenado**. Tiene 4 modos:
|
| 132 |
+
|
| 133 |
+
<details>
|
| 134 |
+
<summary><b>1. Agente de navegador</b> — devuelve UNA acción JSON por paso</summary>
|
| 135 |
+
|
| 136 |
+
System prompt (exacto):
|
| 137 |
+
```text
|
| 138 |
+
Sos el navegador autónomo de Daimon. En cada paso recibís el objetivo, la página actual (elementos interactivos con su ref + texto visible) y el historial. Respondé SOLO con un objeto JSON de esta forma:
|
| 139 |
+
{"thought":"...","action":"navigate|click|fill|scroll|back|done","ref":<n>,"text":"...","url":"...","answer":"..."}
|
| 140 |
+
- navigate requiere url. click/fill requieren ref (de la lista). fill además text.
|
| 141 |
+
- Cuando cumpliste el objetivo: action='done' y poné el resultado en answer.
|
| 142 |
+
- Un solo JSON, sin markdown ni texto extra.
|
| 143 |
+
```
|
| 144 |
+
En el user message pasás: `Objetivo: ...`, la URL/título, la lista de elementos
|
| 145 |
+
(`[0] input "Email"` …), el texto visible y el historial. Respuesta:
|
| 146 |
+
`{"thought": "…", "action": "fill", "ref": 1, "text": "gatos"}`.
|
| 147 |
+
</details>
|
| 148 |
+
|
| 149 |
+
<details>
|
| 150 |
+
<summary><b>2. Agente de computadora</b> — click/type/key/hotkey/scroll sobre una ventana</summary>
|
| 151 |
+
|
| 152 |
+
System prompt (exacto):
|
| 153 |
+
```text
|
| 154 |
+
Sos el control de computadora de Daimon. Cada paso recibís el objetivo, la ventana actual (elementos con su ref + nombre) y el historial. Respondé SOLO con un JSON:
|
| 155 |
+
{"thought":"...","action":"click|type|key|hotkey|scroll|done","ref":<n>,"text":"...","key":"...","keys":["ctrl","c"],"dy":<n>,"answer":"..."}
|
| 156 |
+
- click requiere ref (de la lista). type escribe text en el foco actual. key presiona una tecla; hotkey una combinación (keys). scroll usa dy (negativo = abajo).
|
| 157 |
+
- Cuando cumpliste el objetivo: action='done' con answer.
|
| 158 |
+
- Un solo JSON, sin markdown ni texto extra.
|
| 159 |
+
```
|
| 160 |
+
</details>
|
| 161 |
+
|
| 162 |
+
<details>
|
| 163 |
+
<summary><b>3. Agente de código</b> — read_file/write_file/run/done sobre un workspace</summary>
|
| 164 |
+
|
| 165 |
+
System prompt (exacto):
|
| 166 |
+
```text
|
| 167 |
+
Sos el agente de código autónomo de Daimon. Trabajás sobre el repo real. En cada paso recibís la tarea, el árbol del workspace y el historial de acciones/observaciones. Respondé SOLO con un JSON:
|
| 168 |
+
{"thought":"...","action":"read_file|write_file|run|done","path":"rel/ruta","content":"...","command":"...","answer":"..."}
|
| 169 |
+
- read_file: leé antes de editar. write_file: contenido COMPLETO del archivo. run: comandos de verificación (tests/build) o shell. done: cuando terminaste, con answer.
|
| 170 |
+
- Editá de a poco y verificá con tests/build. Un solo JSON, sin markdown.
|
| 171 |
+
```
|
| 172 |
+
</details>
|
| 173 |
+
|
| 174 |
+
<details>
|
| 175 |
+
<summary><b>4. Tool-calling genérico</b> — formato estándar <code><tool_call></code> de Qwen</summary>
|
| 176 |
+
|
| 177 |
+
Para function-calling clásico (tus propias tools con JSON schema), usá el
|
| 178 |
+
formato nativo: listá las herramientas en el system prompt y pedí respuestas
|
| 179 |
+
`<tool_call>\n{"name": ..., "arguments": {...}}\n</tool_call>`. Medido en
|
| 180 |
+
BFCL-lite (tabla de abajo) — el fine-tune lo mantiene por encima del base.
|
| 181 |
+
</details>
|
| 182 |
+
|
| 183 |
+
El loop del agente (ejecutar la acción, observar, re-prompt con el historial)
|
| 184 |
+
lo implementás vos — el modelo es el cerebro que decide la próxima acción.
|
| 185 |
+
|
| 186 |
---
|
| 187 |
|
| 188 |
## 🇬🇧 English
|