Ajustando Modelos de IA para Geração de Itens

Published on novembro 19,2021

Tuning AI Models for Assessment Content Generation

Por Charles Foster

No Finetune, estamos desenvolvendo soluções de IA para enfrentar alguns dos problemas mais desafiadores na tecnologia educacional, incluindo geração automatizada de conteúdo e classificação e recomendações de recursos de aprendizagem impulsionadas por IA. Como o assunto que nossas ferramentas devem lidar abrange desde a educação básica até o desenvolvimento da força de trabalho, estamos investindo pesadamente em métodos que nos permitam ampliar a abrangência e a profundidade do que nossos modelos cobrem. Componentes-chave dessa abordagem são métodos flexíveis para treinar redes neurais especializadas em domínios onde modelos de propósito geral são insuficientes. Neste post do blog, gostaria de compartilhar um pouco da nossa jornada explorando esses métodos.

Ajuste Fino

O ajuste fino típico de modelos de linguagem neural envolve a otimização simultânea de todos os seus parâmetros treináveis, que podem chegar a bilhões para redes como o GPT-J. Em escalas como essas, tanto os processos de ajuste fino quanto de inferência são não triviais, dificultando a implantação generalizada desses modelos. Em nossas próprias investigações, alguns problemas-chave pareciam ser os mais significativos:

  • Executar esses modelos de transformadores já pressiona os limites da memória da GPU (VRAM), e durante o ajuste fino há uma relação direta entre o número de parâmetros sendo otimizados e a quantidade de memória adicional consumida.
  • Ao modificar todos os parâmetros da rede, o fluxo de informação aprendido durante o pré-treinamento pode ser interrompido, resultando em esquecimento e perda de habilidades de poucos exemplos.
  • Servir um modelo personalizado de múltiplos gigabytes para cada caso de uso criaria latência e custos inaceitáveis.

Essas preocupações combinadas nos motivaram a explorar outros métodos da literatura recente para ajustar nossos modelos de linguagem neural. Felizmente, no último ano, o campo de pesquisa em processamento de linguagem natural desenvolveu uma série de métodos para reduzir o custo de personalizar o comportamento de modelos de linguagem pré-treinados.

Ajuste de Prompt

A abordagem original que perseguimos é chamada de Ajuste de Prompt ou Soft Prompting (Lester et al. 2021). Neste método, os parâmetros da rede do pré-treinamento são mantidos congelados. Em vez disso, precedemos um pequeno número de vetores de embedding aprendíveis (tipicamente de 10 a 20) na frente dos tokens de prompt de entrada e ajustamos esses embeddings com o objetivo usual de modelagem de linguagem em um conjunto de dados de ajuste fino. Esses embeddings não representam tokens da linguagem; podemos pensar neles como um armazenamento denso de contexto que a rede pode condicionar—via o mecanismo de atenção—enquanto faz previsões sobre os tokens na sequência.


O ajuste de prompt adiciona apenas um pequeno custo de tempo de execução ao modelo, já que os prompts suaves estão na faixa de kilobytes e podem ser processados pela rede em paralelo. Essas características os tornam atraentes para atender muitos usuários simultâneos, como indicaram implantações recentes da técnica em narrativas de IA. No entanto, integrar prompts suaves em frameworks populares como os transformadores da HuggingFace é complexo, pois as interfaces são amplamente projetadas para operar em sequências de índices de tokens em vez de vetores densos. Além disso, à medida que mais contexto é adicionado entre o prompt suave e a geração, começamos a ver desequilíbrios entre a força da condicionamento no prompt suave e no contexto do token. Manter a capacidade de adicionar de forma flexível centenas de tokens de contexto em tempo de execução era importante para nós, pois fornece alavancas adicionais de controle no processo de autoria de itens. Se quisermos guiar o modelo para se concentrar em conteúdo de uma página específica de um livro didático, ou para criar um item de compreensão de leitura, ou para fornecer exemplos de poucos exemplos, a contextualização em longo prazo importa.

Adaptadores de Baixa Classificação (LoRA)

Mais tarde, fizemos a transição para um método chamado LoRA ou Adaptadores de Baixa Classificação (Hu et al. 2021). Esta técnica foi desenvolvida por pesquisadores da Microsoft que trabalhavam em modelos do tamanho do GPT-3 e se baseia em abordagens anteriores de adaptadores. Se pensarmos em um transformador como refinando progressivamente seus estados latentes de tokens com cada camada residual, o conceito de um adaptador é adicionar um pequeno delta dependente da entrada (inicializado para uma operação nula) a esses latentes em uma determinada camada. Esse leve empurrão pode então modular seu comportamento a jusante, enfatizando, por exemplo, as partes da entrada que são relevantes para a tarefa.


Os adaptadores de baixa classificação são um tipo de adaptador que visa um subespaço de baixa classificação, o que reduz o número de novos parâmetros que precisamos treinar (de D2 para 2 × D × r, onde D está na casa dos milhares). Assim como no ajuste suave, mantemos os parâmetros originais da rede congelados para preservar qualquer conhecimento que contenham do pré-treinamento, e apenas ajustamos esses novos parâmetros do adaptador. Em nossos testes internos, vimos bons indicadores do LoRA. Além de nos permitir ajustar grandes modelos em orçamentos de hardware pequenos, modelos com camadas de adaptadores intercaladas também mantêm grande parte de sua capacidade original de poucos exemplos, enquanto ainda se adaptam ao domínio-alvo. Notavelmente, integrar adaptadores de baixa classificação em outros frameworks é simples, pois podemos simplesmente substituir camadas lineares existentes por camadas lineares + camadas de adaptador conforme necessário.

