A Modern Multimodal Assistant on a 6 GB 2011 GPU: Stage-Validated, All-GPU CUDA Inference for Fermi
Este artigo demonstra a viabilidade de executar um assistente multimodal moderno inteiramente em uma GPU Fermi de 6 GB de 2011 ao projetar um mecanismo de inferência totalmente em GPU que supera as limitações de hardware por meio de GEMMs desquantizados otimizados, camadas recorrentes em blocos e kernels de atenção eficientes em memória, alcançando o questionamento de imagem-pergunta de ponta a ponta em 1,7 segundos.
Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo
Imagine que você tenha um cérebro de robô superinteligente que consegue ver imagens e responder perguntas sobre elas. Normalmente, esses cérebros são tão enormes e famintos por energia que precisam de um computador massivo e caro para rodar, ou precisam ser divididos para que partes do cérebro vivam na memória do computador enquanto outras partes vivem no processador. Mas e se você quisesse rodar esse super-cérebro em uma peça de computador que tem quatorze anos? Esse é o desafio que este artigo aborda. É como tentar rodar um videogame moderno de alta definição em um laptop de 2011. A ideia central aqui é a "inferência", que é apenas uma palavra chique para o robô realmente pensar e responder a uma pergunta depois de ter sido ensinado. O artigo pergunta: Podemos fazer uma IA moderna, capaz de ler imagens, rodar inteiramente em uma placa de vídeo muito antiga e fraca sem precisar de nenhuma ajuda do cérebro principal do computador? Para fazer isso, os pesquisadores tiveram que ser incrivelmente espertos sobre como organizavam a matemática, porque a placa antiga carece de muitas das ferramentas especiais que as placas modernas possuem.
A história deste artigo é sobre uma equipe de engenheiros que pegou um assistente de IA novinho em folha e moderno, o MiniCPM-V-4.6, e o forçou a rodar em uma placa de vídeo NVIDIA de 2011 (a Tesla C2075) que possui apenas 6 GB de memória. Normalmente, esta placa é considerada "abandonada" pelo mundo do software, o que significa que ninguém mais escreve programas novos para ela. Os pesquisadores queriam ver se conseguiam fazer todo o sistema funcionar inteiramente nesta placa antiga, sem precisar ficar movendo dados de um lado para o outro para o computador principal. Eles conseguiram, mas não por adivinhação; eles conseguiram porque mediram tudo e perceberam que seus primeiros palpites estavam frequentemente errados.
Aqui está o que eles descobriram e como fizeram:
1. As "Ferramentas Antigas" Eram Melhores que as Novas
A equipe começou tentando escrever suas próprias ferramentas matemáticas personalizadas (chamadas de kernels) para fazer a IA rodar rápido. Eles pensaram que seu melhor código matemático escrito à mão seria o mais veloz. Mas quando o mediram, descobriram que seu código personalizado alcançava apenas 37% da velocidade máxima da placa. Então, tentaram usar uma ferramenta padrão e antiga que vinha com o software da placa de dez anos atrás (chamada cuBLAS). Surpreendentemente, essa ferramenta antiga rodou a 64% da velocidade máxima — quase o dobro do código personalizado deles! Eles aprenderam que, em hardware antigo, às vezes as ferramentas prontas e "tediosas" são, na verdade, as supervelozes. Assim, decidiram traduzir seus dados para um formato que a ferramenta antiga pudesse entender e deixaram que a ferramenta antiga fizesse o trabalho pesado.
2. O Erro da "Câmera Lenta"
A IA tem uma parte especial que se lembra das coisas conforme as lê, algo como uma pessoa mantendo uma conversa. A equipe tentou acelerar isso dividindo a conversa em pequenos pedaços. No início, eles acharam que este novo método era mais lento. Eles quase desistiram dele! Mas então olharam de perto para o tempo de execução e descobriram que uma parte minúscula de seu código estava fazendo a mesma matemática duas vezes e esperando que o computador parasse e começasse muitas vezes. Uma vez que corrigiram essa parte ruim, o novo método de "pedaços" tornou-se 2,8 vezes mais rápido que o método antigo. Foi uma lição de que você não pode apenas olhar para o quadro geral; você tem que verificar cada passo individual para encontrar o gargalo.
3. A Armadilha do "4-Bit"
No mundo da IA, as pessoas frequentemente tentam encolher a memória do modelo usando números "4-bit" em vez de números "8-bit", pensando que números menores significam maior velocidade. A equipe tentou isso na placa antiga. Embora os números de 4 bits ocupem metade do espaço, a placa teve que fazer matemática extra para "desempacotar" esses números, e a placa antiga é lenta nessa matemática específica. O resultado? A versão de 4 bits foi, na verdade, 12% mais lenta que a versão de 8 bits. Portanto, eles mantiveram os números de 8 bits maiores porque, nesta placa antiga específica, o maior era, de fato, mais rápido.
4. A Regra de "Desempate"
Quando a IA olha para uma imagem, ela tem que descobrir onde cada pedaço da imagem está localizado. Os pesquisadores tentaram escrever sua própria matemática para decidir o que fazer quando dois pedaços estão exatamente na mesma linha (um "empate"). Eles tentaram muitas maneiras diferentes de resolver isso, mas toda vez, o resultado era ligeiramente diferente da resposta da IA original. Eles descobriram que a maneira como a IA original decidia os empates era uma regra minúscula e específica que não podia ser perfeitamente copiada com matemática padrão. A solução? Eles pararam de tentar reinventar a roda e simplesmente pediram à biblioteca matemática da IA original que fizesse o desempate por eles. Isso garantiu que a versão deles fosse exatamente igual à original.
5. O Problema da "História Longa"
A maior surpresa veio quando testaram a IA com perguntas longas. Quando a pergunta era curta (2.000 palavras), a IA era rápida. Mas quando tornaram a pergunta muito longa (10.000 palavras), a IA ficou extremamente lenta, ficando 17 vezes mais devagar. Descobriu-se que a maneira como a IA olhava para as palavras anteriores estava ficando bagunçada e ineficiente. A equipe reescreveu essa parte para usar a mesma "ferramenta antiga" (cuBLAS) que usaram anteriormente, mas organizaram os dados para que se encaixassem perfeitamente na memória que a IA já estava usando. Isso resolveu o problema completamente. Agora, a IA é quase tão rápida com uma pergunta de 10.000 palavras quanto é com uma pergunta curta.
O Resultado Final
Ao usar esses truques, a equipe conseguiu rodar uma IA moderna, capaz de ler imagens, inteiramente em uma placa de vídeo de 2011. Todo o sistema cabe na memória da placa, e ela pode responder a uma pergunta sobre uma imagem em apenas 1,7 segundos. Ela pode até lidar com documentos muito longos e imagens grandes sem travar. A lição mais importante deste artigo não é apenas que eles fizeram um computador antigo funcionar; é que eles aprenderam a confiar em medições acima de sua própria intuição. Cada vez que achavam que sabiam a resposta (como "4-bit é mais rápido" ou "nosso código customizado é o melhor"), as medições provavam que estavam errados. Ao ouvir os dados e usar as ferramentas certas, eles transformaram uma peça de hardware de quatorze anos em um assistente de IA moderno e funcional.
Afogado em artigos na sua área?
Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.