lucas-mella commited on
Commit
dcdc5cf
·
verified ·
1 Parent(s): ff4fb94

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +73 -5
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% | **67.2%** | pierde |
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. Si el fine-tune pierde en alguna dimensión, se muestra perdiendo:
67
- el LoRA se entrenó para el núcleo de Daimon (agent-actions), no es un
68
- fine-tune general-purpose, y ese trade-off queda documentado acá en vez de
69
- escondido.
 
 
 
 
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>&lt;tool_call&gt;</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