🧭 Mapa da Edição
📓 Um .gguf
é como uma IA dentro de um potinho de vidro, e essa semana eu abri a tampa pra ver o que tinha lá dentro.
🌊 Do outro lado, a OpenAI sendo pressionada a guardar nossos dados e a Europa lançando IAs com sotaque regulatório.
📦 Pra fechar, um combo: docs pra IAs e uma alternativa open-source ao ChatGPT pra integrar tudo.
📓 Entrada no Logbook
Por que alguns modelos de IA rodam no ollama
, e outros não?
Semana passada entrei no mundo dos formatos de modelo. Descobri que nem todo modelo tem o mesmo tipo de arquivo. Alguns usam .gguf
, outros .safetensors
, .bin
, .pth
, e por aí vai. Cada um tem seu próprio jeito de empacotar uma IA.
No meio dessa busca, um nome começou a aparecer bastante: .gguf
. E quanto mais eu lia, mais ficava claro que esse era o formato mais usado por ferramentas como ollama
, jan
, localai
, lm studio
, entre outras.
Só que aí veio a dúvida: o que tem dentro de um .gguf
?
E bem: ele é literalmente o cérebro da IA num potinho. Um arquivo que contém tudo que ela aprendeu e precisa pra funcionar, é o teu “.tsx que roda seu componente”. Mas com uma diferença, ele vem comprimido, organizado e pronto pra ser ativado localmente.
O que tem dentro de um arquivo .gguf
?
Pensa no .gguf
como um cartucho de videogame antigo. Dentro dele tem todos os dados que fazem aquele jogo existir: gráficos, sons, fases, comandos.
Agora troca o jogo por uma IA. O .gguf
tem:
Os pesos treinados do modelo (o que ela aprendeu)
O tokenizador (como ela entende a linguagem)
E várias configurações internas (tipo o tamanho da memória, quantas camadas ela usa, etc)
Pra esse cartucho funcionar, você precisa de um console compatível. E nesse caso, o console é o llama.cpp
. Ele lê o .gguf
e coloca o modelo pra funcionar na sua máquina.
Mas o que são esses "pesos"?
São números. Milhões ou bilhões deles. Eles representam o que a IA aprendeu ao longo do treinamento. Cada número é tipo um botão de ajuste no cérebro dela.
Modelos como o Mistral 7B, por exemplo, têm 7 bilhões de parâmetros. Modelos como o LLaMA 70B, têm 70 bilhões.
Quanto mais parâmetros, maior a capacidade de análise... mas também mais memória e processamento são necessários.
Tá, mas e a tal de "quantização" (os Q4, Q8, QN)?
Imagina que esses bilhões de números são como imagens em altíssima resolução.
Quantização é como salvar essas imagens num formato mais leve, tipo .jpg
, pra que possam carregar mais rápido, ocupando menos espaço.
A IA ainda funciona, mas agora com menos peso. A diferença é que, em vez de imagens, estamos falando de números matemáticos que representam conhecimento. E eles são comprimidos usando bits menores: 8 bits, 5 bits, até 2 bits.
Vamos simplificar.
Imagina que você tem um monte de números quebrados, tipo 0.237, -1.48, 2.005... e precisa guardar todos eles num pendrive velho de 4GB. A saída? Você arredonda e compacta, sem perder o essencial.
Pra isso, entram três coisas:
Tensor: pense como uma planilha gigante com todos esses números. É nela que estão os dados que a IA aprendeu.
Scale: tipo o tamanho da régua que a IA usa pra medir os valores. Ajuda a ajustar os números pra caberem em menos espaço.
Zero Point: é como o ponto zero dessa régua. Diz pra IA onde está o meio.
Com isso, o modelo faz um truque: ele troca um número cheio de casas decimais por uma versão mais simples, tipo trocar “0.1532” por “6”. Depois, na hora de usar, ele reconstrói um valor bem próximo do original. Leve, rápido e funciona!
Exemplo com Q4 (4 bits)
Vamos deixar isso mais visual.
Quantização Q4 significa que o modelo pode usar apenas 16 valores diferentes pra representar todos aqueles números quebrados que vimos antes. Sim, só 16.
Imagina uma régua curtinha, com 16 tracinhos. Cada tracinho representa um número possível. O meio da régua (o oitavo tracinho) representa o zero. Os que estão pra trás dele são números negativos, os que estão pra frente, positivos.
Agora pensa comigo: guardar um número como -0.40 ou +0.35 exige várias casas decimais. Mas se eu te digo "guarda o número 0" ou "guarda o número 15", isso é bem mais simples, né?
E tem um detalhe que faz essa régua funcionar: o scale.
Ele define quanto cada passo vale da régua no mundo real.
Ou seja: no espaço quantizado, ir do valor 1 pro 2 é só um passo. Mas para o valor original, esse passo pode significar 0.05, 0.10 ou o que o scale
determinar.
Exemplo: se o scale
for 0.05
, e o ponto zero da régua for o número 8 (ou seja, o zero_point
), então:
– O valor quantizado 0
representa -0.40
(8 passos pra trás: -8 * 0.05
)
– O valor 8
representa 0.00
– O valor 15
representa +0.35
É por isso que a IA, ao invés de guardar o número real completo, guarda só qual tracinho da régua representa aquele valor. Isso reduz muito o espaço necessário e permite que tudo funcione mais leve.
Mas aqui entra um ponto importante: quanto menos "tracinhos" na régua, menos variações a IA consegue perceber.
É como se ela enxergasse o mundo com menos nuances. O que antes era uma paleta com 1.000 cores, vira uma com 16. Ainda dá pra pintar, mas os detalhes finos somem.
Por isso modelos quantizados são mais leves e rápidos, mas podem perder um pouco de precisão (ficando mais burrinhos), especialmente em tarefas que exigem respostas complexas.
E o tokenizador?
O tokenizador é o dicionário da IA.
Mas ao invés de traduzir palavras inteiras, ele trabalha com pedaços de palavras.
"des" + "envol" + "vedor"
ou até emojis, vírgulas, acentos...
É com base nesses pedaços que o texto vira números. E só depois disso que o modelo pode pensar e responder.
Em resumo…
.gguf
é o cartucho da IA. Contém tudo que ela precisa pra funcionar.llama.cpp
é o console que roda esse cartucho.Quantização é o truque que comprime tudo sem estragar a qualidade.
Tokenizador é o dicionário da IA, que transforma palavras em números.
Entendendo esses quatro elementos, você entende o básico de como um modelo local funciona, e como ele foi empacotado pra rodar no seu próprio computador.
Já experimentou rodar um .gguf
localmente? Ou tá só olhando o potinho sem abrir?
🌊 Marés da semana
The New York Times processou a OpenAI a um tempo atrás, e agora o problema chegou a nós (usuários)… Eles abriram um pedido legal para que a OpenAI mantenha em log todas as conversas da plataforma, o que bate de frente com LGPD e outras questões de privacidade. A OpenAI emitiu uma nota sobre o que está fazendo a respeito, e sinceramente… chega a ser absurdo algo assim ter sido aprovado por um Juiz, não que eu esteja do lado da OpenAI, mas sim dos nossos dados. É bizarro.
E a Europa criou uma familia de IAs! Um grupo de IAs open-source que seguem algumas diretrizes. É uma forma de disponibilizar modelos open-source de forma “regulamentada” e nos padrões europeus (seja lá o que isso significa - regrinhas aqui e ali).
📦 Treasure - Good Stuff
Já precisou colar um link ou texto numa IA só pra ela entender uma doc? Conheci o Context7, um repositório de documentações atualizadas em formato leve (markdown ou texto puro), prontas pra qualquer LLM entender. E o mais legal: eles oferecem um MCP, o que permite conectar seu agente direto a essa fonte de dados.
E quais agentes suportam MCP? Vários que já citei em edições anteriores: algumas integradas na sua IDE como Cline/RooCode, mas se prefere uma experiência de chat, você pode usar o Claude Desktop ou uma versão open-source “chatgpt-like” que é o LibreChat, que roda em Docker, possui uma ótima interface e várias funcionalidades legais.