LLMs: ajuste fino, destilação e engenharia de comando

A unidade anterior descreveu LLMs de uso geral, conhecidos como:

  • LLMs de fundação
  • LLMs de base
  • LLMs pré-treinados

Um LLM de base é treinado com linguagem natural suficiente para "saber" muito sobre gramática, palavras e expressões idiomáticas. Um modelo de linguagem de base pode gerar frases úteis sobre os tópicos em que foi treinado. Além disso, um LLM de fundação pode realizar determinadas tarefas tradicionalmente chamadas de "criativas", como escrever poesias. No entanto, a saída de texto generativo de um LLM de fundação não é uma solução para outros tipos de problemas comuns de ML, como regressão ou classificação. Para esses casos de uso, um LLM de base pode servir como uma plataforma, e não como uma solução.

A transformação de um LLM de base em uma solução que atenda às necessidades de um aplicativo requer um processo chamado ajuste fino. Um processo secundário chamado destilação gera uma versão menor (com menos parâmetros) do modelo ajustado.

Ajuste de detalhes

Pesquisas mostram que as habilidades de reconhecimento de padrões dos modelos de linguagem de base são tão poderosas que às vezes exigem relativamente pouco treinamento adicional para aprender tarefas específicas. Esse treinamento extra ajuda o modelo a fazer previsões melhores em uma tarefa específica. Esse treinamento adicional, chamado de ajuste fino, desbloqueia o lado prático de um LLM.

O ajuste fino treina em exemplos específicos para a tarefa que seu aplicativo vai realizar. Os engenheiros às vezes podem ajustar um LLM de fundação em apenas algumas centenas ou milhares de exemplos de treinamento.

Apesar do número relativamente pequeno de exemplos de treinamento, o ajuste fino padrão geralmente é computacionalmente caro. Isso acontece porque o ajuste fino padrão envolve atualizar o peso e o viés de cada parâmetro em cada iteração de backpropagation. Felizmente, um processo mais inteligente chamado ajuste eficiente de parâmetros pode ajustar um LLM ajustando apenas um subconjunto de parâmetros em cada iteração de retropropagação.

As previsões de um modelo ajustado geralmente são melhores do que as do LLM de base. No entanto, um modelo ajustado contém o mesmo número de parâmetros que o LLM de fundação. Portanto, se um LLM de base tiver dez bilhões de parâmetros, a versão ajustada também terá dez bilhões de parâmetros.

Destilação

A maioria dos LLMs ajustados contém um número enorme de parâmetros. Consequentemente, os LLMs de base exigem enormes recursos computacionais e ambientais para gerar previsões. Grandes faixas desses parâmetros geralmente são irrelevantes para um aplicativo específico.

Distillation cria uma versão menor de um LLM. O LLM destilado gera previsões muito mais rapidamente e requer menos recursos computacionais e ambientais do que o LLM completo. No entanto, as previsões do modelo destilado geralmente não são tão boas quanto as do LLM original. Lembre-se de que os LLMs com mais parâmetros quase sempre geram previsões melhores do que os LLMs com menos parâmetros.

engenharia de comando

A engenharia de comando permite que os usuários finais de um LLM personalizem a saída do modelo. Ou seja, os usuários finais esclarecem como o LLM deve responder à solicitação.

Os humanos aprendem bem com exemplos. Os LLMs também. Mostrar um exemplo para um LLM é chamado de comando one-shot. Por exemplo, suponha que você queira que um modelo use o seguinte formato para gerar a família de uma fruta:

O usuário insere o nome de uma fruta: o LLM gera a classe dessa fruta.

Um comando one-shot mostra ao LLM um único exemplo do formato anterior e pede que ele conclua uma consulta com base nesse exemplo. Por exemplo:

peach: drupe
apple: ______

Às vezes, um único exemplo é suficiente. Se for, o LLM vai gerar uma previsão útil. Por exemplo:

apple: pome

Em outras situações, um único exemplo é insuficiente. Ou seja, o usuário precisa mostrar os exemplos vários do LLM. Por exemplo, o comando a seguir contém dois exemplos:

plum: drupe
pear: pome
lemon: ____

O fornecimento de vários exemplos é chamado de comandos few-shot. Pense nas duas primeiras linhas do comando anterior como exemplos de treinamento.

Um LLM pode fornecer previsões úteis sem exemplos (comando zero-shot)? Às vezes, mas os LLMs gostam de contexto. Sem contexto, o comando zero-shot a seguir pode retornar informações sobre a empresa de tecnologia em vez da fruta:

apple: _______

Inferência off-line

Às vezes, o número de parâmetros em um LLM é tão grande que a inferência on-line é muito lenta para ser prática em tarefas do mundo real, como regressão ou classificação. Consequentemente, muitas equipes de engenharia dependem de inferência off-line (também conhecida como inferência em massa ou inferência estática). Em outras palavras, em vez de responder a consultas no momento da veiculação, o modelo treinado faz previsões com antecedência e as armazena em cache.

Não importa se o LLM leva muito tempo para concluir a tarefa se ele só precisa fazer isso uma vez por semana ou uma vez por mês.

Por exemplo, a Pesquisa Google usou um LLM para realizar inferência off-line e armazenar em cache uma lista de mais de 800 sinônimos de vacinas contra a Covid em mais de 50 idiomas. Em seguida, a Pesquisa Google usou a lista armazenada em cache para identificar consultas sobre vacinas no tráfego em tempo real.

Use LLMs de forma responsável

Como qualquer forma de aprendizado de máquina, os LLMs geralmente compartilham os vieses de:

  • Os dados usados no treinamento.
  • Os dados em que foram extraídos.

Use LLMs de forma justa e responsável de acordo com as lições apresentadas anteriormente neste curso.

Exercício: testar seu conhecimento

Qual das afirmações a seguir é verdadeira sobre LLMs?
Um LLM destilado contém menos parâmetros do que o modelo de linguagem de origem.
Sim, a destilação reduz o número de parâmetros.
Um LLM ajustado contém menos parâmetros do que o modelo de linguagem de base em que foi treinado.
Um modelo ajustado contém o mesmo número de parâmetros que o modelo de linguagem de fundação original.
À medida que os usuários fazem mais engenharia de comando, o número de parâmetros em um LLM aumenta.
A engenharia de comando não adiciona (ou remove ou altera) parâmetros de LLM.