Blog
AI

SuperLlama: testando IA generativa em modelos de código aberto

Por trás das notas de reunião da Supernormal está uma equipe de IA de classe mundial focada em ajudar todos a usar a IA para ter sucesso no trabalho. Além de criar a tecnologia que alimenta os produtos Supernormais dos quais você depende, nossa equipe de IA trabalha em pesquisas de ponta para descobrir novas tecnologias para alimentar o Supernormal do futuro e contribuir para o maior ecossistema de IA. Nos últimos meses, nossa equipe vem experimentando o SuperLlama, um modelo personalizado construído pela Supernormal com base no modelo de código aberto do LLama.

Como o Supernormal funciona hoje

Como qualquer participante da reunião, o anotador de IA da Supernormal, Norm, participa da reunião. Em seguida, ele o transcreve e usa vários serviços LLM (como OpenAI, PalM, Claude) e modelos proprietários ajustados para gerar notas de reuniões, incluindo um resumo e itens de ação. Os dois principais componentes de ML nesse fluxo de trabalho são fala para texto (para transcrever reuniões) e LLMs (para gerar notas de reunião a partir da fala transcrita).

Na Supernormal, executamos a transcrição da reunião em tempo real e usamos o texto transcrito para gerar notas para cada k minutos da reunião em tempo real. Essa transcrição, junto com uma solicitação apropriada (dependendo do tipo de reunião), é então usada para gerar as notas da reunião.

Vantagens do modelo de código aberto

O estado da arte em aplicativos de IA de texto generativo, como reuniões resumidas, atualmente é produzido principalmente por meio de fornecedores como OpenAI no GPT-4 e GPT-3.5-Turbo. Esses modelos são de código fechado, acessados por meio de uma API e exigem uma frota de servidores dedicados para atender às solicitações de inferência. No entanto, um memorando do Google que vazou recentemente [Link] apontou para um possível futuro para o texto generativo construído em modelos de código aberto.

A pesquisa recente em modelos ajustados ao ensino, como Alpaca (LLama), Vicuna (LLama) e Dolly (Pythia), mostrou-se muito promissora em uma infinidade de tarefas. Muitos deles mostraram desempenho igual ao de alguns dos modelos maiores, como GPT-3.5, GPT-4 e PalM. O uso de modelos de código aberto tem várias vantagens, incluindo:

  • Custos - os serviços de LLM cobram em nível mundial e, para startups criadas em torno de LLMs, os custos de serviço são um fator importante.
  • Personalização - Os modelos de código aberto podem ser treinados em dados internos e aproveitados para proporcionar uma melhor experiência ao cliente, personalizando o modelo de acordo com as necessidades do cliente.
  • Controle - O tempo de inatividade dos provedores de LLM tem um impacto direto em um produto dependente de LLM. O uso de modelos de autoatendimento oferece mais opções de plano de controle e contingência.

Ampliando os custos, o resumo de uma reunião de uma hora é bastante caro. Se você quiser extrair itens de ação de alta qualidade, um resumo e outros detalhes importantes de uma reunião, pode esperar gastar mais de $3 por reunião em custos de computação.

Começamos perguntando o que seria necessário para fornecer a mesma qualidade de saída, mas usando apenas modelos executados em seu computador. A computação de ponta (em seu laptop) ignora totalmente os custos de computação, mas exigiria um pipeline completo de aprendizado de máquina que tivesse:

  • Um modelo local de conversão de voz em texto.
  • Um modelo de LLM local para gerar o resumo das notas da reunião e os itens de ação a partir do texto transcrito.

Objetivos do experimento

Como o LLama ainda não pode ser usado para fins comerciais, o objetivo desse experimento não era desenvolver um modelo comercial paralelo, mas explorar o desempenho do modelo em casos de uso internos. Com uma base de clientes crescente e mais de 2 milhões de notas por mês, o desenvolvimento de modelos locais pode nos ajudar a resolver os problemas descritos acima. Para avaliar o modelo, decidimos (1) integrar o Whisper + Speaker Diarization + a alimentação no áudio de entrada em uma demonstração de ponta a ponta e (2) ajustar o modelo LLama em notas anônimas.

Histórico do LLMs

A maioria dos LLMs é construída sobre diferentes variações da arquitetura do transformador proposta em Attention is All You Need [Link]. Todos eles foram treinados com o objetivo de prever a próxima palavra dada a frase inicial. Isso pode ser comparado ao recurso de sugestão de palavras-chave em telefones celulares, em que o teclado sugere palavras enquanto digitamos. Os modelos são conhecidos como Modelos de Linguagem (LM) e, devido ao grande número de parâmetros nesses modelos, são chamados de Grandes Modelos de Linguagem (LLMs).

Esses LLMs variam devido às diferenças nos dados de treinamento usados e aos diferentes objetivos de treinamento. GPT-3, GPT-3.5, GPT-4 e LLama foram treinados em diferentes conjuntos de dados de tamanhos variados. O desempenho dos modelos difere devido às variações nos dados de pré-treinamento, no tamanho do conjunto de dados de treinamento e no número de parâmetros. Por exemplo, o GPT3 tem parâmetros de 175 B treinados em tokens de 500 B, enquanto o GPT3.5 tem parâmetros de 6,7 B treinados em tokens de 1 T.

