--- license: apache-2.0 base_model: google/gemma-4-E4B-it language: - pt library_name: transformers datasets: - guifav/caramelo-dataset pipeline_tag: text-generation tags: - gemma4 - lora - portuguese - brazil - conversational - caramelo --- # Caramelo 4.4.1 Modelo de IA brasileiro treinado por **Guilherme Favaron** sobre modelos open source. Esta versão usa como base o `google/gemma-4-E4B-it` (Gemma 4 E4B, Apache-2.0) e aplica um fine-tune LoRA que treina síntese e comunicação na voz de escrita do autor: resposta direta em português do Brasil, argumento com dado e exemplo, sem hype e sem emoji. A premissa do projeto: a forma de comunicar é parte da performance. Nos testes cegos abaixo, o fine-tune vence o próprio modelo base em **qualidade**, além do estilo. No ciclo em que o raciocínio bruto foi medido (3.4.2, 1.432 questões do ENEM), ele ficou no nível do base. Em produção em [ia-caramelo.com](https://ia-caramelo.com) desde julho de 2026, servindo API compatível com a OpenAI, app web e CLI (`caramelo-chat` no npm). Gratuito, com limites de uso. ## Uso ### API grátis (compatível com a OpenAI) O caminho mais rápido: a API em [ia-caramelo.com](https://ia-caramelo.com) já serve este modelo em produção, sem GPU e sem instalar nada. Crie a chave no [app](https://ia-caramelo.com/app), menu **Chaves de API**, ou pela CLI (`npm install -g caramelo-chat`, depois `caramelo login`). ```bash curl https://ia-caramelo.com/v1/chat/completions \ -H "Authorization: Bearer $CARAMELO_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "caramelo", "messages": [{"role": "user", "content": "Resuma o que é um data warehouse em uma frase."}] }' ``` Qualquer SDK que fala com a OpenAI funciona trocando a `base_url` para `https://ia-caramelo.com/v1`. Modelos disponíveis: `caramelo` (conversa e escrita) e `caramelo-code` (código). Guia completo em [ia-caramelo.com/docs](https://ia-caramelo.com/docs). ### Local com llama.cpp Este repo inclui o GGUF `Q4_K_M` usado em produção (5,0 GiB, roda em CPU): ```bash llama-server -hf guifav/caramelo-gemma4-e4b ``` O chat template do Gemma 4 liga thinking por padrão; para responder direto, como em produção, adicione `--reasoning off`. ### Transformers (merge bf16) ```python from transformers import pipeline pipe = pipeline("text-generation", model="guifav/caramelo-gemma4-e4b", torch_dtype="bfloat16", device_map="auto") msgs = [{"role": "user", "content": "me explica RAG em duas frases"}] print(pipe(msgs, max_new_tokens=400)[0]["generated_text"][-1]["content"]) ``` ## Como foi treinado - Base: `google/gemma-4-E4B-it` @ `fee6332c` (revision pinada; `training_config.json` registra o snapshot completo de hiperparâmetros, versões e revisions) - Dataset: [`guifav/caramelo-dataset`](https://huggingface.co/datasets/guifav/caramelo-dataset), 414 pares de correção de estilo (o mesmo dataset e a mesma receita do ciclo anterior; método e resultados do 4.4.1 no [relatório técnico do 4.4.1](https://ia-caramelo.com/paper/4.4.1), derivação completa do dataset no [relatório do 3.4.2](https://ia-caramelo.com/paper)) - Método: QLoRA 4-bit (r=16, alpha=32, dropout 0.05, 3 épocas, LR 2e-4), adapter de 34,9M parâmetros (0,44% do modelo); loss de treino 2,53 → 1,33 - Publicação: adapter em `guifav/caramelo-gemma4-e4b-lora-adapter`; este repo contém o merge em bf16 e o GGUF `Q4_K_M` usado em produção - Script: `finetune/gemma4_e4b/train_lora.py` no [repositório do projeto](https://github.com/guifav/caramelo) A arquitetura base `Gemma4ForConditionalGeneration` é multimodal (any-to-any: texto, imagem e áudio), mas o Caramelo opera **apenas em texto**: o LoRA é anexado só no decoder textual (`model.language_model.layers.*`) e as pernas de vision/audio ficam congeladas. Por isso o `pipeline_tag` é `text-generation`. ## Avaliação (A/B cego, 2 juízes LLM independentes) Nos 24 prompts held-out do benchmark do projeto (a tabela mostra a faixa entre os dois juízes; os gráficos, a média deles): | Comparação | Estilo | Qualidade | |---|---|---| | vs. Gemma 4 E4B base (sem fine-tune) | 100% | 91–100% | | vs. caramelo 3.4.2 (versão anterior, Gemma 3 4B) | 79–87% | 87–91% | ![Preferência do Caramelo 4.4.1 sobre o Gemma 4 E4B base em estilo e qualidade](eval-vs-base.png) ![Preferência do Caramelo 4.4.1 sobre o caramelo 3.4.2 em estilo e qualidade](eval-vs-342.png) O 4.4.1 escreve respostas mais completas que o 3.4.2 (~400 vs ~270 tokens em média); no julgamento cego, os juízes apontaram que a versão anterior omitia conteúdo relevante com mais frequência. Esses números sustentam a premissa: treinar comunicação melhora a performance medida da tarefa. No ciclo anterior (3.4.2), o raciocínio bruto foi medido em 1.432 questões do ENEM e ficou no nível do base (57,5% vs 57,2%), enquanto a qualidade julgada às cegas venceu o base em 66–70%. ## Produção Servido em CPU (llama.cpp, GGUF `Q4_K_M`, 5,0 GiB) a ~18,5 tokens/s em 4 vCPUs. O chat template do Gemma 4 liga thinking por padrão; em produção o servidor roda com `--reasoning off`. A persona e a camada de segurança são injetadas server-side pelo gateway e têm prioridade sobre instruções do usuário. ## Versões O esquema de versão é `caramelo {geração-Gemma}.{tamanho}.{iteração}`. - **4.4.1 (este repo):** Gemma 4 E4B + LoRA, em produção. Adapter em [`guifav/caramelo-gemma4-e4b-lora-adapter`](https://huggingface.co/guifav/caramelo-gemma4-e4b-lora-adapter). - **3.4.2 (geração anterior):** Gemma 3 4B + LoRA, em [`guifav/caramelo`](https://huggingface.co/guifav/caramelo). É o ciclo documentado no [relatório técnico](https://ia-caramelo.com/paper) e o da medição de raciocínio no ENEM. - **Dataset de treino das duas gerações:** [`guifav/caramelo-dataset`](https://huggingface.co/datasets/guifav/caramelo-dataset), 414 pares de correção de estilo. ## Licença O modelo base `google/gemma-4-E4B-it` é distribuído sob **Apache-2.0**; este fine-tune segue os mesmos termos. O dataset `guifav/caramelo-dataset` é de propriedade de Guilherme Favaron. Confirme a licença vigente na página do modelo base antes de redistribuir. ## Segurança A camada de segurança do Caramelo em produção é aplicada server-side pelo gateway em ia-caramelo.com. Estes pesos não devem ser usados sem moderação própria.