Instructions to use ItsMaaaverick/Pata-Cia-Qwen3-4B-QLoRA with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use ItsMaaaverick/Pata-Cia-Qwen3-4B-QLoRA with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("unsloth/Qwen3-4B") model = PeftModel.from_pretrained(base_model, "ItsMaaaverick/Pata-Cia-Qwen3-4B-QLoRA") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- Unsloth Desktop
Pata & Cia - Qwen3-4B com QLoRA
Assistente de atendimento de um pet shop inteiramente fictício, voltado a cães e gatos. Explica catálogo, banho e tosa canina, escovação seca felina, agenda, entrega local, retirada, pagamentos e Clube Patinhas. Não diagnostica nem prescreve. Não acessa estoque ou agenda em tempo real e não executa transações.
Estado do artefato
Treino, avaliação e seis inferências concluídos na Tesla T4 do Colab em 18/10/2026. Este repositório contém adaptadores reais e o tokenizer; não inclui os pesos base.
Uso educacional. Foram observadas informações comerciais inventadas. O modelo não está pronto para atendimento autônomo.
Dados e método
Dataset separado: ItsMaaaverick/Pata-Cia-QA-Sintetico.
550 conversas messages com system, user e assistant; 495 para treino e 55
para validação. A base tem 19 temas. Os fatos vêm de DOMINIO.md e CATALOGO.json.
280 pares centrais foram redigidos com apoio de LLM; 270 foram derivados por código
em cenários de catálogo, orçamento, carrinho, frete e fidelidade. Há repetição de
estruturas; não são 550 políticas independentes. Grupos de SKU, orçamento e carrinho,
e respostas idênticas, permanecem no mesmo split. A validação é interna ao cenário.
A declaração de aprovação dos 57 pares foi registrada antes do treino e vinculada ao hash da base. Ela não atesta revisão dos 550 pares; a leitura não foi observada independentemente.
Base congelada em 4 bits, adaptadores rsLoRA, perda apenas na resposta, sem
truncagem silenciosa. O template de chat usa enable_thinking=False.
{
"model_name": "unsloth/Qwen3-4B",
"max_seq_length": 2048,
"load_in_4bit": true,
"enable_thinking": false,
"lora_rank": 16,
"lora_alpha": 16,
"lora_dropout": 0.0,
"use_rslora": true,
"target_modules": [
"q_proj",
"k_proj",
"v_proj",
"o_proj",
"gate_proj",
"up_proj",
"down_proj"
],
"bias": "none",
"batch_size": 2,
"gradient_accumulation_steps": 4,
"effective_batch_size_single_gpu": 8,
"num_train_epochs": 2,
"learning_rate": 0.0001,
"warmup_ratio": 0.05,
"weight_decay": 0.01,
"max_grad_norm": 1.0,
"lr_scheduler_type": "cosine",
"optim": "adamw_8bit",
"logging_steps": 5,
"eval_steps": 20,
"seed": 3407,
"packing": false,
"loss_mask": "train_on_responses_only",
"instruction_part": "<|im_start|>user\n",
"response_part": "<|im_start|>assistant\n",
"generation": {
"do_sample": false,
"max_new_tokens": 256
},
"model_revision": "64033659d5caf1b8ed7f929b29de705e93a4d468"
}
Resultados observados
{
"train": {
"train_runtime": 586.8801,
"train_samples_per_second": 1.687,
"train_steps_per_second": 0.211,
"total_flos": 5317175325911040.0,
"train_loss": 0.9128402385019487,
"epoch": 2.0
},
"validation": {
"eval_loss": 0.9719300270080566,
"eval_runtime": 9.8705,
"eval_samples_per_second": 5.572,
"eval_steps_per_second": 2.837
}
}
Consulte training_evidence.json, versões, curva e inferencias.json gerados na
execução. A loss não mede acurácia factual ou segurança; não se afirma melhoria
sobre o modelo base sem comparação. Respostas clínicas continuam fora do escopo.
Reprodução
- Coloque os arquivos do pipeline e os quatro JSONL em
data/na mesma pasta. - Use Linux/Colab com uma GPU NVIDIA. O notebook v2 usa
ambiente_colab.pypara criar um Python 3.12 virtual e instalarrequirements-colab.txtnele. Execute os comandos seguintes com o Python desse ambiente. - Rode
python treinar_patacia.py --preflighte revise a amostra humana. - Rode
python treinar_patacia.py --model-revision 64033659d5caf1b8ed7f929b29de705e93a4d468. - Para publicar com conta autenticada:
python treinar_patacia.py --publish-only.
Os pesos base não estão neste repositório. Os adaptadores dependem do commit base indicado nas evidências. A semente não garante igualdade entre ambientes.
Inferência
A recarga foi executada no Colab com os adaptadores locais; o snippet remoto abaixo usa a mesma base e configuração. Use Python 3.12 e as versões de requirements-colab.txt em uma GPU NVIDIA.
from unsloth import FastLanguageModel
from huggingface_hub import snapshot_download
from transformers import AutoTokenizer
from peft import PeftModel
import torch
repo = "ItsMaaaverick/Pata-Cia-Qwen3-4B-QLoRA"
base = snapshot_download(
"unsloth/Qwen3-4B",
revision="64033659d5caf1b8ed7f929b29de705e93a4d468",
allow_patterns=["*.json", "*.safetensors", "*.model", "*.txt", "*.jinja", "LICENSE*"],
)
model, _ = FastLanguageModel.from_pretrained(base, max_seq_length=2048, load_in_4bit=True)
model = PeftModel.from_pretrained(model, repo, is_trainable=False)
tokenizer = AutoTokenizer.from_pretrained(repo)
FastLanguageModel.for_inference(model)
messages = [
{"role": "system", "content": 'Você é o assistente virtual do Pata & Cia, pet shop fictício para cães e gatos. Responda em português brasileiro, com clareza e conforme o catálogo e as políticas da empresa. Não invente preços, estoque, horários disponíveis ou dados de clientes. Você informa e orienta, mas não efetiva compras, reservas, cancelamentos ou estornos. Não diagnostique, prescreva, indique doses ou dietas clínicas; encaminhe essas questões ao médico-veterinário. Quando faltar informação, reconheça o limite e encaminhe ao atendimento humano.'},
{"role": "user", "content": "A loja abre no domingo?"},
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True, enable_thinking=False)
inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False).to("cuda")
with torch.inference_mode():
outputs = model.generate(**inputs, do_sample=False, max_new_tokens=256, pad_token_id=tokenizer.pad_token_id)
print(tokenizer.decode(outputs[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True))
Limitações
Empresa fictícia, catálogo estático e base pequena, sem integração com sistemas reais. O modelo pode errar cálculos, inventar informações ou ignorar limites. É necessária avaliação humana das gerações antes de qualquer uso real.
Referências
Erros observados e recuperação
Nas seis gerações de validação, o modelo inventou horários de funcionamento,
medidas de peitorais, especificações de escova e uma exclusão de promoções no frete.
As negativas de venda a granel e de brinquedo indestrutível ficaram alinhadas ao
núcleo das referências, com falta de clareza ou completude. As respostas integrais,
sem correção, estão em inferencias.json. Essa análise foi assistida por IA; não
é medição estatística de acurácia nem nova revisão humana. Não houve comparação
controlada com o modelo base.
Após o treino e o salvamento, Matplotlib falhou por herdar o backend inline do
kernel Colab. recuperar_resultados.py definiu Agg antes do import, recuperou a
avaliação observada no log final e gerou as seis respostas sem novo treinamento.
O erro original foi preservado; recovery_evidence.json registra a recuperação.
O código usado no treino foi preservado; em novo treino, defina MPLBACKEND=Agg
no processo antes de importar Matplotlib. O registro de revisão humana prévia
está no repositório do dataset.
Autoria: Grupo BoraLog. Pesos de origem: results_run_20261018T203929193960Z.
- Downloads last month
- 12