Capa engraçada

Qwen-3.5-0.8B-PT-BR

Modelo em português do Brasil baseado em Qwen/Qwen3.5-0.8B-Base, adaptado em duas etapas:

  1. CPT para puxar o modelo para PT-BR informal e texto social.
  2. SFT para melhorar seguimento de instruções em português.

O repositório já contém o modelo final com os adapters mesclados no peso base.

Resumo

  • Base: Qwen/Qwen3.5-0.8B-Base
  • Idioma alvo: português do Brasil
  • Formato: modelo mergeado para transformers
  • Chat template incluído no tokenizer salvo
  • Ajustado para uso geral em PT-BR com viés para linguagem de internet e instruções simples

Dados usados

Etapa 1: CPT

Mistura de corpus em português com foco em texto social:

  • yt_comments_ptbr.jsonl
    • dataset local de comentários de YouTube em PT-BR, raspado pelo autor deste finetune
  • carolina-c4ai/corpus-carolina
    • prioridade para a parte social media (taxonomy="soc")
    • uma fração menor do restante do corpus foi usada para manter diversidade

Mistura aproximada usada no treino:

  • 45% comentários de YouTube locais
  • 45% Carolina social
  • 10% restante do Carolina

Etapa 2: SFT

  • TucanoBR/Tucano-SFT

O SFT foi treinado em cima do melhor checkpoint de CPT encontrado localmente (checkpoint-1200).

Pipeline de treino

CPT

  • Base inicial: Qwen/Qwen3.5-0.8B-Base
  • Método: QLoRA/LoRA
  • Objetivo: adaptação contínua para PT-BR social/informal

Seleção do melhor checkpoint de CPT por holdout local em comentários de YouTube:

  • base: 4.91083
  • checkpoint-1000: 4.52108
  • checkpoint-1200: 4.45688

O checkpoint 1200 foi mantido como melhor ponto antes do SFT.

SFT

  • Framework: Unsloth
  • Dataset: TucanoBR/Tucano-SFT
  • LoRA:
    • r=16
    • lora_alpha=32
    • lora_dropout=0.05
  • Módulos alvo:
    • q_proj
    • k_proj
    • v_proj
    • o_proj
    • gate_proj
    • up_proj
    • down_proj

Métrica final registrada no holdout do SFT:

  • final_eval_loss: 1.6539

Uso

from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "henriqueimoveis/Qwen-3.5-0.8B-PT-BR"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")

messages = [
    {"role": "system", "content": "Responda em português de forma direta e útil."},
    {"role": "user", "content": "Explique o que é overfitting em linguagem simples."},
]

inputs = tokenizer.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_tensors="pt",
).to(model.device)

outputs = model.generate(
    inputs,
    max_new_tokens=256,
    temperature=1.0,
    top_p=0.95,
    top_k=20,
    repetition_penalty=1.0,
)

print(tokenizer.decode(outputs[0], skip_special_tokens=True))

Observações

  • É um modelo pequeno (0.8B), então ainda pode produzir respostas tortas, repetitivas ou rasas.
  • O foco foi adaptar melhor o comportamento para PT-BR, não competir com modelos maiores.
  • A qualidade final depende bastante do prompt, da amostragem e do limite de capacidade do modelo base.

Limitações

  • Pode alucinar fatos.
  • Pode responder de forma prolixa ou pouco precisa.
  • Pode refletir ruído e estilo coloquial dos dados de internet usados no CPT.
  • Não foi validado para uso médico, legal, financeiro ou outros cenários de alto risco.

Créditos

  • Modelo base: Qwen/Qwen3.5-0.8B-Base
  • Corpus para CPT:
    • carolina-c4ai/corpus-carolina
    • comentários locais de YouTube em PT-BR
  • SFT:
    • TucanoBR/Tucano-SFT

Licença e termos

Este modelo deriva de Qwen/Qwen3.5-0.8B-Base. O uso do modelo final deve respeitar os termos, a licença e as restrições aplicáveis ao modelo base e aos datasets utilizados.

Downloads last month
348
Safetensors
Model size
0.8B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for henriqueimoveis/Qwen-3.5-0.8B-PT-BR

Adapter
(4)
this model

Space using henriqueimoveis/Qwen-3.5-0.8B-PT-BR 1