Por Charles Foster
Na Finetune, estamos construindo soluções de IA para abordar alguns dos problemas mais desafiadores em tecnologia educacional, incluindo geração automatizada de conteúdo e classificação e recomendações de recursos de aprendizagem com tecnologia de IA. Como o assunto que nossas ferramentas devem lidar abrange do K-12 até o desenvolvimento da força de trabalho, estamos investindo pesadamente em métodos que nos permitem ampliar a amplitude e a profundidade do que nossos modelos cobrem. Os principais componentes 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. Nesta postagem do blog, gostaria de compartilhar um pouco da nossa jornada explorando esses métodos.
Afinação
O ajuste fino típico de modelos de linguagem neural envolve otimizar simultaneamente todos os seus parâmetros treináveis, que podem chegar a muitos bilhões para redes como GPT-J. Em escalas como essas, tanto o ajuste fino quanto os processos de inferência não são triviais, dificultando a implantação generalizada deles. Em nossas próprias investigações, algumas questões-chave pareciam ser as mais importantes:
- A simples execução desses 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 na rede, o fluxo de informações aprendido durante o pré-treinamento pode ser interrompido, resultando em esquecimento e perda de capacidades de poucos disparos.
- Atender a um modelo personalizado de vários gigabytes para cada caso de uso criaria latência inaceitável e encargos de custo.
Essas preocupações combinadas nos motivaram a explorar outros métodos da literatura recente para ajustar nossos modelos de linguagem neural. Felizmente, no ano passado, a esfera de pesquisa de processamento de linguagem natural desenvolveu uma série de métodos para reduzir o custo de personalização do comportamento de modelos de linguagem pré-treinados.
Ajuste rápido
A abordagem original que buscamos é chamada de Prompt Tuning 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, acrescentamos um pequeno número de vetores de incorporação aprendíveis (normalmente de 10 a 20) na frente dos tokens de prompt de entrada e ajustamos essas incorporações com o objetivo usual de modelagem de linguagem em um conjunto de dados de ajuste fino. Essas incorporações não representam tokens de linguagem; podemos pensar nelas como um denso armazenamento de contexto que a rede pode condicionar — por meio do mecanismo de atenção — à medida que 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 quilobytes e podem ser executados pela rede em paralelo. Esses recursos os tornam atraentes para atender a muitos usuários simultâneos, como as implantações recentes da técnica em narrativas de IA indicaram. No entanto, integrar prompts suaves em estruturas populares como os transformadores do HuggingFace é complexo, pois as interfaces são amplamente projetadas para operar em sequências de índices de token 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 do condicionamento no prompt suave e no contexto do token. Manter a capacidade de adicionar centenas de tokens de contexto de forma flexível no tempo de execução foi importante para nós, pois fornece alavancas adicionais de controle refinadas no processo de criação de itens. Se quisermos orientar o modelo para focar no conteúdo de uma página específica de um livro didático, ou criar um item de compreensão de leitura, ou fornecer exemplos de poucas cenas, a contextualização de formato longo é importante.
Adaptadores de baixa classificação (LoRA)
Mais tarde, fizemos a transição para um método chamado LoRA ou Low Rank Adapters (Hu et al. 2021). Essa técnica foi desenvolvida por pesquisadores da Microsoft trabalhando em modelos do tamanho de GPT-3 e se baseia em abordagens de adaptadores anteriores. Se pensarmos em um transformador como refinando progressivamente seus estados latentes de token com cada camada residual, o conceito de um adaptador é adicionar um pequeno delta dependente de entrada (inicializado para um no-op) a esses latentes em uma determinada camada. Esse empurrão suave é então capaz de modular seu comportamento a jusante, digamos, enfatizando as partes da entrada que são relevantes para a tarefa.
Adaptadores de baixa classificação são um tipo de adaptador que tem como alvo um subespaço de baixa classificação, o que reduz o número de novos parâmetros que precisamos treinar (de D 2 para 2 × D × r, onde D está na casa dos milhares). Assim como no prompt suave, mantemos os parâmetros originais da rede congelados para preservar qualquer conhecimento que eles contenham do pré-treinamento e ajustamos apenas esses novos parâmetros do adaptador. Em nossos testes internos, vimos bons indicadores do LoRA. Além de nos permitir ajustar grandes modelos em pequenos orçamentos de hardware, os modelos com camadas de adaptador intercaladas também retêm muito de sua capacidade original de poucos disparos, ao mesmo tempo em que ainda se adaptam ao domínio de destino. Notavelmente, integrar adaptadores de baixa classificação em outras estruturas é simples, pois podemos simplesmente trocar camadas lineares existentes por camadas lineares + adaptadoras conforme necessário.
Seguindo em frente
Para dar uma ideia do tipo de melhorias que vimos em nossas explorações, compartilhamos abaixo uma pequena seleção de gerações de modelos treinados com diferentes abordagens de ajuste. Esses itens foram todos gerados usando os mesmos três prompts de entrada referentes à entrega de cuidados de enfermagem: o primeiro focado em priorizar as necessidades de vários clientes e o segundo em agir em um ambiente de equipe.
Item #1: A nurse is assessing a client who is scheduled for outpatient surgery. Which of the following patients would the nurse evaluate next? (A) A patient with type 1 diabetes (B) A patient with acute pancreatitis (C) A patient who requires intravenous antibiotic therapy (D) A patient with Crohn's disease Item #2: A client is admitted to the hospital with the diagnosis of congestive heart failure. The client's mother is refusing treatment. Which of the following actions should the nurse take? (A) Notify the provider of the situation. (B) Check the patient's medication list. (C) Check the client's medical chart. (D) Notify the client's doctor of the client's condition.
Item #3: A nurse is evaluating a patient on the pediatric unit. The client is scheduled for a diagnostic workup, including a chest radiograph. Which of the following patients should the nurse be planning to evaluate next? (A) A child who has pneumonia and is experiencing fever (B) A child who has a rash and is not responding to a medication (C) A child who has a fever and has a temperature >100.4 (D) A child who has a fever and a rash Item #4: A client with renal failure is in the hospital and is scheduled to undergo a renal transplant. The client has a strong belief that the transplant surgeon is incompetent. The client refuses to allow a doctor from another hospital to perform the transplant. Which of the following actions should the charge nurse take? (A) Take a statement from the client that the transplant surgeon is competent and give it to the transplant surgeon. (B) Ask the client for a signed statement to back up her assertion. (C) Contact the transplant surgeon and find out why the client refuses to allow the surgeon from another hospital to perform the transplant. (D) Inform the transplant surgeon that the client is refusing the transplant.
Item #5: A nurse is planning to assign clients to various bedside stations. Which of the following clients should the nurse assign to the bedside station closest to the nurses' station? (A) A client who has a suspected diagnosis of a pulmonary embolism and requires a computed tomography (CT) scan (B) A client who needs assistance with a bowel movement (C) A client who has an emergency indication for a chest X-ray (D) A client who requires a chest X-ray because she has a cough Item #6: An LPN is caring for a client with an indwelling urinary catheter and is asking the nurse to help her clean the catheter. Which of the following actions should the nurse take? (A) Explain to the client that she will need to provide the cleaning solution and will need to obtain the client's consent for the procedure. (B) Ask the LPN for assistance. (C) Offer to help the client clean the catheter. (D) Assure the LPN that the nurse will assist her.
Podemos observar que, embora os melhores itens do modelo de base sejam amplamente fluentes e logicamente coerentes, eles tendem a ser pouco restritos (como em #1) ou exigem muito pouco conhecimento do domínio de enfermagem (como em #3). Em comparação com os itens de base, os itens dos modelos de ajuste de prompt e adaptador de baixa classificação contêm mais detalhes em seus estímulos, hastes e opções. O assunto é relevante para o domínio, exigindo conhecimento específico no gerenciamento de cuidados de enfermagem em vez de depender apenas do conhecimento de base. 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 oposição ao "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 vários indivíduos dentro de um cenário (compare #6 com #4).
Melhorias na cobertura de domínio, consistência estilística e coerência lógica podem se traduzir em melhorias significativas na utilidade dos modelos de linguagem neural. Este é apenas o começo: conforme a tecnologia amadurece, ainda mais métodos serão descobertos para criar modelos de linguagem natural personalizados e controláveis em escala. E conforme esses métodos forem descobertos, continuaremos a incorporar o melhor da academia, da indústria e da pesquisa independente nos produtos Finetune.
Agradecimentos sinceros a Nick Koprowicz, Jesse Hamer, Saad Khan e Ogden Morse por fornecerem feedback gentil e útil no desenvolvimento desta postagem do blog.
Referências
Hu, EJ, Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., … & Chen, W. (2021). Lora: Adaptação de baixo escalão de grandes modelos de linguagem. arXiv pré-impressão arXiv:2106.09685.
Lester, B., Al-Rfou, R., & Constant, N. (2021). O poder da escala para ajuste de prompt com eficiência de parâmetros. arXiv preprint arXiv:2104.08691.