Início
Think
Tópicos
GGUF versus GGML
Publicado em: 3 de julho de 2024
Colaboradores: Tim Mucci
O GPT-Generated Unified Format (GGUF) é um formato de arquivo que simplifica o uso e a implementação de grandes modelos de linguagem (LLMs). O GGUF foi especialmente projetado para armazenar modelos de inferência e ter bom desempenho em hardware de computador de nível de consumidor.
Ele consegue isso combinando os parâmetros do modelo (pesos e desvios) com metadados adicionais para uma execução eficiente. O GGUF é claro, extensível, versátil e capaz de incorporar novas informações sem destruir a compatibilidade com modelos mais antigos. O GGUF é um desenvolvimento mais recente, que se baseia nas bases estabelecidas por seu formato de arquivo antecessor, o GGML.
O GGUF é um formato binário projetado explicitamente para carregar e salvar modelos com rapidez. Por ser compatível com várias linguagens de programação, como Python e R, o GGUF aumentou a popularidade do formato. Ele também é compatível com ajuste fino, para que os usuários possam adaptar os LLMs a aplicações especializadas, e armazena modelos prontos para implementações de modelos em aplicações. Embora o GGML ainda esteja em uso, seu suporte foi substituído pelo GGUF.
Inscreva-se para esse ebook para saber qual é a melhor abordagem para preparar conjuntos de dados e empregar modelos de IA, quais resultados sua organização pode esperar de projetos de IA generativa e por que a escolha do modelo errado pode afetar severamente sua empresa.
O GGML foi o formato de arquivo que precedeu diretamente o GGUF, criado pelo desenvolvedor Georgi Gerganov. O nome é uma combinação das iniciais de Gerganov (GG) e ML para aprendizado de máquina. O GGML era uma biblioteca de tensores projetada para alto desempenho em várias plataformas de hardware. Foi também uma tentativa inicial de criar um formato de arquivo para os modelos de inteligência artificial GPT da OpenAI para facilitar o compartilhamento e a execução de modelos. O GGML foi projetado para não ser ambíguo e conter todas as informações necessárias para carregar um modelo.
O GGML foi um esforço inicial para tornar grandes modelos de linguagem acessíveis em hardware padrão. No entanto, era limitado em termos de flexibilidade e extensibilidade. Isso significa que o GGML precisava de ajustes manuais e enfrentava problemas de compatibilidade conforme os usuários adicionavam novas funcionalidades para lidar com suas limitações.
O GGUF lida com as limitações do GGML e permite adicionar novos recursos, mantendo a compatibilidade com modelos mais antigos. Como o GGUF elimina alterações urgentes, ele facilita as transições para versões mais recentes e é compatível com uma ampla gama de modelos, tornando-o uma solução abrangente. A conversão de modelos existentes para GGUF pode ser demorada e, como acontece com todos os novos formatos, usuários e desenvolvedores devem se acostumar com suas especificidades.
A Huggingface é uma empresa e uma plataforma voltada para a comunidade que fornece ferramentas e modelos para processamento de linguagem natural (PLN). Ela oferece uma biblioteca de transformadores (link externo a ibm.com), que inclui muitos modelos pré-treinados que podem ser convertidos em formato de arquivo GGUF. O Huggingface também é compatível com ajuste fino e implementação, tornando-o parte integrante do ecossistema em torno do GGUF.
Os transformadores são um tipo de arquitetura de modelos que se tornou a espinha dorsal da PLN moderna. O GGUF é compatível com o armazenamento e a implementação de modelos baseados em transformadores para aplicações que dependem dessas arquiteturas avançadas.
O GGUF fornece um formato robusto, flexível e eficiente para modelos de linguagem. Ele lida com as limitações dos formatos anteriores, garantindo a compatibilidade com tecnologias e técnicas em evolução. Sua flexibilidade aprimorada, melhor desempenho e compatibilidade com estruturas avançadas de quantização e implementação o tornam uma ferramenta crítica para o futuro da IA e do aprendizado de máquina.
Pesos do modelo são os parâmetros aprendidos por um modelo de aprendizado de máquina durante o treinamento. O GGUF armazena esses pesos de forma eficiente, permitindo carregamento e inferência rápidos. Métodos de quantização aplicados aos pesos do modelo podem melhorar ainda mais o desempenho e reduzir o consumo de recursos.
A quantização, o processo de conversão de sinais contínuos em formatos digitais com menos valores possíveis, desempenha um papel crucial no GGUF. A quantização melhora a eficiência e o desempenho, especialmente para hardware com recursos limitados. Ao reduzir o tamanho do modelo e melhorar a velocidade de inferência, os modelos quantizados exigem menos poder computacional, o que leva à redução do consumo de energia. Isso torna o GGUF altamente adequado para implementação em dispositivos de edge e plataformas móveis onde os recursos de energia são limitados.
Por exemplo, uma técnica de quantização específica usada é o GPTQ (Quantização pós-treinamento precisa para transformadores pré-treinados generativos). O GPTQ reduz o tamanho e as necessidades computacionais de um LLM, convertendo seus dados complexos em formatos mais simples. Isso permite a implementação de LLMs em dispositivos com menos memória e capacidade de processamento.
O GGUF também foi projetado para incorporar novas funcionalidades sem comprometer a compatibilidade com uma versão anterior. Esse recurso permite adicionar novos tipos de dados e metadados, tornando o GGUF pronto para o futuro. Conforme os modelos de aprendizado de máquina evoluem, o GGUF pode acomodar essas mudanças, protegendo a relevância e a adaptabilidade no longo prazo.
O projeto de formato binário do GGUF melhora significativamente a velocidade de carregamento e salvamento de modelos, o que é particularmente vital para aplicações que exigem implementação e inferência rápidas. Serviços de conversão de linguagem em tempo real e sistemas interativos de IA, por exemplo, se beneficiam do tratamento eficiente de arquivos de modelos do GGUF. Quanto mais rápido um modelo puder ser carregado e usado, melhor será a experiência do usuário nessas aplicações urgentes.
O GGUF se destaca por sua compatibilidade com técnicas avançadas de ajuste, como adaptação de baixa classificação (LoRA), adaptação quantizada de baixa classificação (QLoRA) e quantização de peso adaptável (AWQ). Essas técnicas otimizam ainda mais o desempenho do modelo e o uso dos recursos.
Além disso, o GGUF é compatível com vários níveis de quants, fornecendo flexibilidade para equilibrar a precisão e a eficiência do modelo. Os esquemas de quantização comuns compatíveis com o GGUF incluem:
Quants refere-se aos vários níveis de quantização aplicados aos pesos do modelo, como quantização de 2 bits, 4 bits ou 8 bits.
Os modelos GGUF também usam o Compute Unified Device Architecture (CUDA), uma plataforma de computação paralela e uma interface de programação de aplicativos que permite que os modelos usem GPUs para tarefas de computação aceleradas. Esse recurso melhora a eficiência computacional e a velocidade dos modelos de linguagem. Por fim, a integração do GGUF com o Langchain, uma framework para desenvolver e implementar modelos de linguagem, facilita a implementação de modelos GGUF para que possam ser usados efetivamente em ambientes e aplicações de desenvolvimento.
A Meta usa o GGUF para seus modelos LLaMA (Llama-2 e Llama-3), que são projetados para tarefas de processamento de linguagem natural (PLN), incluindo geração de texto, resumo e resposta a perguntas. O GGUF no LLaMA permite a implantação em diferentes configurações de hardware, desde GPUs de alto desempenho até CPUs de nível de consumidor mais comuns. O Llama-3 é o modelo atual.
Essa interface da web gera texto usando LLMs e usa o GGUF para armazenamento e inferência de modelos. A flexibilidade do GGUF permite que os usuários carreguem grandes modelos rapidamente para realizar tarefas de geração de texto com latência mínima.
Um cliente popular para executar LLMs localmente, a KoboldCpp adotou o GGUF para melhorar seu desempenho para os usuários finais. Isso é especialmente benéfico para amadores e pesquisadores que precisam de soluções robustas e fáceis de usar para fazer experimentos com LLMs em computadores pessoais.
O desenvolvimento do GGUF é apoiado por uma comunidade colaborativa. Inúmeras bibliotecas e ferramentas foram desenvolvidas para apoiar o GGUF, garantindo ampla adoção e integração com vários fluxos de trabalho de IA. Alguns dos principais participantes desse ecossistema incluem:
A introdução do GGUF marca uma mudança em direção a formatos de modelos generativos mais sustentáveis e adaptáveis. Sua capacidade de compatibilidade com uma ampla gama de modelos e configurações significa que ele não está limitado a casos de uso ou hardware específicos. Essa versatilidade garante que o GGUF possa continuar atendendo às necessidades da comunidade de IA à medida que novos avanços surgirem.
Além disso, a ênfase do GGUF na compatibilidade com uma versão anterior minimiza a interrupção durante as atualizações, facilitando a transição para versões mais recentes sem downtime ou reconfiguração significativos.
O GGUF, sendo um formato aberto, se beneficia das contribuições colaborativas da comunidade de código aberto, que ajuda no seu desenvolvimento, melhoria e adoção generalizada. Sua adoção em projetos de alta visibilidade, como o LLaMA, e várias ferramentas de IA ressaltam sua importância na evolução contínua de grandes modelos de linguagem. Ao facilitar a implementação de modelos mais rápidos, flexíveis e preparados para o futuro, o GGUF desempenha um papel crucial no avanço dos recursos dos sistemas de IA.
A plataforma de dados e IA da IBM, o watsonx, inclui três componentes principais e um conjunto de assistentes de IA para ajudar sua organização a construir aplicações de IA personalizadas, gerenciar todas as fontes de dados e acelerar fluxos de trabalho de IA responsável.
Saiba como os serviços de consultoria em IA da IBM podem ajudar sua organização a projetar, dimensionar e integrar a IA nos processos de negócios para obter maior ROI, melhor experiência do cliente e eficiência.
A confiança na IA é alcançada usando a IA certa para o trabalho e treinando-a com os dados certos. A IA também deve ser construída com base em princípios éticos. A IBM oferece soluções de IA que podem ajudar as empresas a melhorar a produtividade e o desempenho.
Saiba o que são LLMs e as diferentes tarefas que eles podem realizar, incluindo geração de texto, resumo, tradução de idiomas, assistentes de IA e muito mais.
Explore o que é a IA generativa, o que ela pode criar e casos de uso importantes que estão sendo usados nas organizações atualmente.
Explore o que é PLN e as diferentes tarefas que ele pode executar, incluindo entender e gerar linguagem humana, extrair informações do texto e muito mais.
Descubra como adotar ferramentas de copiloto de IA em um ambiente empresarial com software de código aberto.