Skip to content

Latest commit

 

History

History
111 lines (74 loc) · 13.8 KB

File metadata and controls

111 lines (74 loc) · 13.8 KB

Modelos Open Source

Ajustando Seu LLM

Usar modelos de linguagem grandes para construir aplicações de IA generativa traz novos desafios. Um dos principais problemas é garantir a qualidade das respostas (precisão e relevância) no conteúdo gerado pelo modelo para uma solicitação específica do usuário. Nas lições anteriores, discutimos técnicas como engenharia de prompts 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, discutiremos uma terceira técnica, ajuste fino, que tenta abordar o desafio re-treinando o próprio modelo com dados adicionais. Vamos explorar os detalhes.

Objetivos de Aprendizagem

Esta lição apresenta 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 de seus modelos de IA generativa.

Ao final desta lição, você deverá 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 abordar antes de mergulhar no conteúdo? Confira este guia ilustrado que descreve a jornada de aprendizado desta 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 explorar, então não se esqueça de conferir a página de Recursos para links adicionais que apoiarão sua jornada de aprendizado autônomo!

Guia Ilustrado para Ajuste Fino de Modelos de Linguagem

O que é ajuste fino para modelos de linguagem?

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

Uma técnica popular de engenharia de prompts 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 com poucos exemplos (few-shot learning), mas tem duas limitações:

  • Os limites de tokens do modelo podem restringir o número de exemplos que você pode fornecer e limitar a eficácia.
  • Os 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 específico 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 com poucos exemplos - reduzindo o uso de tokens e os custos relacionados.

Quando e por que devemos ajustar modelos?

Neste contexto, quando falamos de 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 original de treinamento. Isso é diferente de uma abordagem de ajuste fino não supervisionado, onde o modelo é re-treinado nos dados originais, mas com diferentes hiperparâmetros.

O ponto principal 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 até mesmo degradar o desempenho do modelo para o domínio alvo.

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

  • Caso de Uso: Qual é o seu caso de uso para ajuste fino? Qual aspecto do modelo pré-treinado atual você deseja 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 prompts: Experimente técnicas como prompts com poucos exemplos de respostas relevantes. Avalie a qualidade das respostas.
    • Geração Aumentada por Recuperação: Experimente aumentar os prompts com resultados de consulta recuperados ao pesquisar seus dados. Avalie a qualidade das respostas.
  • Custos: Você identificou os custos para ajuste fino?
    • Ajustabilidade - o modelo pré-treinado está disponível para ajuste fino?
    • Esforço - para preparar os dados de treinamento, avaliar e refinar o modelo.
    • Computação - para executar os trabalhos de ajuste fino e implantar o modelo ajustado.
    • Dados - acesso a exemplos de qualidade suficientes para impacto no 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 os 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 ajustar o modelo pré-treinado.

Quer 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 seguintes recursos fornecem tutoriais passo a passo para guiá-lo por um exemplo real usando um modelo selecionado com um conjunto de dados curado. Para trabalhar nesses tutoriais, você precisa de uma conta no provedor específico, juntamente 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 seguindo etapas 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 o 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, no Hugging Face Spaces ou localmente. Ele suporta tanto uma interface gráfica baseada na web, CLI e treinamento via arquivos de configuração yaml.

Tarefa

Selecione um dos tutoriais acima e siga os passos. 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 Aprendendo.

Após concluir esta lição, confira nossa coleção de aprendizado sobre IA generativa para continuar aprimorando seu conhecimento sobre IA generativa!

Parabéns!! Você concluiu a última lição 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 sobre este tópico.

Nossa série de lições v1 também foi atualizada com mais tarefas e conceitos. Então, reserve 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 utilizando o serviço de tradução por IA Co-op Translator. Embora nos esforcemos para garantir a 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 incorretas decorrentes do uso desta tradução.