--- license: gemma base_model: google/gemma-3-4b-it language: - pt library_name: transformers pipeline_tag: text-generation tags: - gemma - lora - portuguese - brazil - conversational --- # Caramelo 3.4.2 Um assistente de IA brasileiro com a voz do Gui. É o **Gemma 3 4B** da Google com um fine-tune LoRA no estilo de escrita de **Guilherme Favaron** ([guifav.github.io](https://guifav.github.io)): direto ao ponto, argumentando com dados e exemplos, em português do Brasil, sem hype e sem emoji. > **Versão 3.4.2** — o esquema é `caramelo {geração-Gemma}.{tamanho-B}.{iteração}`: `3.4` é a base (Gemma **3**, **4**B) e `.2` é a segunda iteração do fine-tune. Estes pesos são o **decoder de texto** do Gemma 3 4B (as capacidades de visão da base não estão incluídas). ## Como ele se compara ao Gemma base Medimos em três eixos, sempre contra o Gemma 3 4B base. ### 1. Voz e estilo — o Caramelo ganha com folga Em comparação A/B cega (juízes GLM-5.2 e Codex, mesma persona e amostragem, n=24 prompts fora do treino), o Caramelo é o preferido: ![Preferência de estilo do Caramelo vs Gemma base](estilo.png) ### 2. Raciocínio — preservado O fine-tune de estilo **não** degradou o raciocínio neste benchmark. No ENEM (múltipla escolha, n=1432, acertos): | modelo | ENEM | |---|---| | Gemma 3 4B base | 57.2% | | **Caramelo 3.4.2** | **57.5%** | Trocamos a voz sem perder o raciocínio. ### 3. Conversa geral — um tradeoff honesto, e mitigado Em tarefas diversas (código, matemática, extração, explicações), a concisão do estilo do Gui chegava a custar utilidade: o modelo respondia certo, mas curto demais para o que a tarefa pedia. Uma instrução de completude na persona — aplicada server-side pelo gateway, **sem retreinar** — recuperou a utilidade mantendo a voz: ![Utilidade conversacional antes e depois da mitigação](conversa.png) ## Uso ```python from transformers import pipeline pipe = pipeline("text-generation", model="guifav/caramelo", torch_dtype="bfloat16", device_map="auto") msgs = [{"role": "user", "content": "me explica RAG em duas frases"}] print(pipe(msgs, max_new_tokens=300)[0]["generated_text"][-1]["content"]) ``` Sem o `pipeline`, aplique o chat template com `tokenizer.apply_chat_template`. Ou use a API compatível com OpenAI em [ia-caramelo.com](https://ia-caramelo.com) (CLI: `npm i -g caramelo-chat`). ## Como foi treinado - **Base:** `google/gemma-3-4b-it`. - **Dataset (~414 pares `pergunta → resposta no estilo do Gui`):** construído por correção de estilo — prompts diversos em 8 domínios → rascunho do Gemma base → reescrita no estilo do Gui (ancorada em trechos reais dos artigos) → filtro por marcadores de estilo. - **Método:** QLoRA 4-bit (r=16, alpha=32), 3 épocas. - A iteração anterior (3.4.1), treinada nos artigos crus, regrediu vs base — virava "intro de artigo" em vez de responder. A 3.4.2 corrige isso com dados conversacionais. ## Segurança Estes pesos são o **modelo de estilo**. A **camada de segurança** do Caramelo (recusa de conteúdo perigoso) é aplicada **server-side pelo gateway** em ia-caramelo.com e **não** está embutida nestes pesos. Além disso, o fine-tune de estilo pode ter enfraquecido os guardrails residuais do Gemma base. **Não use sem moderação própria.** Uso proibido: ver a [política do Gemma](https://ai.google.dev/gemma/prohibited_use_policy). ## Licença Herda os [termos de uso do Gemma](https://ai.google.dev/gemma/terms) (Google). Ao redistribuir os pesos, inclua a atribuição ao Gemma e a política de uso proibido. ## Créditos Desenvolvido, treinado e mantido por **Guilherme Favaron** — [guifav.github.io](https://guifav.github.io) · [guilhermefavaron.com.br](https://www.guilhermefavaron.com.br).