AIUnlimited
🌳

Fundamentos de IA

🌱
AI Seeds

Comece do zero

🌿
AI Sprouts

Construa bases

🌳
AI Branches

Aplique na prática

🏕️
AI Canopy

Aprofunde-se

🌲
AI Forest

Domine a IA

🔨

Mestria em IA

✏️
AI Sketch

Comece do zero

🪨
AI Chisel

Construa bases

⚒️
AI Craft

Aplique na prática

💎
AI Polish

Aprofunde-se

🏆
AI Masterpiece

Domine a IA

📘

Prática de IA

📖
Entendendo modelos open-source

Fundamentos e recursos para modelos open-source

🎯
Do problema à tarefa do modelo

Convertendo problemas de negócio em tarefas de modelo

⚡
Executando seu primeiro modelo

Veja seus primeiros resultados em 30 minutos

🔧
Fine-tuning e avaliação

Ajuste modelos e avalie o desempenho

🚀
Sistemas de aplicação

Construa aplicações IA do mundo real

🎨
IA generativa

Explore modelos AIGC open-source

🤖
Agentes

Aprenda frameworks Agent e ferramentas MCP

📐
Fundamentos complementares

Fundamentos LLM e avaliação

🎓

Claude Academia

🤖
Claude 101

Learn AI basics with Claude

💻
Claude Code 101

Code with Claude as your pair programmer

🤝
Introduction to Claude Cowork

Collaborate with Claude on complex projects

⚙️
Claude Platform 101

Build apps with the Claude API

Laboratório

7 experimentos carregados
🧬Sandbox de Rede Neural🤖IA ou Humano?🥋Dojo de Prompt Engineering🏁Corrida de Algoritmos🧠Trivia de IA🏗️Tela de design de sistemas
🎯Entrevista simuladaEntrar no Laboratório→
🚀

Desenvolvimento de carreira

🚀
Plataforma de Lançamento de Entrevistas

Comece sua jornada

🌟
Domínio Comportamental

Domine habilidades interpessoais

💻
Entrevistas Técnicas

Passe na rodada de programação

🤖
Entrevistas de IA e ML

Domínio em entrevistas de ML

🏆
Oferta e Além

Conquiste a melhor oferta

Começar
AIUnlimited

Licença MIT

沪ICP备18025655号-11

Aprender

  • Fundamentos de IA
  • Prática de IA
  • Claude Academia
  • Laboratório
  • Desenvolvimento de carreira

Comunidade

  • Sobre
  • Perguntas Frequentes

Suporte

  • Termos de Serviço
  • Política de Privacidade
  • Contato
Acadêmicos de IA e Engenharia›⚡ Executando seu primeiro modelo›Aulas›Model Quantization Basics
📦
Executando seu primeiro modelo • Iniciante⏱️ 15 min de leitura

Model Quantization Basics

Os modelos requerem muitos recursos — Como a quantização pode ajudar?

Após baixar o modelo, você pode encontrar um erro de memória insuficiente ou de memória de vídeo insuficiente durante a execução. Este é provavelmente o último resultado que qualquer pessoa quer ver ao experimentar modelos locais.

Como introduzido anteriormente, o modelo precisa carregar seus pesos na RAM ou VRAM durante a execução, e a geração de respostas também requer espaço adicional. Se seu dispositivo não pode acomodar o modelo, além de mudar para um modelo com menos parámetros, você também pode verificar se existe uma versão quantizada disponível.

Quanto espaço a quantização pode economizar?

Os pesos do modelo são compostos por um grande número de valores numéricos, e armazenar cada valor requer uma certa quantidade de espaço. A quantização reduz o consumo de recursos do modelo ao diminuir a precisão dessas representações numéricas. Por exemplo, pesos originalmente armazenados como números de ponto flutuante de 16 bits podem ser convertidos para representações de baixa precisão predominantemente de 8 bits ou 4 bits. O número de parámetros geralmente não muda, mas o espaço ocupado por cada parâmetro se torna menor.

Tomando como exemplo um modelo de 7 bilhões de parâmetros, e considerando apenas os pesos em si sem os custos adicionais de quantização, podemos obter as seguintes estimativas aproximadas:

Representação de pesos

Tamanho teórico dos pesos

16 bits

Aproximadamente 14 GB

8 bits

Aproximadamente 7 GB

4 bits

Aproximadamente 3,5 GB

Os valores em GB aqui são calculados em unidades decimais. Arquivos quantizados reais também armazenam informações como fatores de escala e podem usar precisões mixtas, então o tamanho real pode diferir da estimativa.

Para usuários comuns, o benefício mais direto da quantização é que os arquivos de modelo ficam menores, economizando espaço para download e armazenamento, e requerendo menos RAM ou VRAM para os pesos durante a execução. Quando suportados pelo hardware e frameworks de inferência, a quantização também pode melhorar a velocidade de inferência.

No entanto, reduzir o arquivo para um quarto de seu tamanho original não significa que a velocidade de resposta aumentará quatro vezes.

