199 lines
5.4 KiB
Markdown
199 lines
5.4 KiB
Markdown
|
|
---
|
||
|
|
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
|