Análise de destaque
-
FLUXO de 1,58 bitsO primeiro será FLUXO Os parâmetros do Vision Transformer (totalizando 119 bilhões) são reduzidos em 99,5% para um modelo de quantificação de 1,58 bits, eliminando a necessidade de depender de dados de imagem e reduzindo drasticamente os requisitos de armazenamento. -
Desenvolveu um kernel linear eficiente otimizado para computação de 1,58 bits, obtendo redução significativa de memória e aceleração de inferência. -
provar FLUXO de 1,58 bits No desafiador benchmark T2I, o desempenho foi comparável ao do modelo FLUX de precisão total.
Resumo rápido
Problemas resolvidos
-
Os modelos atuais de texto para geração de imagem (T2I), como o DALLE 3 e o Stable Diffusion 3, têm um grande número de parâmetros e altos requisitos de memória para inferência, o que dificulta sua implantação em dispositivos com recursos limitados (por exemplo, dispositivos móveis). -
Este artigo se concentra na viabilidade da quantificação de bits muito baixos (1,58 bits) em modelos T2I para reduzir os requisitos de armazenamento e memória e, ao mesmo tempo, melhorar a eficiência da inferência.
Programa proposto
-
O modelo FLUX.1-dev foi escolhido como alvo de quantificação, e seus pesos foram compactados para 1,58 bits (com valores restritos a {-1, 0, +1}) por um método de quantificação pós-treinamento sem acessar os dados da imagem. -
Desenvolvimento de kernels dedicados de otimização de operações de baixo bit para melhorar ainda mais a eficiência da inferência.
Tecnologia aplicada
-
Quantificação de peso de 1,58 bitsBITES: A bitisation extremamente baixa é obtida comprimindo os pesos da camada linear do modelo para 1,58 bits usando um método semelhante ao BitNet b1.58 e armazenando os pesos por meio de inteiros assinados de 2 bits. -
Métodos quantitativos não supervisionadosO FLUX.1-dev: depende exclusivamente do mecanismo de autossupervisão do próprio modelo FLUX.1-dev e não precisa depender de esquemas de precisão mista ou de dados de treinamento adicionais. -
Kernel personalizadoKernel de inferência: um kernel de inferência otimizado para operações de poucos bits, reduzindo o uso de memória e a latência de inferência.
soco
-
Eficiência de armazenamentoRequisitos de armazenamento do modelo reduzidos em 7,7 vezes, compactados de 16 bits para 2 bits. -
Eficiência de raciocínioUso de memória durante a inferência: o uso de memória durante a inferência é reduzido em 5,1 vezes e a latência da inferência é significativamente melhorada. -
Geração de qualidadeNos benchmarks GenEval e T2I Compbench, a qualidade da geração é essencialmente igual à do FLUX de precisão total, validando a eficácia e a utilidade do esquema.
Resultados
configurar
quantificávelA quantificação foi realizada usando um conjunto de dados calibrado que consiste em pistas do conjunto de dados Parti-1k e do conjunto de treinamento T2I CompBench, totalizando 7.232 pistas. Todo o processo é totalmente independente dos dados de imagem e não são necessários conjuntos de dados adicionais. A quantificação comprime todos os pesos da camada linear do FluxTransformerBlock e do FluxSingleTransformerBlock no FLUX para 1,58 bits, o que representa 99,5% do total de parâmetros do modelo.
avaliaçãoAvaliação do FLUX e do FLUX de 1,58 bits no conjunto de dados GenEval e no conjunto de validação T2I CompBench, seguindo o processo oficial de geração de imagens.
-
Conjunto de dados GenEvalContém 553 prompts, cada um dos quais gera 4 imagens. -
Conjunto de validação do T2I CompBenchA avaliação foi realizada em 8 categorias com 300 prompts por categoria, cada prompt gerando 10 imagens, em um total de 24.000 imagens para avaliação. -
Todas as imagens são geradas com resolução de 1024 × 1024 para FLUX e FLUX de 1,58 bits.
no final
performancesO desempenho do FLUX de 1,58 bits é comparável ao do FLUX de precisão total nos benchmarks T2I Compbench e GenEval, conforme mostrado nas Tabelas 1 e 2. As alterações de desempenho são mínimas antes e depois da aplicação do kernel linear personalizado, validando ainda mais a precisão da implementação.
eficiênciaComo mostrado na Figura 2 abaixo, o FLUX de 1,58 bits alcança melhorias significativas no armazenamento de modelos e na memória de inferência. Em termos de latência de inferência, conforme mostrado na Tabela 3 abaixo, a melhoria é especialmente significativa em GPUs de baixo desempenho, mas fáceis de implantar, como a L20 e a A10.
Conclusão e discussão
Este documento apresenta FLUXO de 1,58 bitsNo caso do 99.5%, o parâmetro Transformer foi quantificado em 1,58 bits, e os seguintes aprimoramentos foram obtidos com a personalização do kernel computacional:
-
Requisitos de armazenamento reduzidosReduzir os requisitos de armazenamento do modelo em um fator de 7,7. -
Memória de inferência reduzidaReduzir o uso de memória de inferência em mais de 5,1x.
Apesar de obter esses efeitos de compactação, o FLUX de 1,58 bits apresentou desempenho comparável ao modelo de precisão total nos benchmarks T2I, mantendo alta qualidade visual. Espera-se que FLUXO de 1,58 bits Ser capaz de motivar as comunidades a desenvolver modelos que sejam mais adequados para dispositivos móveis.
Limitações atuais
Limitações de melhorias de velocidade
-
Embora o FLUX de 1,58 bits reduza o tamanho do modelo e o consumo de memória, o aprimoramento da latência é limitado devido à falta de quantificação do valor de ativação e de otimizações mais avançadas do kernel. -
Considerando os resultados obtidos até o momento, espera-se que a comunidade seja motivada a desenvolver implementações de kernel personalizadas para o modelo de 1,58 bits.
Sobre as limitações da qualidade visual
-
Conforme mostrado nas Figuras 1, 3 e 4 abaixo, o FLUX de 1,58 bits produz imagens vívidas e realistas que são altamente consistentes com as dicas textuais, mas ainda fica atrás do modelo FLUX original ao renderizar detalhes de altíssima resolução. -
Planeja-se preencher essa lacuna em estudos futuros.
Os códigos de inferência e os pesos estão sendo liberados: https://github.com/Chenglin-Yang/1.58bit.flux