Files
simon-fcyt-umss-v2/README.md

199 lines
5.4 KiB
Markdown
Raw Permalink Normal View History

---
language:
- es
license: other
base_model: LiquidAI/LFM2.5-350M
library_name: peft
pipeline_tag: text-generation
tags:
- base_model:adapter:LiquidAI/LFM2.5-350M
- lora
- sft
- transformers
- trl
- unsloth
---
# simon-fcyt-umss-v2
Modelo de IA ajustado para la Facultad de Ciencias y Tecnología de la Universidad Mayor de San Simón (UMSS), diseñado para la aplicación **TecnoTime**. Su objetivo es ayudar a estudiantes a mantenerse organizados, motivados y conectados con sus actividades académicas mediante respuestas breves, consistentes y parseables.
Este modelo es un fine-tuning de `LiquidAI/LFM2.5-350M` con SFT + LoRA usando Unsloth. Está orientado a producir salidas compatibles con la estructura `SimonResponse` usada por el sistema Android.
Repositorio destino:
```text
Smith-3/simon-fcyt-umss-v2
```
## Propósito Académico
El modelo está orientado a:
- Recordatorios de clases y horarios.
- Mensajes motivacionales para mejorar continuidad académica.
- Check-ins cortos para acompañamiento del progreso diario.
- Estímulo positivo en momentos clave del semestre.
Está pensado para reforzar hábitos de constancia, asistencia, estado de ánimo y autocuidado académico.
## Formato Estructurado de Respuesta
La salida esperada no es texto libre. El modelo debe generar un único objeto JSON válido, sin Markdown alrededor, con campos compatibles con TecnoTime.
Campos base:
```json
{
"why": "...",
"opening_tag": "...",
"icon_tag": "..."
}
```
Campos por tipo de notificación:
| Tipo de notificación | Requiere | No debe incluir |
| --- | --- | --- |
| `MOTIVATIONAL_CHECK_IN` | `question`, `choices` con 2 opciones | - |
| `CLASS_REMINDER` | `question`, `choices` con 2 opciones | - |
| `CHECK_IN_CLOSURE` | `message` o `reminder_copy` | `choices` |
| `REMINDER_CLOSURE` | `reminder_copy` | `choices` |
## Ejemplos Reales Usados en TecnoTime
### Recordatorio de Clase
```json
{
"why": "Para que no pierdas tu ritmo académico",
"opening_tag": "¡Atención, estudiante FCyT!",
"question": "¿Listo para tu clase de hoy?",
"icon_tag": "info",
"choices": [
{"id": "yes", "label": "Llego en un momento"},
{"id": "no", "label": "Estoy terminando algo"}
]
}
```
### Check-in Motivacional
```json
{
"why": "Para reforzar tu constancia",
"opening_tag": "¡Vamos con toda, ingeniería!",
"question": "¿Cómo te sientes con lo que has avanzado hoy?",
"icon_tag": "focus",
"choices": [
{"id": "yes", "label": "Bien, sigo avanzando"},
{"id": "no", "label": "Hoy fue complicado"}
]
}
```
## Modelo Base y Entrenamiento
- Modelo base: `LiquidAI/LFM2.5-350M`
- Tokenizer usado en el notebook: `unsloth/LFM2.5-1.2B-Instruct`
- Método: SFT + LoRA
- Framework: Unsloth + TRL + PEFT
- Dataset: `data/processed/train_data.jsonl`
- Formato del dataset: LiquidAI `messages`
Configuración de entrenamiento v2:
| Parámetro | Valor |
| --- | --- |
| Épocas | 3 |
| Batch por dispositivo | 4 |
| Acumulación de gradiente | 4 |
| Batch efectivo | 16 |
| Learning rate | `2e-4` |
| Scheduler | `cosine` |
| Warmup ratio | `0.03` |
| LoRA rank | `16` |
| LoRA alpha | `32` |
| LoRA dropout | `0.05` |
## Archivos Esperados
Este repositorio está preparado para incluir:
| Archivo o variante | Uso recomendado |
| --- | --- |
| Adaptadores LoRA | Respaldo reproducible del fine-tuning |
| Modelo fusionado 16-bit | Versión principal para despliegue o conversión |
| `F16` GGUF | Referencia de mayor tamaño |
| `Q8_0` GGUF | Alta calidad, requiere más RAM |
| `Q6_K` GGUF | Buen equilibrio con alta calidad |
| `Q5_K_M` GGUF | Mejor equilibrio calidad/rendimiento |
| `Q4_K_M` GGUF | Equipos de bajos recursos, laboratorios o laptops modestas |
| `Q3_K_M` GGUF | Variante más liviana |
## Uso con llama.cpp
Ejemplo con una cuantización GGUF:
```bash
llama-cli -m simon-fcyt-umss-v2-Q5_K_M.gguf -p "GENERAR: CLASS_REMINDER para clase de Física"
```
## Uso con Transformers
```python
from transformers import AutoTokenizer, AutoModelForCausalLM
repo_id = "Smith-3/simon-fcyt-umss-v2"
tokenizer = AutoTokenizer.from_pretrained(repo_id)
model = AutoModelForCausalLM.from_pretrained(repo_id, torch_dtype="auto")
messages = [
{
"role": "user",
"content": "GENERAR: MOTIVATIONAL_CHECK_IN para estudiante de Ingeniería de Sistemas"
}
]
prompt = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=180)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
```
## Uso Previsto
Uso previsto:
- Integración en TecnoTime.
- Generación de respuestas JSON para notificaciones académicas.
- Apoyo motivacional breve para estudiantes.
- Inferencia local o de bajo costo con GGUF.
Fuera de alcance:
- Información académica oficial sin validación externa.
- Consejería psicológica, médica o legal.
- Decisiones administrativas o académicas automatizadas.
## Licencia
Este modelo deriva de `LiquidAI/LFM2.5-350M`. Revisa la licencia del modelo base en Hugging Face antes de redistribuir o usar comercialmente:
https://huggingface.co/LiquidAI/LFM2.5-350M
## Estado
- Adaptadores LoRA v2: preparados para publicación.
- Modelo fusionado: debe generarse desde el notebook antes de subir.
- GGUF completo: debe generarse desde el notebook antes de subir.
- Próxima etapa: publicación e integración final en TecnoTime.
### Framework versions
- PEFT 0.17.1