Reduzir a precisão também pode afetar a qualidade da resposta, dependendo do modelo, método de quanitzação e tarefa. Ao escolher uma versão quantizada, além de confirmar que ela pode executar, você também deve testá-la com suas próprias perguntas para ver se as respostas permanecem confiáveis.

Quais abordagens existem para a quantização de modelos?

Para modelos que já foram baixados ou ajustados, a abordagem comum é a Quantização Pós-Treinamento (PTQ), que converte pesos e outros valores numéricos em representações de menor precisão após o término do treinamento do modelo. Alguns métodos requerem um pequeno lote de dados representativos para calibrar o processo de quantização e minimizar o erro.

Aula 5 de 50% concluído
←Cloud Notebooks: CPU and GPU

Discussão

Entrar participar da discussão

Outra categoria é a Quantização Sensível ao Treinamento (QAT), que simula os efeitos da quantização durante o treinamento, permitindo que o modelo se adapte a representações de baixa precisão com antecedência.

Este capítulo cobre primeiro modelos quantizados GGUF comumente usados no deployment local, ajudando você a entender arquivos, distinguir versões e fazer escolhas. Detalhes sobre outros métodos de quantização serão cobertos posteriormente.

O que há dentro de um arquivo GGUF?

Ao executar modelos com Ollama, você frequentemente verá nomes como GGUF, Q4, Q8, etc. Esses nomes estão principalmente relacionados ao formato de armazenamento e método de quantização do modelo, e são uma razão importante pela qual modelos grandes podem ser executados em computadores pessoais.

Em agosto de 2023, Georgi Gerganov introduziu o formato GGUF. Suas principais vantagens incluem deployment em arquivo único, escalabilidade, suporte a mapeamento de memória, informações completas e facilidade de uso. Um arquivo GGUF inclui um cabeçalho de arquivo, pares chave-valor de metadados e informações de tensores. Esses componentes juntos definem a estrutura e o comportamento do modelo. Como mostrado abaixo, GGUF é um formato de arquivo de modelo para inferência de modelos grandes, atualmente amplamente usado por ferramentas de inferência locais como llama.cpp e Ollama. Ollama encapsula o processamento do formato GGUF, quantização de modelos e processos de carregamento de modelos, de modo que os usuários não precisam converter formatos de modelo por si mesmos — podem baixar e executar diretamente modelos pré-quantizados. Um arquivo GGUF não contém apenas parâmetros do modelo; também inclui informações básicas do modelo, arquitetura do modelo e dados de tensores. GGUF organiza essas informações através de um formato de arquivo unificado, permitindo que ferramentas de inferência como llama.cpp leiam e carreguem diretamente. Sua estrutura básica é mostrada na figura abaixo.

ModelScope também suporta a exibição de arquivos GGUF estruturados, como mostrado abaixo. Quando ferramentas de inferência carregam arquivos GGUF, elas podem ler diretamente essas informações e carregar o modelo sem precisar preparar múltiplos arquivos de configuração de modelo separadamente.

GGUF em si é apenas um formato de arquivo de modelo e não reduz diretamente o uso de RAM ou VRAM do modelo. O que realmente reduz o consumo de recursos do modelo é a quantização.

Como interpretar nomes como Q4 e Q8?

Em llama.cpp e modelos GGUF, Q4, Q5, Q8, Q4_K_M representam diferentes nomes de quantização. Aqui, Q significa quantização, e o número seguinte indica a largura de bits principal de quantização. Por exemplo, Q4 significa quantização predominantemente de 4 bits, e Q8 significa quantização predominantemente de 8 bits.

Note que Q4 não significa que todos os parâmetros no modelo usam uniformemente representação de 4 bits. Tomando o Q4_K_M comum como exemplo, ele pertence ao tipo de quantização K-quant no llama.cpp. O Q4 no nome significa quantização predominantemente de 4 bits, K indica o uso do esquema de quantização K-quant, e M denota a configuração Medium dentro desse esquema. Na prática, diferentes tensores no modelo podem usar diferentes precisões de quantização em vez de todos os parâmetros usarem uniformemente representação de 4 bits, como mostrado na figura abaixo.

Qual versão devo baixar para o mesmo modelo?

Ao escolher um modelo GGUF, primeiro confirme que sua ferramenta de inferência suporta o modelo, depois olhe a versão de quantização específica. Uma precisão de quantização menor geralmente reduz o uso de RAM e VRAM, tornando mais fácil executar o modelo em dispositivos comuns, mas pode sacrificar parte do desempenho do modelo. Uma precisão de quantização maior geralmente preserva mais das capacidades do modelo original, mas também requer mais recursos de hardware.

Se uma versão já está próxima dos limites de RAM ou VRAM do seu dispositivo, considere mudar para uma versão menor para deixar espaço para contexto e operações de execução. Se os recursos forem suficientes, você pode usar as mesmas perguntas para comparar as respostas de diferentes versões, prestando atenção especial às suas tarefas alvo como extração de informações, geração de código ou produção de saídas estruturadas.

Primeiro confirme uma execução estável, depois verifique a qualidade das respostas. Assim, a versão quantizada que você escolher será mais adequada ao seu dispositivo e caso de uso.