O ajuste de instruções é um paradigma de ajuste fino proposto em cima desses LLMs. Em vez de aprender a prever a próxima palavra dadas as palavras anteriores na frase, o ajuste de instruções envolve treinar o modelo para seguir a instrução e usar a sequência de entrada para gerar os tokens de saída. O treinamento LLM envolve retropropagação para cada palavra nas frases, enquanto que, para o ajuste de instruções, somente as palavras da sequência de saída são usadas para retropropagação.

O conjunto de dados de ajuste de instruções consiste em 3 partes: instrução, entrada e saída. As instâncias de treinamento para ajuste de instruções são as seguintes:

Instrução: Gere um resumo para a seguinte entrada.
Entrada: A rainha Elizabeth era a rainha da Inglaterra. Ela governou sobre...
Saída:... (Um resumo da passagem acima).

O uso de pares instrução-entrada torna o modelo generalizável para instruções em linguagem natural. Isso torna o modelo mais adaptável a diferentes variações da instrução acima e também adaptável a diferentes instruções.

O Alpaca é um modelo ajustado para instruções construído sobre o LM de código aberto chamado LLama (semelhante ao GPT-3). Os autores do Alpaca reuniram um conjunto de tuplas exclusivas de entrada-saída de instrução de 52K e usaram esse conjunto de dados para ajustar o modelo LLama (de acordo com a abordagem de ajuste de instruções descrita acima) e chamaram o modelo de Alpaca. Há duas maneiras diferentes de gerar a saída para um determinado par instrução-entrada: (1) pedir a um anotador humano que escreva a saída ou (2) usar um LLM de alta qualidade como GPT-3.5, GPT-4 ou Claude para gerar a saída.

No caso da Alpaca, os autores usaram o modelo GPT-3.5 para gerar as sequências de saída para o par instrução-entrada. A grande variedade de instruções diferentes o tornou generalizável para instruções que não fazem parte do conjunto de treinamento.

Processo de treinamento experimental

A Alpaca foi uma das primeiras abordagens de ajuste de instruções propostas em modelos pequenos (parâmetros <50B) que mostraram resultados surpreendentemente bons a um baixo custo de treinamento. Por isso, adotamos uma abordagem semelhante. Mas queríamos treinar um modelo para processar transcrições de reuniões, que é muito diferente do conjunto de dados Alpaca, então usamos uma mistura do conjunto de dados Alpaca (26 mil exemplos) e nosso conjunto de dados de reuniões internas anônimas (uma mistura de saídas GPT3, GPT3.5 e GPT4). Os 26 mil exemplos internos anônimos consistiram em itens de resumo e de ação. Algumas das principais diferenças entre o conjunto de dados Alpaca e nosso conjunto de dados interno incluem:

  • Comprimentos de entrada - O comprimento médio de entrada do Alpaca foi de 4 palavras versus 900 para nosso conjunto de dados interno
  • Dados ruidosos - As entradas do Alpaca consistiam em poucas palavras, enquanto nossas transcrições não só continham mais palavras, mas também eram mais ruidosas com as mudanças de alto-falante.
  • Instruções - O conjunto de dados Alpaca tinha 52 mil instruções de unidades, enquanto nosso conjunto de dados interno consiste em apenas algumas instruções exclusivas.

Devido a essas diferenças, nosso custo de treinamento foi 20 vezes maior do que o conjunto de dados Alpaca. Semelhante à Alpaca, estamos aperfeiçoados no modelo Llama7b.

Resultados do experimento

A partir dos exemplos abaixo, podemos tirar as seguintes conclusões:

  • Modelos grandes de OpenAI tendem a ser mais específicos, pois incluem os nomes das diferentes partes envolvidas, em vez de usar termos genéricos como “a equipe” no caso de resumos.
  • No caso de itens de ação, modelos pequenos têm dificuldade em selecionar as entidades corretas, o que leva a resultados um tanto ambíguos. E em alguns outros casos, ele apenas prevê NENHUM, quando não tem certeza de quais itens de ação existem.
  • A janela de contexto limitada dos modelos do tipo LLAMA dificulta a aprovação de exemplos contextuais, o que nos impede de aproveitar completamente os benefícios do ajuste fino.


Resumo da reunião

Itens de ação - exemplo de sucesso

Itens de ação - Exemplo de falha



Direções futuras

Acreditamos que usar um modelo de linguagem maior com dados filtrados deve ajudar a aliviar os problemas que enfrentamos, e planejamos continuar o experimento das seguintes maneiras:

  • Experimente modelos com tamanhos maiores.
  • Experimente com diferentes modelos básicos além do LLama.
  • Explore as abordagens de quantização para reduzir o custo do treinamento.

Join 300,000+ teams using Supernormal to move their work forward

Sign up for free to discover the magic of Supernormal.