Downloads · 30 days
20
12% of all-time downloads
umsa-v1/model_RGPD_grupo1_470q_final
model_RGPD_grupo1_470q_final is a text generation model from umsa-v1. Use it when you need the model to write or continue text. It is set up for peft. The card lists the license as mit.
Este proyecto fue desarrollado por el Grupo 1, conformado por:
Downloads · 30 days
20
12% of all-time downloads
All-time downloads
166
Public
Repo size
129 MB
Likes
0
Public
Click a slice to open those files.
.safetensors119 MB · 80%
From the Hugging Face model README
Este proyecto fue desarrollado por el Grupo 1, conformado por:
| Integrante |
|---|
| 🎓 Chipana Wariste, Ronald Humberto |
| 🎓 Mamani Huanca, Noemi Marisol |
| 🎓 Mamani Mena, Luz Alizon |
| 🎓 Oyardo Acuña, Roni Edwin |
| 🎓 Ordoñez Marca, Marco Vladimir |
| 🎓 Quino Jiménez, Víctor Daniel |
| 🎓 Soto Palli, Ever Alcides |
Maestría en Inteligencia Artificial y Data Science para la Transformación de Negocios
Student Model - Knowledge Distillation Pipeline for GDPR Legal AI
Grupo 1 | Modelamiento de Datos II | Postgrado de Informática
</div>smollm2_rgpd_final es un modelo de lenguaje fine-tuned específicamente para asistencia legal en materia de protección de datos personales según el REGLAMENTO (UE) 2016/679 DEL PARLAMENTO EUROPEO Y DEL CONSEJO (RGPD/GDPR).
Este proyecto forma parte del trabajo académico desarrollado en el programa de Maestría en Inteligencia Artificial y Data Science para la Transformación de Negocios, donde se exploraron técnicas avanzadas de fine-tuning para adaptar modelos de lenguaje pequeños a dominios legales especializados.
El modelo fue desarrollado como parte del módulo Modelamiento de Datos II, bajo la supervisión del Prof. Anvi Alex Eponon, en el Postgrado de Informática.
El entrenamiento se basó en el texto completo del:
Este modelo representa el Student Model en un pipeline de Knowledge Distillation desarrollado por Grupo 1.
┌─────────────────────────────────────────┐
│ Teacher Model (Qwen2.5-0.5B-Instruct) │
│ Fine-tuned with LoRA │
└──────────────────┬──────────────────────┘
│ Knowledge Transfer
│ (SVOMPT Method)
▼
┌─────────────────────────────────────────┐
│ Student Model (SmolLM2-135M-Instruct) │
│ This Repository - Grupo 1 │
└─────────────────────────────────────────┘
Teacher Model: Qwen/Qwen2.5-0.5B-Instruct (fine-tuned with LoRA)
Student Model: HuggingFaceTB/SmolLM2-135M-Instruct (este repositorio)
Nombre: umsa-v1/dataset_parafraseado_grupo1
Ubicación: Hugging Face Hub
Tipo: Datos parafraseados y especializados en RGPD
El modelo soporta datos de entrenamiento en formato JSONL con dos estructuras:
{
"messages": [
{"role": "user", "content": "¿Cuáles son los principios del RGPD?"},
{"role": "assistant", "content": "Los principios del RGPD incluyen..."}
]
}
{
"question": "¿Qué es el derecho al olvido?",
"answer": "El derecho al olvido, establecido en el Artículo 17..."
}
pip install transformers torch peft trl bitsandbytes accelerate datasets
from transformers import pipeline
# Inicializar el modelo
generator = pipeline(
"text-generation",
model="smollm2_rgpd_final",
device="cuda" # o "cpu" si no tienes GPU
)
# Hacer una consulta sobre RGPD
question = "¿Cuáles son los derechos de los interesados según el RGPD?"
output = generator(
[{"role": "user", "content": question}],
max_new_tokens=256,
return_full_text=False
)[0]
print(output["generated_text"])
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# Cargar modelo y tokenizador
model_name = "smollm2_rgpd_final"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float16,
device_map="auto"
)
# Preparar el prompt
messages = [
{"role": "user", "content": "Explica el principio de minimización de datos del RGPD"}
]
input_ids = tokenizer.apply_chat_template(messages, return_tensors="pt").to(model.device)
# Generar respuesta
outputs = model.generate(
input_ids,
max_new_tokens=200,
temperature=0.7,
top_p=0.9,
do_sample=True
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
from peft import PeftModel, PeftConfig
from transformers import AutoModelForCausalLM, AutoTokenizer
# Cargar configuración
config = PeftConfig.from_pretrained("smollm2_rgpd_final")
base_model = AutoModelForCausalLM.from_pretrained(config.base_model_name_or_path)
model = PeftModel.from_pretrained(base_model, "smollm2_rgpd_final")
# Fusionar adaptadores para inferencia más rápida
model = model.merge_and_unload()
El modelo soporta tres estrategias de fine-tuning:
Entrenamiento completo de todos los parámetros del modelo.
Entrenamiento eficiente usando Low-Rank Adaptation.
Cuantización de 4-bits + LoRA para máxima eficiencia de memoria.
| Componente | Función |
|---|---|
| TRL | SFTTrainer + SFTConfig para Supervised Fine-Tuning |
| PEFT | Implementación de LoRA |
| BitsAndBytes | Cuantización para QLoRA |
| Accelerate | Entrenamiento distribuido y optimización |
| Transformers | Framework base de HuggingFace |
| Parámetro | Valor | Descripción |
|---|---|---|
| r | 16 | Rango de la matriz de adaptación |
| lora_alpha | 32 | Factor de escala para los pesos LoRA |
| lora_dropout | 0.05 | Dropout para regularización |
| bias | none | No entrenar parámetros de bias |
| task_type | CAUSAL_LM | Tipo de tarea (modelado de lenguaje causal) |
Por defecto, LoRA se aplica a:
q_proj (Query projection)v_proj (Value projection)Estos módulos son críticos en el mecanismo de atención y permiten adaptación eficiente.
| Parámetro | Valor | Descripción |
|---|---|---|
| Epochs | 6 | Número de épocas de entrenamiento |
| Batch Size | 4 | Tamaño de batch por dispositivo |
| Gradient Accumulation | 4 | Pasos de acumulación de gradientes |
| Effective Batch Size | 16 | Batch size efectivo (4 × 4) |
| Learning Rate | 2e-4 | Tasa de aprendizaje |
| Warmup Steps | 100 | Pasos de calentamiento |
| Max Sequence Length | 512 | Longitud máxima de secuencia |
| Optimizer | adamw_torch | Optimizador AdamW |
| Scheduler | cosine | Scheduler de tasa de aprendizaje |
| Precision | bf16 | Precisión de entrenamiento (bfloat16) |
from trl import SFTTrainer, SFTConfig
from peft import LoraConfig
# Configuración LoRA
lora_config = LoraConfig(
r=16,
lora_alpha=32,
lora_dropout=0.05,
bias="none",
task_type="CAUSAL_LM",
target_modules=["q_proj", "v_proj"]
)
# Configuración de entrenamiento
training_args = SFTConfig(
output_dir="./results",
num_train_epochs=6,
per_device_train_batch_size=4,
gradient_accumulation_steps=4,
learning_rate=2e-4,
warmup_steps=100,
max_seq_length=512,
optim="adamw_torch",
lr_scheduler_type="cosine",
bf16=True,
logging_steps=10,
save_strategy="epoch"
)
# Inicializar trainer
trainer = SFTTrainer(
model=model,
args=training_args,
train_dataset=dataset,
peft_config=lora_config
)
# Entrenar
trainer.train()
pip install transformers datasets accelerate peft bitsandbytes trl torch
transformers: ≥ 4.36.0
datasets: ≥ 2.14.0
accelerate: ≥ 0.24.0
peft: ≥ 0.7.0
bitsandbytes: ≥ 0.41.0
trl: ≥ 0.7.0
torch: ≥ 2.0.0
question = "¿Qué es el derecho al olvido según el RGPD?"
# Respuesta basada en Artículo 17 del RGPD
Salida esperada: Explicación detallada del derecho de supresión, condiciones y excepciones.
question = "Explica el principio de minimización de datos"
# Información del Artículo 5.1.c del RGPD
Salida esperada: Descripción del principio, aplicación práctica y ejemplos.
question = "¿Cuándo se puede transferir datos personales fuera de la UE?"
# Respuesta basada en Capítulo V del RGPD
Salida esperada: Mecanismos legales, cláusulas contractuales tipo, y excepciones.
question = "¿Cómo debe una empresa implementar el principio de privacy by design?"
# El modelo descompondrá la pregunta en aspectos técnicos, organizativos y legales
El modelo fue evaluado en:
| Modelo | Parámetros | Perplexity | Coherencia Legal |
|---|---|---|---|
| SmolLM2-135M (base) | 135M | - | Baja |
| Qwen2.5-0.5B (teacher) | 500M | - | Alta |
| SmolLM2-135M (fine-tuned) | 135M | - | Media-Alta |
Este proyecto está bajo licencia MIT. Ver el archivo LICENSE para más detalles.
Las contribuciones son bienvenidas. Por favor:
git checkout -b feature/MejorLegal)git commit -m 'Add: Nueva funcionalidad legal')git push origin feature/MejorLegal)Este modelo es un proyecto académico con fines educativos y de investigación. No debe ser utilizado como sustituto de asesoramiento legal profesional. Para consultas legales vinculantes, siempre consulte con un abogado especializado en protección de datos.
Desarrollado con ❤️ por el Grupo 1
Maestría en IA y Data Science para la Transformación de Negocios
🛡️ Protegiendo datos, transformando negocios 🚀
Knowledge Distillation • Legal AI • RGPD/GDPR • LoRA/QLoRA
</div>