310 lines
9.8 KiB
Markdown
310 lines
9.8 KiB
Markdown
---
|
||
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)
|
||
|
||
[](https://opensource.org/licenses/MIT)
|
||
[](https://es.wikipedia.org/wiki/Espa%C3%B1ol)
|
||
[](https://github.com/ggerganov/llama.cpp)
|
||
[](https://ollama.com/)
|
||
[]()
|
||
|
||
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 (~2–5 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: ~1–3 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 | ~30–50 tok/s (GPU) | ⭐⭐⭐⭐⭐ |
|
||
| **Q4_K_M** ⭐ | 4.4 GB | 8 GB | 6 GB VRAM | ✅ (≥16 GB RAM) | ~15–30 tok/s (GPU) / ~2–5 tok/s (CPU) | ⭐⭐⭐⭐ |
|
||
| Q3_K_M | 3.6 GB | 6 GB | 4 GB VRAM | ✅ (≥8 GB RAM) | ~10–20 tok/s (GPU) / ~1–3 tok/s (CPU) | ⭐⭐⭐ |
|
||
| Q2_K | 2.9 GB | 4 GB | Sin GPU | ✅ (≥4 GB RAM) | ~1–2 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 4–6 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}}
|
||
}
|
||
``` |