Na era dos dispositivos inteligentes onipresentes, desejamos que celulares, tablets e até mesmo dispositivos domésticos inteligentes possuam capacidades de processamento inteligente mais robustas. No entanto, esses dispositivos de borda têm recursos de hardware limitados, especialmente memória e capacidade de computação, o que restringe a implantação e execução de grandes modelos de linguagem (LLMs) neles. Imagine como seria se esses dispositivos pudessem ter modelos poderosos capazes de compreender linguagem natural, responder a perguntas e até mesmo criar conteúdo. Isso mudaria nosso mundo!

image.png

Este é o contexto em que a tecnologia T-MAC surgiu. T-MAC, abreviação de "Table-Lookup-based MAC", é um método baseado em tabela de consulta que permite que grandes modelos de linguagem de baixo bit sejam executados de forma eficiente em CPUs, permitindo assim atualizações inteligentes em dispositivos de borda.

Grandes modelos de linguagem geralmente contêm bilhões ou até trilhões de parâmetros, que exigem muita memória para armazenamento. Para implantar esses modelos em dispositivos de borda, precisamos quantificar os pesos do modelo, ou seja, usar menos bits para representar os pesos, reduzindo assim o uso de memória do modelo. No entanto, os modelos quantizados exigem multiplicação de matrizes de precisão mista (mpGEMM) durante o cálculo, o que não é comum nos sistemas de hardware e software existentes e carece de suporte eficiente.

image.png

A ideia central do T-MAC é transformar a operação de multiplicação tradicional baseada em dados em uma consulta de tabela de consulta (LUT) baseada em bits. Este método não apenas elimina a multiplicação, mas também reduz a adição, aumentando significativamente a eficiência computacional.

Especificamente, o T-MAC é implementado nas seguintes etapas:

Decompor a matriz de pesos em várias matrizes de um bit.

Calcular previamente o produto do vetor de ativação e todos os possíveis padrões de um bit e armazenar os resultados na tabela de consulta.

Durante a inferência, obter rapidamente o resultado final da multiplicação de matrizes por meio de indexação e operação de soma cumulativa da tabela de consulta.

Por meio de testes em vários dispositivos de borda, o T-MAC mostrou uma vantagem de desempenho significativa. Em comparação com a implementação llama.cpp existente, o T-MAC aumentou a taxa de transferência em 4 vezes e reduziu o consumo de energia em 70%. Isso permite que até mesmo dispositivos de baixo custo, como o Raspberry Pi 5, gerem tokens a uma velocidade superior à velocidade média de leitura de um adulto.

O T-MAC não apenas tem vantagens teóricas, mas também tem potencial de aplicação prática. Seja no reconhecimento de voz em tempo real e processamento de linguagem natural em smartphones, ou na experiência de interação mais inteligente em dispositivos domésticos inteligentes, o T-MAC pode desempenhar um papel importante.

A tecnologia T-MAC fornece uma solução eficiente e econômica para a implantação de grandes modelos de linguagem de baixo bit em dispositivos de borda. Ela não apenas pode melhorar o nível de inteligência do dispositivo, mas também pode fornecer aos usuários uma experiência inteligente mais rica e conveniente. Com o desenvolvimento e otimização contínuos da tecnologia, temos razões para acreditar que o T-MAC desempenhará um papel cada vez mais importante no campo da inteligência de borda.

Endereço do código aberto: https://github.com/microsoft/T-MAC

Endereço do artigo: https://www.arxiv.org/pdf/2407.00088