MiloX1
Modelo de lenguaje pequeño (50.2M parámetros) en español, entrenado 100 % desde cero: todos los pesos se inicializaron aleatoriamente; no se usó ningún modelo preentrenado de terceros ni datasets públicos de HuggingFace. Etapa de este checkpoint: preentrenamiento + SFT + DPO.
Arquitectura (formato LLaMA estándar)
| Tipo | Transformer decoder-only (LlamaForCausalLM) |
| d_model / capas | 512 / 12 |
| Atención | GQA: 8 cabezas Q, 2 KV (head_dim 64) |
| FFN | SwiGLU, hidden 1408 |
| Posiciones | RoPE (theta 10000), contexto 1024 |
| Normalización | RMSNorm pre-norm (eps 1e-06), sin biases |
| Vocabulario | 32000 tokens, BPE byte-level entrenado desde cero sobre el corpus propio |
| Embeddings | atados (entrada/salida) |
Se carga con transformers sin código remoto:
from transformers import AutoModelForCausalLM, AutoTokenizer
tok = AutoTokenizer.from_pretrained("blackdaqlabs/MiloX1")
model = AutoModelForCausalLM.from_pretrained("blackdaqlabs/MiloX1")
msgs = [{"role": "user", "content": "¿Qué es la fotosíntesis?"}]
ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt")
out = model.generate(ids, max_new_tokens=200)
print(tok.decode(out[0][ids.shape[1]:]))
Formato de chat: <|system|>…<|end|><|user|>…<|end|><|assistant|>…<|end|>. Si no se da system, la plantilla inserta:
«Eres Milo, un asistente de IA que responde siempre en español de forma clara, útil y honesta.». Las respuestas con razonamiento pueden empezar por <think> … </think>.
Datos de entrenamiento
- Preentrenamiento: ~31 M de tokens de literatura clásica en español y artículos enciclopédicos propios (corpus propio).
- SFT: ~103 k ejemplos de instrucciones y ~16.6 k de razonamiento paso a paso (propios).
- DPO: ~4 k pares de preferencias (propios).
Limitaciones (léelas)
- Es un modelo muy pequeño y entrenado con muy pocos datos: alucina con frecuencia, comete errores factuales, de aritmética y de lógica, y no debe usarse para decisiones médicas, legales, financieras ni de seguridad.
- El corpus base es en buena parte literatura clásica: el estilo puede sonar arcaico y el conocimiento del mundo actual es casi nulo.
- No se ha evaluado en benchmarks públicos; no hay garantías de seguridad ni alineamiento más allá de lo que aporten el SFT/DPO descritos. Puede generar texto sesgado o inapropiado.
- Contexto máximo de 1024 tokens.