Efficient INT8 Inference of Small NLP Models on Server CPUs with PyTorch Native Stack
Este artigo apresenta uma implementação nativa em PyTorch do SmoothQuant para inferência INT8 de pequenos modelos de PLN em CPUs de servidor, alcançando um aumento de até 5,8x no throughput com perda de acurácia negligenciável por meio de fusão em nível de grafo e seleção de kernel otimizada, com a solução agora integrada ao PyTorch e TorchAO.
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
No mundo da inteligência artificial, uma revolução silenciosa está acontecendo paralelamente às manchetes barulhentas sobre chatbots massivos e oniscientes. Enquanto o olhar do público está fixo em modelos enormes que podem escrever poesia ou resolver quebra-cabeças lógicos complexos, os motores que impulsionam o tráfego diário da internet — resultados de busca, recomendações de produtos e filtros de spam — dependem de programas menores e especializados. Esses programas, frequentemente baseados em uma família de designs conhecidos como BERT, são os cavalos de carga da economia digital. Eles rodam em servidores de computador padrão, do tipo encontrado em centros de dados ao redor do globo, em vez de placas gráficas especializadas e caras. Para esses sistemas, velocidade e custo importam mais do que o tamanho bruto. O desafio para os engenheiros tem sido, há muito tempo, como fazer com que esses modelos rodem mais rápido sem sacrificar a precisão que os mantém úteis. Uma maneira poderosa de fazer isso é simplificando a matemática que o computador realiza, trocando uma minúscula parcela de precisão por um ganho massivo de velocidade, uma técnica conhecida como quantização.
Uma equipe de pesquisadores da Intel Corporation construiu agora uma ponte que permite que esses modelos de linguagem menores rodem com essa matemática simplificada diretamente dentro das ferramentas de software mais populares usadas pelos desenvolvedores hoje. O trabalho deles foca em um método específico chamado SmoothQuant, que prepara um modelo para lidar com a matemática simplificada sem perder sua capacidade de entender a linguagem. Ao integrar este método à pilha de software padrão PyTorch, eles criaram um caminho que não requer ferramentas de terceiros especiais ou reescritas complexas. O resultado é um sistema que pode pegar um modelo de linguagem padrão e fazê-lo rodar significamente mais rápido em processadores de servidor modernos, mantendo ao mesmo tempo as respostas que ele fornece tão corretas quanto antes.
Os pesquisadores começaram com um problema comum: embora os processadores de computador modernos possuam instruções integradas para lidar com matemática simplificada rapidamente, as ferramentas de software usadas para construir esses modelos muitas vezes não sabiam como usá-las de forma eficiente. Quando um modelo era preparado para velocidade, o software frequentemente ficava travado nas etapas necessárias para converter dados ou gerenciar os cálculos simplificados, desperdiçando a própria velocidade que o hardware prometia. Para corrigir isso, a equipe combinou três peças distintas de tecnologia em um fluxo de trabalho único e contínuo. Primeiro, eles usaram uma ferramenta chamada TorchAO para preparar o modelo, suavizando os dados para que pudessem ser salvos de forma simplificada. Em seguida, usaram um compilador chamado TorchInductor para analisar todo o fluxo de cálculos do modelo e fundi-los, removendo etapas desnecessárias que geralmente atrasam o processo. Por fim, ensinaram o sistema a escolher a maneira absolutamente mais rápida de realizar as operações matemáticas principais, dependendo se o processador do computador era um modelo mais novo com capacidades avançadas ou um modelo mais antigo e confiável ainda amplamente em uso.
Para testar sua criação, a equipe realizou experimentos em duas gerações diferentes de processadores de servidor Intel. Eles testaram o sistema em três tipos diferentes de modelos de linguagem, variando de versões grandes e complexas até versões menores e mais compactas. Os resultados foram impressionantes. Nos processadores mais novos, o sistema rodou até 5,8 vezes mais rápido do que a versão padrão não otimizada. Nos processadores mais antigos, ele ainda conseguiu rodar quase três vezes mais rápido. Talvez o mais importante seja que a velocidade não veio à custa da qualidade. Quando os pesquisadores testaram os modelos em tarefas do mundo real, como responder perguntas de um texto ou julgar o sentimento de uma frase, os modelos simplificados acertaram as respostas com a mesma frequência que as versões originais, mais lentas. Em muitos casos, a diferença na precisão foi tão pequena que não pôde sequer ser medida.
A equipe também analisou de perto por que os ganhos de velocidade aconteceram, usando um método que mapeia os limites de quão rápido um computador pode mover dados versus quão rápido ele pode calcular. Eles descobriram que, para os processadores mais novos, a velocidade era limitada pela rapidez com que os dados podiam ser movidos, enquanto para os processadores mais antigos, era limitada pela rapidez com que a matemática podia ser feita. Seu sistema conseguiu navegar por ambos os limites de forma eficaz. Eles descobriram que, ao preparar os dados antecipadamente e remover a necessidade de o computador parar e reorganizar informações enquanto trabalhava, poderiam desbloquear o pleno potencial do hardware. Eles até encontraram um contorno inteligente para processadores mais antigos que careciam de uma instrução específica para matemática simplificada, permitindo que usassem uma instrução diferente e disponível para alcançar resultados semelhantes.
Este trabalho é importante porque remove uma barreira significativa para empresas que desejam implantar esses modelos de forma eficiente. Anteriormente, obter esse nível de desempenho muitas vezes significava usar ferramentas especializadas que eram difíceis de manter ou que exigiam deixar o ambiente de software padrão. Agora, os desenvolvedores podem simplesmente usar as ferramentas que já conhecem para obter o mesmo alto desempenho. Os pesquisadores compartilharam seu código com a comunidade em geral, o que significa que qualquer pessoa que utilize essas ferramentas padrão pode agora acessar esse aumento de velocidade imediatamente. O estudo confirma que é possível tornar os cavalos de carga da internet mais rápidos e eficientes sem alterar a natureza fundamental dos modelos ou do software que eles executam. Ao otimizar cuidadosamente como o computador lida com a matemática, a equipe mostrou que o futuro da inteligência artificial eficiente em servidores padrão não é apenas uma possibilidade, mas uma realidade pronta para ser usada hoje.
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.