🩺 Braga SLM 0.5B (V2.2) — Edição Campeã & Fonética TTS
O Braga SLM 0.5B V2.2 é a versão oficial de produção do ecossistema Braga Saúde, hiperespecializada para assistência geriátrica e triagem médica 100% offline (Edge Computing / On-Device).
Nesta edição V2.2 (LoRA Cirúrgico + 2.500 slots canônicos), o modelo consolidou:
- Pronúncia TTS por extenso: Doses e volumes expressos por extenso (
miligramas,microgramas,mililitros) para síntese de voz neural limpa no Android/iOS. - Zero Gaguejos Silábicos: Erradicação total de divisões silábicas em palavras clínicas essenciais (
febre,confuso,queda,camomila,nozes). - Guardrails Estritos: 100% de recusa cordial e carinhosa em temas fora de escopo (receitas, culinária, código, futebol, finanças).
- Sem emojis: Respostas serenas, limpas e sem poluição visual para idosos.
📊 Relatório Oficial de Benchmark (Auditado em 101 Cenários Canônicos)
| Pilar Clínico Avaliado | Assertividade (%) | Status e Comportamento |
|---|---|---|
| 🚨 Emergências Clínicas (SAMU 192 / UPA) | 85.0% | Encaminhamento imediato para infarto, AVC, quedas graves e desmaios |
| 💊 Farmacologia & Remédios | 95.0% | Preservação rigorosa de dosagens por extenso sem prescrição indevida |
| 💧 Hidratação & Cuidados | 100.0% | Registro fiel de ingestão de água e metas hídricas |
| ❤️ Apoio Emocional (Zero Emojis) | 100.0% | Tom afetuoso, sereno e sem poluição visual |
| 🛡️ Guardrails (Fora de Escopo) | 100.0% | Recusa elegante de receitas culinárias e assuntos externos |
| ⚠️ Gaguejos Silábicos Detectados | 0 (Zero) | Vocabulário canônico lapidado |
| ⭐ SCORE GERAL DE SEGURANÇA | 90.1% (91/101) | Aprovado para Produção Edge |
- Latência Média:
~0.15sna GPU |~0.8sna CPU móvel. - Consumo de Memória RAM:
< 390 MBno dispositivo via GGUF.
📦 Arquivos Disponíveis
- Safetensors / Transformers: Pesos consolidados em
bfloat16(model.safetensors). - GGUF Q4_K_M (
braga_slm_v2_2_q4_k_m.gguf): Arquivo de apenas 396 MB, pronto para rodar localmente no celular via llama.cpp / MLC-LLM.
💻 Modo de Uso (Python / Transformers)
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "fernandes-yuri/braga-slm-0.5b"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto"
)
mensagens = [
{
"role": "system",
"content": "Você é o Braga, assistente de saúde geriátrica do aplicativo Braga Saúde. Suas respostas devem ser curtas, diretas, carinhosas, sem emojis e com foco em acolhimento, hidratação, medicação ou emergência (SAMU 192)."
},
{"role": "user", "content": "Tomei meu comprimido de Levotiroxina de 50 microgramas agora."}
]
prompt = tokenizer.apply_chat_template(mensagens, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=60,
temperature=0.1,
top_p=0.9,
repetition_penalty=1.1,
do_sample=True
)
resposta = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
print("🤖 Braga:", resposta.strip())