Modelos de ajuste fino: um mergulho profundo em quantização, Lora & Qlora
Introdução Na era de grandes modelos de linguagem (LLMS) com bilhões de parâmetros, implantação eficiente e ajuste fino tornaram-se desafios críticos. Este blog explora duas técnicas principais que abordam esses desafios: quantização e métodos de ajuste fino com eficiência de parâmetro, como Lora e Qlora. O que é quantização? A quantização é um processo de conversão de dados de um modelo de um formato de memória mais alto (como ponto flutuante de 32 bits) em um formato de memória mais baixo (como número inteiro de 8 bits). Essa transformação reduz os requisitos de armazenamento e aumenta a eficiência computacional, mantendo o desempenho do modelo. Por que quantizar? Modelos como o LLAMA 2 podem ter dezenas de bilhões de parâmetros, resultando em requisitos mais altos de memória. A quantização permite que esses grandes modelos sejam carregados em hardware de nível de consumo ou dispositivos de borda para inferência mais rápida e menor custo. Benefícios práticos: permite a implantação de modelos de aprendizado profundo em ambientes com restrição de recursos, como telefones celulares e dispositivos de borda, acelera a inferência, reduzindo a quantidade de computação necessária, torna a IA mais acessível e prática entre as plataformas, exemplo de uso de uso: quantização de um LLM complexo, os dispositivos móveis possibilitam a execução eficiente em uma GPU com VRAM limitada ou uniformes. Perdas e compensações na quantização A perda potencial de precisão, reduzindo a precisão dos pesos (de 32 bits para 8 bits, por exemplo) pode levar à perda de informações, resultando em uma ligeira diminuição da precisão do modelo. Isso representa uma troca fundamental entre eficiência e precisão. Técnicas de mitigação Técnicas foram desenvolvidas para minimizar a perda de precisão, incluindo: Métodos de calibração Treinamento com consciência de quantização Seleção cuidadosa de esquemas de quantização Formatos de precisão Formatos completos versus metade precisão Precisão completa (FP32): usa 32 bits para armazenar pesos do modelo, oferecendo alta precisão, mas exigindo mais memória. Meia precisão (FP16/INT8): usa menos bits para armazenar pesos, armazenando menos detalhes, mas sendo mais eficiente para a implantação em larga escala. A representação de dados nos pesos da memória nas redes neurais é tipicamente armazenada como números de ponto flutuante usando alocação de bits específica para: Sign Bit: indica expoente positivo ou negativo: determina a escala Mantissa: armazena os dígitos significativos que essa alocação afeta o uso da memória e a velocidade computacional. Métodos de quantização A quantização simétrica usa a mesma escala para números positivos e negativos. Normalmente usado quando os dados são distribuídos uniformemente em torno de zero. Exemplo: A normalização do lote é uma técnica que garante pesos centrados em zero para quantização simétrica. A quantização assimétrica usada quando a distribuição de dados não é centrada em zero. Envolve calibração adicional (deslocamento de ponto zero) para ajustar a transformação, tornando-a adequada para distribuições de peso distorcidas. Intuição matemática: Cálculo do fator de escala e calibração da escala: quantização simétrica: escala = (máx – min) / (quant_max – quant_min) quantização assimétrica: adicionalmente requer um ponto de retenção zero, refere -se ao rangumet, que não se refere a alinhamento de alinhamento. O objetivo é preservar o máximo de informações possível durante a conversão. Modos de quantização 1. A quantização pós-treinamento (PTQ) PTQ é aplicada a modelos pré-treinados. É preciso pesos fixos, calibra -os e os converte em um modelo quantizado. Prós: Fácil de implementar nenhum treinamento adicional necessário: pode resultar em perda de precisão pode degradar significativamente o desempenho do modelo 2. O Treinamento com reconhecimento de quantização (QAT) QAT incorpora quantização no processo de treinamento. Após a calibração, o ajuste fino é realizado com novos dados para recuperar a precisão perdida durante a quantização, resultando em um modelo quantizado mais robusto. Por que o Qat é preferido para o ajuste fino: embora o PTQ seja simples, pode degradar significativamente o desempenho do modelo. O QAT, integrando a quantização em toda a reciclagem, pode manter grande parte da precisão original do modelo, tornando-a a técnica preferida quando o Fine Tuning LLMS nos conjuntos de dados personalizados. Modelos básicos de ajuste fino com eficiência de parâmetro e LLMs de pré-treinamento como GPT-4, LLAMA 2, e outros são pré-treinados em conjuntos de dados maciços da Internet, livros e vários domínios. Estes são considerados modelos básicos ou modelos pré-treinados, otimizados para lidar com extenso contexto de vocabulário e token. Tipos de ajuste completo de parâmetros completos: atualizando todos os modelos pesos ajuste específico do domínio: finanças, assistência médica, etc. Ajuste específica da tarefa: sistemas de perguntas e respostas, texto para SQL ou modelos de recuperação de documentos que cada abordagem adapta o modelo base para tarefas especializadas. Parâmetros completos de ajuste fino e seus desafios atualizando todos os pesos: o parâmetro completo ajuste requer atualização de todos os parâmetros em modelos maciços, que podem numerar em bilhões (175b parâmetros do GPT-3). Isso oferece desempenho personalizado, mas é intensivo em recursos. Desafios: exige uma memória enorme e computa recursos (RAM, GPU), especialmente desafiadores para tarefas a jusante, como inferência e escala de monitoramento de modelos e implantação, tornam-se desafios significativos LORA-Conceitos principais de adaptação de baixa classificação LORA Introduz uma maneira eficiente de Tune LLMs, rastreando alterações de peso usando baixa adaptação. Em vez de atualizar todos os pesos, a LORA rastreia novos pesos em matrizes menores, reduzindo drasticamente o número de parâmetros treináveis. Decomposição da matriz A operação principal é a decomposição da matriz. Uma matriz de peso grande é decomposta em duas matrizes menores (por exemplo, 3 × 3 se torna 3 × 1 e 1 × 3). Multiplicar essas matrizes menores se aproxima da pegada de memória original, reduzindo a pegada da memória e a computação. Economia de parâmetros Em vez de armazenar e atualizar todo o conjunto de parâmetros, apenas as matrizes em decomposição são treinadas, economizando recursos significativamente. Por exemplo, a decomposição de bilhões de parâmetros pode ser reduzida para apenas milhões. Lora Mathematics Explicação envolve a decomposição de cada peso em um produto de baixo rank. Trabalhando com pesos pré-treinados (W₀), a Lora adiciona o produto de duas matrizes treináveis menores (A e B), de modo que os pesos atualizados sejam expressos como: W = W₀ + B × A A classificação da decomposição determina quantos parâmetros adicionais são aprendidos. A classificação superior permite mais flexibilidade para tarefas complexas, mas aumenta a contagem de parâmetros. Ajustar a classificação Lora usa valores de classificação mais altos quando o modelo deve aprender um comportamento complexo para tarefas específicas de domínio, entre 1 a 8 muitas vezes basta que a Qlora – quantizada Lora O que é Qlora? Qlora significa Lora Quantized. Ele estende Lora usando quantização, representando pesos em formatos de baixa precisão (por exemplo, convertendo FP de 16 bits em FP de 4 bits), reduzindo drasticamente as necessidades de memória durante o ajuste fino. Os principais recursos quantizados camadas treináveis: reduz os custos de armazenamento e custos computacionais Treinamento eficiente: as matrizes float16 são armazenadas em 4 bits, permitindo treinamento eficiente no processo reversível de hardware do consumidor: Após o treinamento em baixa precisão, os pesos podem ser convertidos de volta à maior precisão para a implantação de manutenção dos benefícios: a maioria dos benefícios da LORA, enquanto Reduze Reducting Memory Memory AutomodelForcaUSallm, BitsandbyTesconfig # Configurar quantização de 4 bits Bnb_config = BitsandbyTesconfig (load_in_4bit = true, bnb_4bit_use_double_quant = true, bnb_4bitbit_quant_type = “nf4”, bnB_Quant = true, bnb_4bitbit_quant_type = “NF4”, ) # Modelo de carga com modelo de quantização = automodelCorcausAllm.from_pretriled (“Microsoft/Dialogpt-Medium”, quantização_config = BNB_CONFIG, Device_Map = “Auto”) Digite o MODEMENTE FELIONETEMET MODEMENTE DE EXTEMING REVISTURATEMENTE EFFERIVENTE APRENDIZENDIDA RESPENHORAÇÃO RESPENHADORES: MODOS DE REMENTOS FELIMENTOS FELE FELE FELE TIMENTO TIMETRO DE COMPRESENTO ENFERTO ENFERTO para NLP: Modelo Model Precisão ao reduzir a escalabilidade dos parâmetros: mais fácil de implantar e gerenciar vários modelos de ajuste fino práticas recomendadas Escolha a classificação apropriada: equilíbrio entre a capacidade do modelo e a calibração da eficiência: verifique se a calibração de quantização adequada para a qlora Tareff específica como a fina e a abordagem e a abordagem com base no seu monitoramento de gestão de rastreamento durante a fina de fino e a parâmetros de parâmetros de base mais acessível e prático. Ao entender essas técnicas e seus trade-offs, os profissionais podem efetivamente implantar e personalizar o LLMS para aplicativos específicos, gerenciando recursos computacionais com eficiência. A combinação de quantização e adaptação de baixo rank abre novas possibilidades para democratizar a IA, permitindo que modelos de idiomas poderosos executem em hardware de consumo e dispositivos de borda, tornando a IA mais acessível entre plataformas e casos de uso. Esta postagem do blog fornece uma visão geral abrangente da quantização e técnicas de ajuste fino com eficiência de parâmetro. Para detalhes da implementação e casos de uso específicos, consulte os respectivos trabalhos de documentação e pesquisa.
Fonte