Stark v0.2-beta

AVISO: Version BETA. Respecto a v0.1: el tool-calling se reentreno con ejecucion REAL contra servidores MCP reales (filesystem, git, fetch, memory, time, postgres, sqlite) en vez de ejemplos guionados, el dataset es 100% espanol (se elimino contenido en ingles), y el razonamiento (<think>) pasa por un filtro de fidelidad que descarta cadenas que no conectan con la respuesta final. Sigue en desarrollo activo, no usar en produccion.

Modelo de lenguaje entrenado desde cero (pesos aleatorios) por Victor Cherif. Arquitectura tipo Llama de ~110M de parametros, pensado como asistente en espanol orientado a ciencia, programacion, robotica y fisica, con soporte de tool-calling / MCP entrenado contra servidores MCP reales.

Detalles del modelo

  • Parametros: ~110M (embeddings atados)
  • Arquitectura: decoder-only tipo Llama, GQA (12 query / 4 KV heads), RoPE (theta=100000), RMSNorm + SwiGLU
  • Contexto: 16384 tokens
  • Vocabulario: 16000 (tokenizer BPE a nivel de bytes propio)
  • Entrenamiento: pre-entrenamiento (~552M tokens, espanol + codigo) + SFT de instrucciones
  • Precision: fp16

Uso

from transformers import AutoModelForCausalLM, AutoTokenizer

tok = AutoTokenizer.from_pretrained("VcherifFIT/stark-mcp-scratch")
model = AutoModelForCausalLM.from_pretrained("VcherifFIT/stark-mcp-scratch")

msgs = [{"role": "system", "content": "Eres Stark, un asistente en espanol."},
        {"role": "user", "content": "Explica brevemente que es la fotosintesis."}]
inp = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt")
out = model.generate(inp, max_new_tokens=200)
print(tok.decode(out[0][inp.shape[1]:], skip_special_tokens=True))

Fallas conocidas (version BETA)

  • Al ser un modelo pequeno (~110M), el lenguaje puede ser incoherente en respuestas largas, sobre todo pasados los primeros parrafos (tiende a repetir bloques o rellenar con generalidades).
  • La aritmetica mental sigue sin ser confiable: depende de que el modelo dispare la tool calculate en vez de calcular "de memoria" -- verificado que esto mejoro pero no es perfecto.
  • El razonamiento (<think>) mejoro con un filtro de fidelidad en el dataset, pero sigue siendo experimental: no asumas que el <think> siempre refleja como se llego a la respuesta.
  • Tool-calling entrenado contra 7 servidores MCP reales (filesystem, git, fetch, memory, time, postgres, sqlite) con ejecucion real, pero la cobertura por herramienta es desigual (algunas tienen mas ejemplos que otras) -- puede fallar en herramientas poco representadas.
  • No apto para produccion: es una version de pruebas.

Que cambio respecto a v0.1-beta

  • Dataset 100% espanol: se eliminaron ~20.000 filas con contenido en ingles y se corrigieron los generadores para que no vuelva a aparecer.
  • Tool-calling real: reemplazado el dataset guionado (pocas frases fijas, resultados inventados) por generacion con ejecucion real contra servidores MCP reales via qwen2.5-coder como decisor, mucha mas diversidad de frases por herramienta.
  • Reasoning con filtro de fidelidad: se descartan cadenas <think> que no conectan con la respuesta final (verificadas por un segundo paso con el modelo generador).
  • Chat template con system prompt por defecto: si no se manda un mensaje de sistema, el template ahora antepone el PERSONA automaticamente (antes, sin system prompt, el modelo colapsaba por completo -- confirmado en pruebas).
  • Fix de checkpoint: el mejor checkpoint (menor eval_loss) ahora se respalda en una ruta estable del Hub que nunca se poda, y se carga explicitamente al publicar (antes, el podado de checkpoints viejos podia borrar el mejor antes de que load_best_model_at_end lo necesitara).
Downloads last month
159
Safetensors
Model size
87.8M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support