Instructions to use medranojl/MistralLoRAr32 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use medranojl/MistralLoRAr32 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="medranojl/MistralLoRAr32") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("medranojl/MistralLoRAr32", dtype="auto") - PEFT
How to use medranojl/MistralLoRAr32 with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use medranojl/MistralLoRAr32 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "medranojl/MistralLoRAr32" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "medranojl/MistralLoRAr32", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/medranojl/MistralLoRAr32
- SGLang
How to use medranojl/MistralLoRAr32 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "medranojl/MistralLoRAr32" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "medranojl/MistralLoRAr32", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "medranojl/MistralLoRAr32" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "medranojl/MistralLoRAr32", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use medranojl/MistralLoRAr32 with Docker Model Runner:
docker model run hf.co/medranojl/MistralLoRAr32
MistralLoRA — MedQuAD (LoRA r=32)
El modelo MistralLoRA — MedQuAD (LoRA r=32) corresponde a una versión afinada de mistralai/Mistral-7B-Instruct-v0.3 utilizando el conjunto de datos médico lavita/MedQuAD.
El proceso de afinamiento aplicó la técnica LoRA (Low-Rank Adaptation) mediante PEFT (Parameter-Efficient Fine-Tuning) con cuantización NF4 en 4 bits implementada a través de bitsandbytes.
El objetivo principal consiste en generar respuestas médicas breves, coherentes y fundamentadas en fuentes verificables, manteniendo una relación eficiente entre costo computacional y calidad de generación.
Este trabajo forma parte de la investigación documentada en:
Medrano Cerdas, J. L. (2025). MistralLoRA — MedQuAD (LoRA r=32): Afinamiento eficiente de parámetros para generación de texto médico. Hugging Face Hub.
Disponible en: https://huggingface.co/medranojl/MistralLoRAr32
Detalles del modelo
Descripción general
- Desarrollado por: José Luis Medrano Cerdas (medranojl)
- Tipo de modelo:
Causal Language Model (AutoModelForCausalLM) - Idioma: Inglés
- Finetuning de:
mistralai/Mistral-7B-Instruct-v0.3 - Licencia: Apache 2.0
- Frameworks:
Transformers,PEFT,bitsandbytes - Hardware utilizado:
NVIDIA A100 (40 GB VRAM) - Propósito: generación de texto médico verificable (Q&A)
Resultados del entrenamiento
El modelo alcanzó una pérdida de validación (eval_loss) de 0.7617 y una perplejidad final de 2.13, logrando un desempeño robusto y estable durante el proceso de ajuste fino.
La siguiente figura muestra la evolución de la pérdida durante las etapas de entrenamiento y validación del modelo LoRA r=32:
Figura 1. Evolución de la pérdida de entrenamiento y validación del modelo MistralLoRA r=32.
Evaluación en generación de texto
El modelo fue evaluado aplicando distintas estrategias de decodificación sobre el conjunto de prueba (test) del dataset MedQuAD.
Las métricas empleadas incluyen ROUGE-L (coherencia semántica), BERTScore (factualidad), Distinct-n (diversidad léxica) y Repetition Ratio (repetición de n-gramas).
| Estrategia | tokens_len | distinct_1 | distinct_2 | repetition_r3 | rougeL | bertscore_f1 |
|---|---|---|---|---|---|---|
beam_4 |
255.83 | 0.5779 | 0.9026 | 0.0000 | 0.2232 | 0.8580 |
topp_0.9 |
255.67 | 0.6140 | 0.9123 | 0.0033 | 0.2432 | 0.8571 |
temp_1.2 |
256.00 | 0.6185 | 0.9203 | 0.0020 | 0.2223 | 0.8520 |
greedy |
255.67 | 0.5587 | 0.8730 | 0.0079 | 0.2078 | 0.8514 |
temp_0.9 |
256.33 | 0.6417 | 0.9243 | 0.0007 | 0.2240 | 0.8497 |
topk_50 |
256.00 | 0.6490 | 0.9229 | 0.0007 | 0.2166 | 0.8491 |
Interpretación de los resultados
El análisis comparativo evidencia cómo la estrategia de decodificación influye directamente en las métricas de coherencia, diversidad y factualidad.
Cada enfoque equilibra de forma diferente la precisión semántica y la variedad léxica, lo cual permite adaptar el modelo según los objetivos específicos de generación textual.
- La estrategia
beam_4obtuvo el valor más alto enBERTScore, indicando mayor factualidad y consistencia semántica. - La configuración
topp_0.9alcanzó la puntuación más alta enROUGE-L, mostrando una coherencia superior con las respuestas de referencia. - El método
temp_0.9destacó por su mayor diversidad léxica (distinct-2 = 0.9243), generando textos más variados y naturales. - Nuevamente,
beam_4mostró la menor tasa de repetición (repetition_r3 = 0.0000), evidenciando estabilidad gramatical y control sintáctico.
En conjunto, los resultados confirman que MistralLoRA r=32 ofrece un equilibrio sólido entre precisión, coherencia y diversidad, destacando especialmente en escenarios que requieren respuestas informativas con bajo nivel de redundancia.
Usos
Uso directo
El modelo está diseñado para tareas de preguntas y respuestas médicas (Q&A) basadas en texto, generando respuestas fundamentadas en información validada.
Ejemplos de aplicación:
- Asistentes médicos virtuales
- Sistemas de recuperación de información en salud
- Plataformas educativas en medicina
Uso en proyectos derivados
El modelo puede ser empleado como base para experimentos de generación médica multilingüe o tareas derivadas como resumen de textos, extracción de términos clínicos o clasificación semántica.
Usos no recomendados
El modelo fue desarrollado con fines académicos y no debe utilizarse para:
- Emitir diagnósticos o recomendaciones clínicas
- Sustituir la evaluación de un profesional médico
- Procesar información sensible o confidencial
Sesgos, riesgos y limitaciones
Aunque el dataset MedQuAD contiene información verificada, las respuestas generadas pueden incluir errores o interpretaciones parciales.
El modelo depende fuertemente del contexto de la pregunta y no reemplaza la revisión médica humana.
Recomendaciones
- Supervisar todas las salidas generadas antes de su uso en entornos reales.
- Emplear el modelo únicamente con fines de investigación o educativos.
- Validar las respuestas con fuentes médicas oficiales.
Ejemplo de uso
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model = AutoModelForCausalLM.from_pretrained("medranojl/MistralLoRAr32", device_map="auto", torch_dtype=torch.float16)
tokenizer = AutoTokenizer.from_pretrained("medranojl/MistralLoRAr32")
prompt = "What are the main complications of diabetes?"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=150)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
Training/Validation Metrics (LoRA r=32) — 2025-11-02 07:57:11
| Step | Epoch | Training Loss | Validation Loss |
|---|---|---|---|
| 100 | 0.07 | 0.916400 | |
| 200 | 0.14 | 0.797800 | |
| 300 | 0.21 | 0.821200 | |
| 400 | 0.28 | 0.806400 | |
| 500 | 0.35 | 0.799300 | |
| 600 | 0.42 | 0.780000 | |
| 700 | 0.49 | 0.775600 | |
| 800 | 0.56 | 0.743300 | |
| 900 | 0.63 | 0.757700 | |
| 1000 | 0.70 | 0.757400 | |
| 1100 | 0.77 | 0.756400 | |
| 1200 | 0.84 | 0.743100 | |
| 1300 | 0.91 | 0.747400 | |
| 1400 | 0.98 | 0.745200 | |
| 1436 | 1.00 | 0.721013 | |
| 1500 | 1.04 | 0.686400 | |
| 1600 | 1.11 | 0.672900 | |
| 1700 | 1.18 | 0.655800 | |
| 1800 | 1.25 | 0.680600 | |
| 1900 | 1.32 | 0.645500 | |
| 2000 | 1.39 | 0.684100 | |
| 2100 | 1.46 | 0.653600 | |
| 2200 | 1.53 | 0.645700 | |
| 2300 | 1.60 | 0.634400 | |
| 2400 | 1.67 | 0.671100 | |
| 2500 | 1.74 | 0.638600 | |
| 2600 | 1.81 | 0.633000 | |
| 2700 | 1.88 | 0.637000 | |
| 2800 | 1.95 | 0.623200 | |
| 2872 | 2.00 | 0.700253 | |
| 2900 | 2.02 | 0.620200 | |
| 3000 | 2.09 | 0.533300 | |
| 3100 | 2.16 | 0.559500 | |
| 3200 | 2.23 | 0.553000 | |
| 3300 | 2.30 | 0.571400 | |
| 3400 | 2.37 | 0.543400 | |
| 3500 | 2.44 | 0.542100 | |
| 3600 | 2.51 | 0.547500 | |
| 3700 | 2.58 | 0.530400 | |
| 3800 | 2.65 | 0.514300 | |
| 3900 | 2.72 | 0.549400 | |
| 4000 | 2.79 | 0.550600 | |
| 4100 | 2.86 | 0.534900 | |
| 4200 | 2.93 | 0.545300 | |
| 4300 | 2.99 | 0.520600 | |
| 4308 | 3.00 | 0.710358 |
MistralLoRA — MedQuAD (LoRA r=32)
Resultados del entrenamiento
| Aspecto | Descripción |
|---|---|
| Modelo base | mistralai/Mistral-7B-Instruct-v0.3 |
| Dataset | lavita/MedQuAD (división 70/15/15) |
| Quantization | 4-bit NF4 (bitsandbytes) |
| Método | LoRA (r=32, α=64, dropout=0.05) |
| Objetivo | Generación de respuestas médicas breves y verificables |
Mejor métrica (eval_loss) |
0.700253 |
| Perplejidad final | 2.04 |
Model tree for medranojl/MistralLoRAr32
Base model
mistralai/Mistral-7B-v0.3