Legal Phi-4 México (Civil Oaxaca) - Modelos Experimentales
Este repositorio contiene adaptadores LoRA (Low-Rank Adaptation) para el modelo Phi-4, afinados específicamente para el dominio legal del estado de Oaxaca, México (Códigos Civiles y de Procedimientos).
⚠️ Importante: Los diferentes experimentos de entrenamiento se encuentran organizados en Ramas (Branches), no en la rama principal (main).
Estructura del Repositorio
Para descargar un modelo específico, debes seleccionar la revision (rama) adecuada:
| Rama (Revision) | Descripción | Learning Rate |
|---|---|---|
lr-2e-5-conservador |
Entrenamiento conservador. Mayor estabilidad, menor adaptación a jerga nueva. | 2e-5 |
lr-2e-4-optimo |
Recomendado. Balance óptimo según paper QLoRA. | 2e-4 |
lr-4e-4-agresivo |
Entrenamiento agresivo. Mayor plasticidad, riesgo de inestabilidad. | 4e-4 |
¿Cómo usarlo? (Inferencia)
Puedes cargar cualquier versión específica usando unsloth o transformers especificando el parámetro revision.
from unsloth import FastLanguageModel
import torch
# Elige la versión que quieres probar:
VERSION = "lr-2e-4-optimo"
# Carga del modelo
model, tokenizer = FastLanguageModel.from_pretrained(
model_name = "bogdanrivera/legal-phi4-mexico-civil",
revision = VERSION, # <--- AQUÍ SE SELECCIONA LA VERSIÓN DE LEARNING_RATE
max_seq_length = 2048,
dtype = None,
load_in_4bit = True,
)
FastLanguageModel.for_inference(model)
# Prompt (Formato ChatML)
messages = [
{"role": "user", "content": "¿Qué dice el artículo 1041 del código civil de Oaxaca?"}
]
inputs = tokenizer.apply_chat_template(
messages,
tokenize = True,
add_generation_prompt = True,
return_tensors = "pt"
).to("cuda")
# Generación
outputs = model.generate(input_ids = inputs, max_new_tokens = 256, use_cache = True)
respuesta = tokenizer.decode(outputs[0], skip_special_tokens = True)
print(respuesta)