JARVIS/verde/qwen3.5-4b-verde.Modelfile
sito 1e3e5ca20d carril verde (Hermes Agent): documentacion, panel, voz local y RAG
Rama JARVIS-GREEN, independiente de master (el nucleo naranja queda intacto).

- README propio del carril verde con diagrama de arquitectura y capturas del panel.
- verde/: arranque, panel web, puente de voz (escucha local con faster-whisper +
  habla con la voz del naranja), pruebas (07 voz, 08 escucha), config y notas.
- Integracion RAG: nucleo/saber/busca_cli.py + skill buscar-en-apuntes, para que
  el agente consulte el mismo indice que el nucleo.
- Todo local (127.0.0.1); sin datos personales (rutas y modelo de GPU scrubeados).
2026-08-18 11:26:42 +02:00

60 lines
3 KiB
Text

# Variante de qwen3.5:4b para el carril VERDE: contexto grande para el arnes.
#
# ollama create qwen3.5:4b-verde -f verde/qwen3.5-4b-verde.Modelfile
#
# ── Por que hace falta una variante propia ─────────────────────────────────
#
# El naranja usa qwen3.5:4b-jarvis, afinado para lo contrario que esto:
# respuestas habladas cortas y VRAM libre para whisper. Medido con
# `hermes prompt-size` desde $HOME/COFRE/CODERS/JARVIS:
#
# prompt de sistema de Hermes 26.281 B
# esquemas de las 19 herramientas 55.978 B
# ─────────────────────────────────────────────
# fijo, antes de decir nada 82.259 B ≈ 20.500 tokens
#
# Contra los num_ctx 4096 del naranja. Cinco veces por encima: no es que rinda
# mal, es que no entra la pregunta.
#
# ── Y el numero NO se elige por lo que cabe, sino por lo que Hermes exige ──
#
# CORREGIDO EL 16 DE AGOSTO. Aqui ponia num_ctx 32768 con las 32 capas en GPU,
# elegido como "lo mas que cabe en la GPU". Dos cosas mal:
#
# 1. 32768 con 32 capas da cudaMalloc failed. Lo que cabia asi era 24576.
# 2. Da igual: Hermes RECHAZA cualquier modelo por debajo de 64.000 tokens
# (MINIMUM_CONTEXT_LENGTH, agent/model_metadata.py). Es un tope duro y no
# se ve hasta que abres el TUI.
#
# O sea que el contexto no se negocia: 65536. Lo que se mide entonces es
# cuantas capas caben con ese contexto, y son 16 de 32 (medido el 16 ago:
# 32 y 24 dan OOM; con 16 son 2795 MiB en tarjeta y ~3 GB en RAM).
#
# El precio son las 16 capas que van por CPU, y se paga en el prefill de los
# ~20.500 tokens del prompt fijo. Ver la tabla de tiempos en NOTAS.md.
#
# ── num_predict: el tope que no se ve venir ────────────────────────────────
#
# El naranja hereda num_predict 300 del modelo BASE (no lo pone su Modelfile).
# 300 tokens cortan el JSON de una llamada a herramienta por la mitad, y el
# sintoma seria "el modelo no sabe llamar herramientas", que es falso. Hay que
# sobrescribirlo aqui a mano.
#
# ── temperature ───────────────────────────────────────────────────────────
#
# El base trae 0.4, bien para conversar. Emitir JSON valido no es conversar:
# se baja a 0.2. Menos invencion en los nombres de parametros.
# OJO: ollama NO admite comentarios en la misma linea que un PARAMETER.
# "PARAMETER num_gpu 32 # comentario" falla con:
# Error: invalid int value [32 # comentario]
# Van encima, cada uno.
FROM qwen3.5:4b
# 16 de 32: con mas, num_ctx 65536 no carga (cudaMalloc failed)
PARAMETER num_gpu 16
# no es lo que cabe, es el suelo que exige Hermes (64.000)
PARAMETER num_ctx 65536
# 300 (el que hereda del base) cortaria una tool call por la mitad
PARAMETER num_predict 4096
# llamar herramientas no es escribir prosa
PARAMETER temperature 0.2