FlexGen é um mecanismo para executar bots de IA do tipo ChatGPT em sistemas de GPU única

Uma equipe de pesquisadores da Universidade de Stanford, da Universidade da Califórnia em Berkeley, da ETH Zurich, da Escola de Pós-Graduação em Economia da Universidade Carnegie Mellon, bem como da Yandex e da Meta, publicou o código-fonte de um mecanismo para executar grandes modelos de linguagem em recursos -sistemas restritos. Por exemplo, o mecanismo oferece a capacidade de criar funcionalidades que lembram ChatGPT e Copilot, executando um modelo OPT-175B pré-treinado, cobrindo 175 bilhões de parâmetros, em um computador normal com uma placa gráfica para jogos NVIDIA RTX3090 equipada com 24 GB de memória de vídeo. O código é escrito em Python, usa a estrutura PyTorch e é distribuído sob a licença Apache 2.0.

Inclui um script de exemplo para a criação de bots que permite baixar um dos modelos de linguagem disponíveis publicamente e começar a se comunicar imediatamente (por exemplo, executando o comando “python apps/chatbot.py —model facebook/opt-30b — -percent 0 100 100 0 100 0” ). Como base, propõe-se utilizar um grande modelo de linguagem publicado pelo Facebook, treinado nas coleções de BookCorpus (10 mil livros), CC-Stories, Pile (OpenSubtitles, Wikipedia, DM Mathematics, HackerNews, etc.), Pushshift. io (baseado em dados do Reddit) e CCNewsV2 (arquivo de notícias). O modelo cobre aproximadamente 180 bilhões de tokens (800 GB de dados). 33 dias de operação de cluster com 992 GPUs NVIDIA A100 de 80 GB foram gastos no treinamento do modelo.

Ao executar o modelo OPT-175B em um sistema com uma única GPU NVIDIA T4 (16GB), o mecanismo FlexGen demonstrou desempenho até 100 vezes mais rápido do que as soluções oferecidas anteriormente, tornando o uso de modelos de linguagem grandes mais acessíveis e permitindo que eles sejam executados em sistemas sem aceleradores dedicados. Ao mesmo tempo, o FlexGen pode ser dimensionado para paralelizar cálculos com múltiplas GPUs. Para reduzir o tamanho do modelo, um esquema proprietário de compactação de parâmetros e um mecanismo de cache de modelo são usados ​​adicionalmente.

Atualmente, FlexGen suporta apenas modelos de linguagem OPT, mas no futuro os desenvolvedores também prometem adicionar suporte para BLOOM (176 bilhões de parâmetros, suporta 46 linguagens e 13 linguagens de programação), CodeGen (pode gerar código em 22 linguagens de programação) e Modelos GLM. Um exemplo de diálogo com um bot baseado em FlexGen e no modelo OPT-30B:

Humano: Qual é o nome da montanha mais alta do mundo?

Assistente: Everest.

Humano: Estou planejando uma viagem para o nosso aniversário. Que coisas podemos fazer?

Assistente: Bem, há uma série de coisas que você pode fazer no seu aniversário. Primeiro, você pode jogar cartas. Em segundo lugar, você pode fazer uma caminhada. Terceiro, você pode ir a um museu.

Fonte: opennet.ru

Adicionar um comentário