Minerva-v0.1 / README.md
AxoneSystem's picture
Upload 20 files
101bfba verified
|
Raw History Blame Contribute Delete
5.27 kB
---
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.