--- language: - es license: cc-by-nc-4.0 library_name: transformers pipeline_tag: text-generation tags: - spanish - español - tiny - llama - gguf - from-scratch - distillation datasets: - robrenaud/multilingual_tinystories - FreedomIntelligence/alpaca-gpt4-spanish --- # Minerva v0.1 🇪🇸 **Minerva** es un modelo de lenguaje en español **diminuto** (30 millones de parámetros), entrenado **desde cero** en un ordenador portátil. Es un modelo de juguete y de aprendizaje: habla español con soltura y cuenta cuentos sencillos, pero **sabe muy poco del mundo y se inventa las cosas**. El nombre viene de Minerva, diosa romana de la sabiduría, que según el mito nació de la cabeza de Júpiter. Este modelo también "nació de la cabeza" de modelos más grandes: aprendió de textos escritos por ellos (destilación). ## Qué sabe hacer (y qué no) | ✅ Sí | ❌ No | |---|---| | Escribir en español con buena gramática | Dar datos fiables (se los inventa con seguridad) | | Contar cuentos infantiles coherentes | Matemáticas, razonamiento, programación | | Charlar con frases sencillas | Recordar conversaciones largas (ve unas 350 palabras) | | Decir quién es y por qué se llama así | Cualquier uso serio: **no lo uses para decisiones reales** | ## Ejemplos reales Respuestas generadas automáticamente al exportar el modelo (temperatura 0.7, sin escoger las mejores): > **Tú:** ¿Quién eres? > **Minerva:** Soy Minerva, un modelo de lenguaje español. No soy una persona, soy un programa de ordenador. > **Tú:** ¿Por qué te llamas Minerva? > **Minerva:** Me llamo así por Minerva, la diosa romana de la sabiduría. Según el mito, nació de la cabeza de Júpiter. Yo también nací de la cabeza de modelos más grandes: ellos me enseñaron y yo aprendí de sus respuestas. > **Tú:** ¿Cuál es la capital de España? > **Minerva:** La capital de España es Aragón. > **Tú:** ¿Qué es la paella? > **Minerva:** La paella es una tienda minorista que consiste en marcas y compresas para vender productos crudos. > **Tú:** Dame un consejo para dormir mejor. > **Minerva:** No es bueno dormir mucho. Es importante estar preparado para dormir. Las personas no pueden sentir que algo no estaba bien, y es importante tomarse un descanso y tomar descansos. > **Cuento** (empieza con «Había una vez un dragón que»): > Había una vez un dragón que podría volar. El dragón estaba enojado porque no había nadie que pudiera ayudar. ## Cómo usarlo ### Con LM Studio u Ollama (sin programar) El repositorio incluye el archivo `Minerva-v0.1-F16.gguf`. - **LM Studio**: busca `AxoneSystem/Minerva-v0.1` y descárgalo. - **Ollama**: `ollama run hf.co/AxoneSystem/Minerva-v0.1` ### Con Python (`transformers`) ```python from transformers import AutoModelForCausalLM, AutoTokenizer tok = AutoTokenizer.from_pretrained("AxoneSystem/Minerva-v0.1") modelo = AutoModelForCausalLM.from_pretrained("AxoneSystem/Minerva-v0.1") mensajes = [{"role": "user", "content": "¿Quién eres?"}] ids = tok.apply_chat_template(mensajes, add_generation_prompt=True, return_tensors="pt") salida = modelo.generate(ids, max_new_tokens=150, do_sample=True, temperature=0.7, top_k=30) print(tok.decode(salida[0, ids.shape[1]:], skip_special_tokens=True)) ``` Para que cuente un cuento, dale el principio sin plantilla de chat: `"Había una vez un gato que"`. ### Formato de chat ``` <|usuario|>¿Quién eres?<|asistente|>Soy Minerva, un modelo de lenguaje muy pequeño...<|fin|> ``` ## Cómo se entrenó | | | |---|---| | Arquitectura | Transformer decodificador tipo Llama: RMSNorm, RoPE, SwiGLU, embeddings compartidos | | Tamaño | 30M parámetros · 8 capas · 512 dimensiones · 8 cabezas · contexto de 512 tokens | | Tokenizador | BPE byte-level propio, 8.192 piezas, entrenado solo con español | | Hardware | 1 portátil con NVIDIA RTX 5070 Laptop (8 GB) | | Tiempo | ~1 h de preentreno + ~1 h de destilación y ajuste | 1. **Preentreno** (~280M tokens vistos): ~1 millón de cuentos infantiles en español escritos por Gemini 1.5 Flash (`robrenaud/multilingual_tinystories`) + ~50.000 respuestas de GPT-4 en español (`FreedomIntelligence/alpaca-gpt4-spanish`). Objetivo: predecir la siguiente palabra. 2. **Destilación**: [Salamandra-2B-Instruct](https://huggingface.co/BSC-LT/salamandra-2b-instruct) (Barcelona Supercomputing Center) respondió miles de preguntas **de forma sencilla y corta**, para que un modelo tan pequeño pudiera imitarlo. 3. **Ajuste de chat**: aprende a responder solo con las partes del asistente (las preguntas no cuentan en el aprendizaje) + unas decenas de respuestas escritas a mano sobre su identidad. Pérdida de validación final en el ajuste de chat: 2.242. El código completo de entrenamiento está en la carpeta `entrenamiento/`. ## Licencia **CC BY-NC 4.0** (uso no comercial). Parte de los datos de ajuste son respuestas de GPT-4 que proceden de Alpaca-GPT4, publicado solo para investigación y uso no comercial; por prudencia el modelo hereda esa restricción. Los cuentos (Apache-2.0) y el maestro Salamandra (Apache-2.0) no tienen esa limitación.