Files
scjn-tesis_v1/README.md

310 lines
9.8 KiB
Markdown
Raw Normal View History

---
base_model: unsloth/qwen2.5-7b-instruct-unsloth-bnb-4bit
library_name: transformers
model_name: modelo_7b
tags:
- generated_from_trainer
- unsloth
- trl
- sft
- legal
- mexico
- spanish
license: mit
language:
- es
pipeline_tag: text-generation
---
# ⚖️ Asistente Jurídico MX — Qwen 2.5 7B (Fine-tuned)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Spanish](https://img.shields.io/badge/Language-Spanish-red.svg)](https://es.wikipedia.org/wiki/Espa%C3%B1ol)
[![GGUF](https://img.shields.io/badge/Format-GGUF-blue.svg)](https://github.com/ggerganov/llama.cpp)
[![Ollama](https://img.shields.io/badge/Ollama-Compatible-brightgreen.svg)](https://ollama.com/)
[![Uso Personal](https://img.shields.io/badge/Uso-Personal%20y%20Gratuito-green.svg)]()
Modelo de lenguaje ajustado fino sobre **Qwen 2.5 7B Instruct**, especializado en **derecho mexicano**. Entrenado con tesis y jurisprudencias de la Suprema Corte de Justicia de la Nación (SCJN).
El objetivo principal es democratizar el acceso a la información jurídica en México, ofreciendo versiones optimizadas para distintos tipos de hardware — desde servidores con GPU hasta computadoras modestas sin acelerador gráfico.
> 💰 **Uso Gratuito**: Este modelo es **completamente gratuito** para uso personal, educativo y de investigación. Consulta el archivo [LICENSE](LICENSE) para más detalles.
> 📄 **Model Card**: Consulta [MODELCARD.md](MODELCARD.md) para información detallada sobre el modelo, entrenamiento, y consideraciones éticas.
---
## 📋 Versiones Disponibles del Modelo
| Versión | Archivo `.gguf` | Tamaño | Descripción |
|---|---|---|---|
| **F16** (base completo) | `modelo_7b-F16.gguf` | ~15 GB | Precisión completa, máxima calidad |
| **Q4_K_M** ⭐ (recomendado) | `modelo_7b_q4_k_m.gguf` | ~4.4 GB | Mejor equilibrio calidad/tamaño |
| **Q3_K_M** | `modelo_7b_q3_k_m.gguf` | ~3.6 GB | Para máquinas con recursos limitados |
| **Q2_K** | `modelo_7b_q2_k.gguf` | ~2.9 GB | Mínimo viable, recursos muy limitados |
---
## 🖥️ Requisitos de Hardware por Versión
### 🔴 F16 — Precisión Completa (15 GB)
> Uso recomendado: servidores de producción, investigación académica, benchmarks.
| Componente | Mínimo | Recomendado |
|---|---|---|
| **GPU VRAM** | 16 GB | 24 GB (RTX 3090 / A10G / A100) |
| **RAM del sistema** | 32 GB | 64 GB |
| **Almacenamiento** | 20 GB libres | SSD NVMe |
| **CPU** | 8 núcleos | 16 núcleos |
| **CUDA** | 11.8+ | 12.x |
```bash
# Ejecutar con Ollama (F16)
ollama run qwen2.5:7b-instruct-fp16
```
---
### 🟡 Q4_K_M — Cuantización 4-bit (4.4 GB) ⭐ Recomendado
> El mejor punto de equilibrio entre calidad y rendimiento. **Versión recomendada para la mayoría de usuarios.**
| Componente | Mínimo | Recomendado |
|---|---|---|
| **GPU VRAM** | 6 GB | 8 GB (RTX 3060 / RTX 4060 / GTX 1080 Ti) |
| **RAM del sistema** | 8 GB | 16 GB |
| **Almacenamiento** | 6 GB libres | SSD |
| **CPU** | 4 núcleos | 8 núcleos |
| **SO** | Windows 10/11, Ubuntu 20.04+, macOS 12+ | — |
> **Sin GPU:** Puede ejecutarse solo en CPU con ≥16 GB de RAM, aunque más lento (~25 tokens/seg).
```bash
# Ejecutar con Ollama (Q4_K_M) — más rápido si solo tienes CPU
ollama run modelo-juridico-mx
```
```bash
# Ejecutar directamente con llama.cpp
./llama-cli -m modelo_7b_q4_k_m.gguf \
-ngl 35 \
-c 8192 \
--temp 0.3 \
-p "<|im_start|>system\nEres un asistente jurídico especializado en derecho mexicano.<|im_end|>\n<|im_start|>user\n¿Qué es el amparo?<|im_end|>\n<|im_start|>assistant\n"
```
---
### 🟠 Q3_K_M — Cuantización 3-bit (3.6 GB)
> Para laptops o PCs con recursos limitados. Calidad ligeramente reducida pero funcional.
| Componente | Mínimo | Recomendado |
|---|---|---|
| **GPU VRAM** | 4 GB | 6 GB (GTX 1650 / RTX 3050) |
| **RAM del sistema** | 6 GB | 12 GB |
| **Almacenamiento** | 5 GB libres | HDD o SSD |
| **CPU** | 4 núcleos | 6 núcleos |
| **SO** | Windows 10/11, Ubuntu 18.04+, macOS 11+ | — |
> **Sin GPU:** Funciona en CPU con ≥8 GB RAM. Velocidad estimada: ~13 tokens/seg.
```bash
# Ejecutar con llama.cpp (Q3_K_M, solo CPU)
./llama-cli -m modelo_7b_q3_k_m.gguf \
-ngl 0 \
-c 4096 \
--temp 0.3 \
--threads 6
```
---
### 🔵 Q2_K — Cuantización 2-bit (2.9 GB)
> Para máquinas muy limitadas. Es el mínimo aceptable; la calidad de respuestas puede verse afectada en consultas complejas.
| Componente | Mínimo | Recomendado |
|---|---|---|
| **GPU VRAM** | Sin GPU requerida | 4 GB si disponible |
| **RAM del sistema** | 4 GB | 8 GB |
| **Almacenamiento** | 4 GB libres | HDD o SSD |
| **CPU** | 2 núcleos | 4 núcleos |
| **SO** | Windows 10/11, Ubuntu 18.04+, macOS 10.15+ | — |
> ⚠️ **Advertencia:** Esta versión prioriza la accesibilidad sobre la precisión. Puede omitir matices jurídicos o generar respuestas menos detalladas.
```bash
# Ejecutar con llama.cpp (Q2_K, solo CPU)
./llama-cli -m modelo_7b_q2_k.gguf \
-ngl 0 \
-c 2048 \
--temp 0.3 \
--threads 4
```
---
## 📊 Tabla Comparativa Rápida
| Versión | Tamaño | RAM mín. | GPU mín. | CPU solo | Velocidad aprox. | Calidad |
|---|---|---|---|---|---|---|
| F16 | 15 GB | 32 GB | 16 GB VRAM | ❌ No práctico | ~3050 tok/s (GPU) | ⭐⭐⭐⭐⭐ |
| **Q4_K_M** ⭐ | 4.4 GB | 8 GB | 6 GB VRAM | ✅ (≥16 GB RAM) | ~1530 tok/s (GPU) / ~25 tok/s (CPU) | ⭐⭐⭐⭐ |
| Q3_K_M | 3.6 GB | 6 GB | 4 GB VRAM | ✅ (≥8 GB RAM) | ~1020 tok/s (GPU) / ~13 tok/s (CPU) | ⭐⭐⭐ |
| Q2_K | 2.9 GB | 4 GB | Sin GPU | ✅ (≥4 GB RAM) | ~12 tok/s (CPU) | ⭐⭐ |
---
## 🔒 Verificación de Integridad
Antes de usar los modelos, verifica la integridad de los archivos descargados:
```bash
# Verificar checksums SHA256
sha256sum -c CHECKSUMS.txt
```
### Checksums SHA256
| Archivo | SHA256 |
|---|---|
| `modelo_7b-F16.gguf` | `d61fec6a9263172872626c959f20d7b23540201d791433710e819be234c36cb0` |
| `modelo_7b_q4_k_m.gguf` | `285bb2cb73626186dea5f1ad3ac310446615ae645cc4b001074ac5a11e236ce2` |
| `modelo_7b_q3_k_m.gguf` | `cde75c846845ad3a4cca5f9247458caf2d0f18e3505567252080a55caf81b08b` |
| `modelo_7b_q2_k.gguf` | `780fd1150be3637e967c99b0bee007216ac03fa512f4412d312a33776069f1f3` |
---
## 🚀 Inicio Rápido con Ollama
```bash
# 1. Asegúrate de tener Ollama instalado
# https://ollama.com/download
# 2. Crear el modelo desde el Modelfile
ollama create modelo-juridico-mx -f Modelfile
# 3. Ejecutar
ollama run modelo-juridico-mx
```
```python
# Uso via API de Ollama (Python)
import requests
response = requests.post(
"http://localhost:11434/api/generate",
json={
"model": "modelo-juridico-mx",
"prompt": "¿Qué es el juicio de amparo en México?",
"stream": False
}
)
print(response.json()["response"])
```
---
## 🏋️ Configuración de Inferencia (llama.cpp)
| Parámetro | Valor | Descripción |
|---|---|---|
| `temperature` | 0.3 | Respuestas más deterministas (legal) |
| `repeat_penalty` | 1.15 | Reduce repeticiones |
| `context_length` | 8192 | Ventana de contexto máxima |
| `num_predict` | 2048 | Tokens máximos por respuesta |
| `top_p` | 0.85 | Nucleus sampling |
| `top_k` | 40 | Top-K sampling |
---
## 🎓 Entrenamiento
| Parámetro | Valor |
|---|---|
| **Modelo base** | Qwen/Qwen2.5-7B-Instruct |
| **GPU de entrenamiento** | Tesla T4 (16 GB VRAM) |
| **VRAM utilizada** | ~15.6 GB |
| **Épocas** | 2 |
| **Batch size efectivo** | 8 (1 × grad_accum 8) |
| **Learning rate** | 2e-4 |
| **LoRA rank** | 8 |
| **Secuencia máx.** | 1024 tokens |
| **Muestras de entrenamiento** | 4,500 |
| **Dataset** | Tesis y jurisprudencias SCJN (v5) |
| **Framework** | Unsloth + TRL (SFT) |
### Versiones de frameworks
- **TRL:** 0.12.0
- **Transformers:** 4.46.0
- **PyTorch:** 2.5.0+cu121
- **Datasets:** 3.1.0
- **Tokenizers:** 0.20.3
- **Unsloth:** 2024.11
---
## 💡 ¿Qué versión debo elegir?
```
¿Tienes GPU con 8+ GB VRAM?
├── SÍ → Usa Q4_K_M ⭐ (máximo rendimiento)
└── NO → ¿Tienes GPU con 46 GB VRAM?
├── SÍ → Q3_K_M (funcionará bien)
└── NO → ¿Tienes 8+ GB RAM?
├── SÍ → Q4_K_M en CPU (lento pero correcto)
└── NO → Q2_K (mínimo viable)
```
---
## 🔗 Enlaces Útiles
- **Repositorio llama.cpp:** https://github.com/ggerganov/llama.cpp
- **Ollama:** https://ollama.com/
- **Documentación Unsloth:** https://github.com/unslothai/unsloth
- **SCJN México:** https://www.scjn.gob.mx/
---
## Contacto:
- **Correo electrónico:** alvaro.ramos.soltero@protonmail.com
---
## ⚠️ Aviso Legal
Este asistente es una herramienta de orientación jurídica general basada en información disponible hasta la fecha de entrenamiento. **No sustituye la consulta con un abogado certificado.** Las respuestas no constituyen asesoría legal profesional. Para situaciones legales específicas, siempre consulta con un profesional del derecho.
---
## 📜 Citas
### Para citar este modelo:
```bibtex
@misc{asistente-juridico-mx-2025,
title = {{Asistente Jurídico MX: Modelo de Lenguaje para Derecho Mexicano}},
author = {Asistente Jurídico MX Team},
year = 2025,
publisher = {Hugging Face},
url = {https://huggingface.co/tu-usuario/asistente-juridico-mx},
howpublished = {\url{https://huggingface.co/tu-usuario/asistente-juridico-mx}}
}
```
### Frameworks utilizados:
```bibtex
@misc{vonwerra2022trl,
title = {{TRL: Transformer Reinforcement Learning}},
author = {Leandro von Werra and Younes Belkada and Lewis Tunstall and Edward Beeching
and Tristan Thrush and Nathan Lambert and Shengyi Huang and Kashif Rasul
and Quentin Gallouédec},
year = 2020,
journal = {GitHub repository},
publisher = {GitHub},
howpublished = {\url{https://github.com/huggingface/trl}}
}
```