MatheusMarquesEiras/qwen35-medpt-500
qwen35-medpt-500 — Modelo Experimental Reduzido (TCC)
Aviso: Este é um modelo de teste experimental, desenvolvido como parte de um Trabalho de Conclusão de Curso (TCC) universitário. Não deve ser utilizado em produção ou em contextos clínicos reais.
Adaptador LoRA (QLoRA) do Qwen/Qwen3.5-0.8B, ajustado em uma versão reduzida do dataset AKCIT/MedPT (500 exemplos por classe), para triagem médica em português brasileiro.
Este modelo é um experimento de linha de base com dados limitados, usado para comparar o impacto do tamanho do dataset em relação ao modelo `qwen35-medpt-top10`, que foi treinado com o dataset completo (~145k exemplos).
Contexto
Este modelo faz parte do TCC "Fine-tuning de LLMs para triagem médica em português brasileiro", desenvolvido por Matheus Marques Eiras e Ciro, com avaliação inspirada no HealthBench.
Detalhes do Treinamento
Especialidades (10 classes)
Uso
Este é um adaptador LoRA — você precisa carregar o modelo base e aplicar o adaptador. Importante: use enable_thinking=False (o Qwen3.5-0.8B entra em loop no thinking mode).
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel
base_model_id = "Qwen/Qwen3.5-0.8B"
adapter_id = "MatheusMarquesEiras/qwen35-medpt-500"
tokenizer = AutoTokenizer.from_pretrained(base_model_id)
model = AutoModelForCausalLM.from_pretrained(base_model_id, device_map="auto")
model = PeftModel.from_pretrained(model, adapter_id)
system_prompt = (
"Você é um assistente de triagem médica. Dado o relato do paciente, "
"indique a especialidade médica mais adequada para o atendimento. "
"Responda apenas com o nome da especialidade."
)
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": "Tenho sentido dor nos olhos e visão embaçada há uma semana."}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=False # OBRIGATÓRIO para Qwen3.5-0.8B
)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
output = model.generate(**inputs, max_new_tokens=64)
print(tokenizer.decode(output[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))Limitações e Avisos
- Modelo experimental para fins acadêmicos — não usar em decisões clínicas reais
- Treinado com apenas 4.000 exemplos (experimento de escala reduzida)
- Desempenho esperado inferior ao
qwen35-medpt-top10(dataset completo) - O modelo base (Qwen3.5-0.8B) requer
enable_thinking=False
Versões do Framework
- PEFT: 0.19.1
- Unsloth (fine-tuning otimizado)
- TRL: 1.4.0
- Transformers: 5.9.0
- PyTorch: 2.11.0+cu128
Repositório do Projeto
Código-fonte disponível em: MatheusMarquesEiras/TCC-Matheus-e-Ciro
