Skip to content

Latest commit

 

History

History
109 lines (73 loc) · 13.9 KB

File metadata and controls

109 lines (73 loc) · 13.9 KB

Modelos Open Source

Ajuste Fino do Seu LLM

Usar modelos de linguagem grande para construir aplicações de IA generativa traz novos desafios. Um problema chave é garantir a qualidade das respostas (precisão e relevância) no conteúdo gerado pelo modelo para uma solicitação do usuário. Em lições anteriores, discutimos técnicas como engenharia de prompt e geração aumentada por recuperação que tentam resolver o problema modificando o input do prompt para o modelo existente.

Na lição de hoje, discutimos uma terceira técnica, ajuste fino, que tenta enfrentar o desafio re-treinando o próprio modelo com dados adicionais. Vamos nos aprofundar nos detalhes.

Objetivos de Aprendizagem

Esta lição introduz o conceito de ajuste fino para modelos de linguagem pré-treinados, explora os benefícios e desafios dessa abordagem e fornece orientações sobre quando e como usar o ajuste fino para melhorar o desempenho dos seus modelos de IA generativa.

Ao final desta lição, você deve ser capaz de responder às seguintes perguntas:

  • O que é ajuste fino para modelos de linguagem?
  • Quando e por que o ajuste fino é útil?
  • Como posso ajustar um modelo pré-treinado?
  • Quais são as limitações do ajuste fino?

Pronto? Vamos começar.

Guia Ilustrado

Quer ter uma visão geral do que vamos cobrir antes de nos aprofundarmos? Confira este guia ilustrado que descreve a jornada de aprendizagem para esta lição - desde aprender os conceitos principais e a motivação para o ajuste fino, até entender o processo e as melhores práticas para executar a tarefa de ajuste fino. Este é um tópico fascinante para exploração, então não se esqueça de conferir a página de Recursos para links adicionais que apoiam sua jornada de aprendizagem autodidata!

Guia Ilustrado para Ajuste Fino de Modelos de Linguagem

O que é ajuste fino para modelos de linguagem?

Por definição, modelos de linguagem grande são pré-treinados em grandes quantidades de texto provenientes de fontes diversas, incluindo a internet. Como aprendemos em lições anteriores, precisamos de técnicas como engenharia de prompt e geração aumentada por recuperação para melhorar a qualidade das respostas do modelo às perguntas do usuário ("prompts").

Uma técnica popular de engenharia de prompt envolve dar ao modelo mais orientação sobre o que é esperado na resposta, seja fornecendo instruções (orientação explícita) ou dando alguns exemplos (orientação implícita). Isso é chamado de aprendizado de poucos exemplos, mas tem duas limitações:

  • Limites de tokens do modelo podem restringir o número de exemplos que você pode dar e limitar a eficácia.
  • Custos de tokens do modelo podem tornar caro adicionar exemplos a cada prompt, e limitar a flexibilidade.

O ajuste fino é uma prática comum em sistemas de aprendizado de máquina onde pegamos um modelo pré-treinado e o re-treinamos com novos dados para melhorar seu desempenho em uma tarefa específica. No contexto de modelos de linguagem, podemos ajustar o modelo pré-treinado com um conjunto selecionado de exemplos para uma tarefa ou domínio de aplicação para criar um modelo personalizado que pode ser mais preciso e relevante para essa tarefa ou domínio específico. Um benefício adicional do ajuste fino é que ele também pode reduzir o número de exemplos necessários para o aprendizado de poucos exemplos - reduzindo o uso de tokens e os custos relacionados.

Quando e por que devemos ajustar modelos?

Neste contexto, quando falamos sobre ajuste fino, estamos nos referindo ao ajuste fino supervisionado, onde o re-treinamento é feito adicionando novos dados que não faziam parte do conjunto de dados de treinamento original. Isso é diferente de uma abordagem de ajuste fino não supervisionado, onde o modelo é re-treinado nos dados originais, mas com hiperparâmetros diferentes.

A coisa chave a lembrar é que o ajuste fino é uma técnica avançada que requer um certo nível de expertise para obter os resultados desejados. Se feito incorretamente, pode não fornecer as melhorias esperadas e pode até degradar o desempenho do modelo para seu domínio alvo.

