Hablar con ventasProbar Khary
EntrenadoEntrenado hasta el paso 1260

Khary, un modelo de lenguaje propio, en español.

Un transformer de 27,8 millones de parámetros escrito desde cero, con su propio tokenizador, entrenado en CPU con texto en español. Esta página lee sus datos reales.

Arquitectura

Transformer moderno

  • Atención GQA con RoPE
  • Feed-forward SwiGLU
  • RMSNorm y weight tying
Escrito desde cero

Tamaño

27,8 M de parámetros

Capas8
Dimensión512
Contexto512
Preset «base»

Entrenamiento

Paso 1260 de 1260

Progreso 100,0 %
Pérdida 3,37
27,8 Mparámetros
512tokens de contexto
8192tokens de vocabulario
41,3 Mtokens de entrenamiento preparados

El modelo

Un modelo pequeño, construido pieza a pieza para entender cómo funciona cada parte, y entrenado con texto en español que Scout reúne con su origen.

Arquitectura

Seis piezas, escritas a mano.

Todo el código está en la carpeta llm/ del proyecto.

Decoder-only

Un transformer que predice el siguiente token, como GPT, escrito desde cero en PyTorch.

llm/model.py · KharyLM

Atención GQA

Grouped-Query Attention: varias cabezas de consulta comparten claves y valores. Menos memoria en la caché.

n_heads / n_kv_heads

RoPE

Posiciones rotatorias en las consultas y claves, en lugar de embeddings de posición aprendidos.

RotaryEmbedding

SwiGLU

Capa feed-forward con compuerta, tres matrices en vez de dos, como en los modelos modernos.

gate · up · down

RMSNorm

Normalización previa a cada bloque, más simple y estable que LayerNorm.

pre-norm

Tokenizador propio

BPE a nivel de bytes, entrenado con texto en español: nunca encuentra un carácter desconocido.

ByteBPETokenizer

Tamaños

Tres configuraciones.

Definidas en llm/config.py. El chat usa «base».

tiny

1,4 M

parámetros

  • 2 capas de dimensión 128
  • 4 cabezas de consulta, 2 de clave/valor
  • Contexto de 128 tokens

small

12,6 M

parámetros

  • 6 capas de dimensión 384
  • 6 cabezas de consulta, 2 de clave/valor
  • Contexto de 512 tokens

baseEn uso

27,8 M

parámetros

  • 8 capas de dimensión 512
  • 8 cabezas de consulta, 4 de clave/valor
  • Contexto de 512 tokens

Entrenamiento

Cómo va, con datos reales.

Pérdida de entrenamiento por paso, leída de checkpoints/training_log.csv. Menor es mejor.

9,57,35,23,014218401260

Entrenado hasta el paso 1260

Plan de 1260 pasos.

Checkpoint disponible: best.pt, guardado el 27/10/2026, 1:57:46.

PasoPérdidaTokens/s
12553,3311077
12563,3241077
12573,2931077
12583,2791077
12593,3291077
12603,3671077

Sus límites

Lo que todavía no hace.

Preferimos decírtelo antes de que lo descubras.

Respuestas útiles hoyEl entrenamiento completo aún no se ha hecho: sin un checkpoint entrenado, el chat no responde.
Seguir instruccionesEs un modelo base: completa texto. Todavía no tiene ajuste fino con diálogos.
Contexto largoVe 512 tokens a la vez, unas pocas páginas. Lo anterior se recorta.
Navegar por internetNo consulta páginas en vivo ni conoce lo de hoy.
Dar consejo médico, legal o financieroNo está pensado para eso. Consulta a un profesional.

Ficha

En una tabla.

Parámetros27.795.968 (27,8 M)
Capas8 bloques transformer
Dimensión512 (cabezas: 8 de consulta, 4 de clave/valor)
Feed-forward1408 (SwiGLU)
Contexto512 tokens
Vocabulario8192 tokens (BPE de bytes)
Datos preparados41.274.712 tokens de entrenamiento + 2.192.886 de validación
HardwareCPU (sin GPU)
EstadoEntrenado hasta el paso 1260

Ponerlo en marcha

Tres comandos.

Khary AI
# 1. Preparar datos y tokenizador (data/)
python scripts/prepare_data.py

# 2. Entrenar (guarda checkpoints/latest.pt y best.pt)
python -m llm.train

# 3. Servir el modelo para el chat y la API
python -m llm.serve

Preguntas sobre el modelo.

¿Se entrena con mis conversaciones?

No. El chat no guarda tus mensajes en el servidor: el historial vive en tu navegador.

¿Por qué es tan pequeño?

Para poder entrenarlo de principio a fin en un ordenador normal, sin GPU, y entender cada pieza.

¿Con qué texto se entrena?

Con texto en español: Wikipedia, libros de dominio público y documentos que Scout reúne con su origen y licencia.

¿Puede equivocarse?

Sí, y mucho, sobre todo mientras el entrenamiento no termine. Trátalo como un experimento.

Pruébalo tú mismo.

Si hay un checkpoint entrenado, el chat responde con el modelo real.