Avançando

Para dar uma ideia do tipo de melhorias que vimos em nossas explorações, abaixo compartilhamos uma pequena seleção de gerações de modelos treinados com diferentes abordagens de ajuste. Esses itens foram gerados usando os mesmos três prompts de entrada relacionados à entrega de cuidados de enfermagem: o primeiro focou em priorizar as necessidades de múltiplos clientes e o segundo em tomar ações em um ambiente de equipe.

Item #1: Uma enfermeira está avaliando um cliente que está agendado para cirurgia ambulatorial. Qual dos seguintes pacientes a enfermeira avaliaria a seguir? (A) Um paciente com diabetes tipo 1 (B) Um paciente com pancreatite aguda (C) Um paciente que requer terapia intravenosa com antibióticos (D) Um paciente com doença de Crohn Item #2: Um cliente é admitido no hospital com o diagnóstico de insuficiência cardíaca congestiva. A mãe do cliente está recusando tratamento. Qual das seguintes ações a enfermeira deve tomar? (A) Notificar o provedor da situação. (B) Verificar a lista de medicamentos do paciente. (C) Verificar o prontuário médico do cliente. (D) Notificar o médico do cliente sobre a condição do cliente.

Item #3: Uma enfermeira está avaliando um paciente na unidade pediátrica. O cliente está agendado para um exame diagnóstico, incluindo uma radiografia de tórax. Qual dos seguintes pacientes a enfermeira deve planejar avaliar a seguir? (A) Uma criança que tem pneumonia e está apresentando febre (B) Uma criança que tem uma erupção cutânea e não está respondendo a um medicamento (C) Uma criança que tem febre e está com temperatura >100.4 (D) Uma criança que tem febre e uma erupção cutânea Item #4: Um cliente com insuficiência renal está no hospital e está agendado para um transplante renal. O cliente tem uma forte crença de que o cirurgião de transplante é incompetente. O cliente se recusa a permitir que um médico de outro hospital realize o transplante. Qual das seguintes ações a enfermeira responsável deve tomar? (A) Fazer uma declaração do cliente de que o cirurgião de transplante é competente e entregá-la ao cirurgião de transplante. (B) Pedir ao cliente uma declaração assinada para apoiar sua afirmação. (C) Contatar o cirurgião de transplante e descobrir por que o cliente se recusa a permitir que o cirurgião de outro hospital realize o transplante. (D) Informar o cirurgião de transplante que o cliente está recusando o transplante.

Item #5: Uma enfermeira está planejando atribuir clientes a várias estações de leito. Qual dos seguintes clientes a enfermeira deve atribuir à estação de leito mais próxima da estação das enfermeiras? (A) Um cliente que tem um diagnóstico suspeito de embolia pulmonar e requer uma tomografia computadorizada (TC) (B) Um cliente que precisa de assistência com um movimento intestinal (C) Um cliente que tem uma indicação de emergência para uma radiografia de tórax (D) Um cliente que requer uma radiografia de tórax porque ela está com tosse Item #6: Uma LPN está cuidando de um cliente com um cateter urinário de permanência e está pedindo à enfermeira para ajudá-la a limpar o cateter. Qual das seguintes ações a enfermeira deve tomar? (A) Explicar ao cliente que ela precisará fornecer a solução de limpeza e obter o consentimento do cliente para o procedimento. (B) Pedir a ajuda da LPN. (C) Oferecer ajuda ao cliente para limpar o cateter. (D) Garantir à LPN que a enfermeira a ajudará.

Podemos observar que, enquanto os melhores itens do modelo base são em grande parte fluentes e logicamente coerentes, eles tendem a ser subdimensionados (como no #1) ou exigem muito pouco conhecimento do domínio da enfermagem (como no #3). Em comparação com os itens da linha de base, os itens dos modelos de ajuste de prompt e adaptadores de baixa classificação contêm mais detalhes em seus estímulos, raízes e opções. O assunto é relevante para o domínio, exigindo conhecimento específico na gestão de cuidados de enfermagem, em vez de depender apenas do conhecimento prévio. Além disso, os itens do modelo de adaptador de baixa classificação têm uma forma mais consistente. Por exemplo, os itens se referem consistentemente ao “cliente” em vez do “paciente”, de acordo com a linguagem que provavelmente apareceria nas avaliações (compare #5 com #1 e #3). Ele também rastreia com sucesso referências a múltiplos indivíduos dentro de um cenário (compare #6 com #4).

Melhorias na cobertura do domínio, consistência estilística e coerência lógica podem se traduzir em melhorias significativas na utilidade dos modelos de linguagem neural. Isso é apenas o começo: à medida que a tecnologia amadurece, ainda mais métodos serão descobertos para criar modelos de linguagem natural personalizados e controláveis em grande escala. E à medida que esses métodos forem descobertos, continuaremos a incorporar o melhor da academia, da indústria e da pesquisa independente nos produtos da Finetune.

 

Agradecimentos sinceros a Nick Koprowicz, Jesse Hamer, Saad Khan e Ogden Morse por fornecerem feedback gentil e útil no desenvolvimento deste post do blog.

 

Referências

Hu, E. J., Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., … & Chen, W. (2021). Lora: Adaptação de baixa classificação de grandes modelos de linguagem. arXiv preprint arXiv:2106.09685.

Lester, B., Al-Rfou, R., & Constant, N. (2021). O poder da escala para ajuste de prompt eficiente em parâmetros. arXiv preprint arXiv:2104.08691.