Então, antes de aprender "como" ajustar modelos de linguagem, você precisa saber "por que" deve seguir esse caminho e "quando" começar o processo de ajuste fino. Comece fazendo a si mesmo estas perguntas:

  • Caso de Uso: Qual é o seu caso de uso para o ajuste fino? Que aspecto do modelo pré-treinado atual você quer melhorar?
  • Alternativas: Você tentou outras técnicas para alcançar os resultados desejados? Use-as para criar uma linha de base para comparação.
    • Engenharia de prompt: Tente técnicas como prompt de poucos exemplos com exemplos de respostas relevantes ao prompt. Avalie a qualidade das respostas.
    • Geração Aumentada por Recuperação: Tente aumentar prompts com resultados de consultas recuperados pesquisando seus dados. Avalie a qualidade das respostas.
  • Custos: Você identificou os custos para o ajuste fino?
    • Ajustabilidade - o modelo pré-treinado está disponível para ajuste fino?
    • Esforço - para preparar dados de treinamento, avaliar e refinar o modelo.
    • Computação - para executar trabalhos de ajuste fino e implantar o modelo ajustado
    • Dados - acesso a exemplos de qualidade suficiente para impacto do ajuste fino
  • Benefícios: Você confirmou os benefícios do ajuste fino?
    • Qualidade - o modelo ajustado superou a linha de base?
    • Custo - reduz o uso de tokens simplificando prompts?
    • Extensibilidade - você pode reaproveitar o modelo base para novos domínios?

Ao responder a essas perguntas, você deve ser capaz de decidir se o ajuste fino é a abordagem certa para seu caso de uso. Idealmente, a abordagem é válida apenas se os benefícios superarem os custos. Uma vez que você decida prosseguir, é hora de pensar em como você pode ajustar o modelo pré-treinado.

Quer obter mais insights sobre o processo de tomada de decisão? Assista Ajustar ou não ajustar

Como podemos ajustar um modelo pré-treinado?

Para ajustar um modelo pré-treinado, você precisa ter:

  • um modelo pré-treinado para ajustar
  • um conjunto de dados para usar no ajuste fino
  • um ambiente de treinamento para executar o trabalho de ajuste fino
  • um ambiente de hospedagem para implantar o modelo ajustado

Ajuste Fino em Ação

Os recursos a seguir fornecem tutoriais passo a passo para guiá-lo através de um exemplo real usando um modelo selecionado com um conjunto de dados selecionado. Para trabalhar nesses tutoriais, você precisa de uma conta no provedor específico, junto com acesso ao modelo e conjuntos de dados relevantes.

Provedor Tutorial Descrição
OpenAI Como ajustar modelos de chat Aprenda a ajustar um gpt-35-turbo para um domínio específico ("assistente de receitas") preparando dados de treinamento, executando o trabalho de ajuste fino e usando o modelo ajustado para inferência.
Azure OpenAI Tutorial de ajuste fino do GPT 3.5 Turbo Aprenda a ajustar um modelo gpt-35-turbo-0613 no Azure tomando medidas para criar e carregar dados de treinamento, executar o trabalho de ajuste fino. Implante e use o novo modelo.
Hugging Face Ajuste fino de LLMs com Hugging Face Este post no blog guia você no ajuste fino de um LLM aberto (ex: CodeLlama 7B) usando a biblioteca transformers e Transformer Reinforcement Learning (TRL) com conjuntos de dados abertos no Hugging Face.
🤗 AutoTrain Ajuste fino de LLMs com AutoTrain AutoTrain (ou AutoTrain Advanced) é uma biblioteca python desenvolvida pela Hugging Face que permite ajuste fino para muitas tarefas diferentes, incluindo ajuste fino de LLM. AutoTrain é uma solução sem código e o ajuste fino pode ser feito em sua própria nuvem, nos Hugging Face Spaces ou localmente. Suporta tanto uma interface gráfica web, CLI quanto treinamento via arquivos de configuração yaml.

Tarefa

Selecione um dos tutoriais acima e passe por eles. Podemos replicar uma versão desses tutoriais em Jupyter Notebooks neste repositório apenas para referência. Por favor, use as fontes originais diretamente para obter as versões mais recentes.

Ótimo Trabalho! Continue Seu Aprendizado.

Após completar esta lição, confira nossa coleção de Aprendizado de IA Generativa para continuar aprimorando seu conhecimento em IA Generativa!

Parabéns!! Você completou a lição final da série v2 deste curso! Não pare de aprender e construir. **Confira a página de RECURSOS para uma lista de sugestões adicionais apenas para este tópico.

Nossa série de lições v1 também foi atualizada com mais tarefas e conceitos. Então, tire um minuto para refrescar seu conhecimento - e por favor compartilhe suas perguntas e feedback para nos ajudar a melhorar essas lições para a comunidade.

Aviso Legal:
Este documento foi traduzido usando o serviço de tradução por IA Co-op Translator. Embora nos esforcemos para alcançar precisão, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações errôneas decorrentes do uso desta tradução.