Compartilhar via


Introdução ao Treinamento do Foundation Model

Importante

Esse recurso está em uma versão prévia. Entre em contato com a equipe da sua conta do Databricks para se inscrever na Visualização Pública.

Com o Treinamento de Foundation Model, você pode usar seus próprios dados para personalizar um foundation model para otimizar seu desempenho para um aplicativo específico. Ao ajustar ou continuar o treinamento de um foundation model você pode treinar seu próprio modelo usando muito menos dados, tempo e recursos de computação do que treinar um modelo do zero.

Com o Databricks, você tem tudo em uma única plataforma: seus próprios dados a serem usados para treinamento, o foundation model para treinar, pontos de verificação salvos no MLflow e o modelo registrado no Catálogo do Unity e pronto para implantação.

O que é o Treinamento de Foundation Model?

O Treinamento de Foundation Model permite que você use a API ou a interface do usuário do Databricks para ajustar ou treinar ainda mais um foundation model.

Usando o Treinamento de Foundation Model, você pode:

  • Treine um modelo com seus dados personalizados, com os pontos de verificação salvos no MLflow. Você mantém o controle completo do modelo treinado.
  • Registre automaticamente o modelo no Catálogo do Unity, permitindo uma implantação fácil com o serviço de modelo.
  • Treine ainda mais um modelo proprietário completo carregando os pesos de um modelo treinado anteriormente.

O Databricks recomenda que você experimente o Treinamento de Foundation Model se:

  • Você tentou aprender pouco e quer melhores resultados.
  • Você tentou usar engenharia de prompt em um modelo existente e quer obter melhores resultados.
  • Você deseja a ter propriedade total em um modelo personalizado para privacidade de dados.
  • Você prioriza latência ou prioriza custos e deseja usar um modelo menor e mais barato com seus dados específicos da tarefa.

Tarefas com suporte

O Treinamento de Foundation Model dá suporte aos seguintes casos de uso:

  • Conclusão de chat: tarefa recomendada. Treine o seu modelo em logs de chat entre um usuário e um assistente de IA. Este formato pode ser usado para logs de chat reais e como um formato padrão para resposta a perguntas e texto de conversação. O texto é formatado automaticamente no formato apropriado para o modelo específico. Veja exemplos de modelos de chat na documentação da HuggingFace para mais detalhes sobre a criação de modelos.
  • Ajuste fino supervisionado: treine o seu modelo com base em dados estruturados de solicitação-resposta. Use isto para adaptar seu modelo a uma nova tarefa, alterar seu estilo de resposta ou adicionar funcionalidades relacionadas a seguir instruções. Esta tarefa não aplica formatação automática aos seus dados e só é recomendada quando for necessário realizar uma formatação de dados personalizada.
  • Pré-treinamento contínuo: treine o seu modelo com dados de texto adicionais. Use isto para adicionar novos conhecimentos a um modelo ou focar um modelo em um domínio específico.

Requisitos

  • Um workspace do Databricks em uma das seguintes regiões do Azure: centralus, eastus, eastus2, northcentralus, westcentralus, westus, westus3.
  • APIs do Treinamento de Foundation Model instaladas usando pip install databricks_genai.
  • Databricks Runtime 12.2 LTS ML ou versões superiores se os seus dados estiverem em uma tabela Delta.

Confira Preparar dados para o Treinamento de Foundation Model para obter informações sobre os formatos de dados de entrada necessários.

Para ajuste refinado supervisionado e conclusão de chat, você deve fornecer tokens suficientes para pelo menos um comprimento de contexto completo do modelo. Por exemplo, 4096 tokens para meta-llama/Llama-2-7b-chat-hf ou 32768 tokens para mistralai/Mistral-7B-v0.1.

Para o pré-treinamento contínuo, o Databricks recomenda um mínimo de 1,5 milhão de amostras para obter um modelo de qualidade mais alta que aprenda os seus dados personalizados.

Modelos com suporte

Para os modelos mais recentes com suporte e seus comprimentos de contexto associados, use a função get_models().

Importante

O Llama 3 é licenciado sob a Licença da Comunidade LLAMA 3, direitos autorais de Meta Platforms, Inc. Todos os direitos reservados. Os clientes são responsáveis por garantir a conformidade com as licenças de modelo aplicáveis.

Os modelos Llama 2 e Code Llama são licenciados sob a Licença da Comunidade LLAMA 2, Direitos Autorais © Meta Platforms, Inc. Todos os direitos reservados. Os clientes são responsáveis por garantir a conformidade com as licenças de modelo aplicáveis.

O DBRX é fornecido e está sujeito à Licença de Modelo Aberto do Databricks, Copyright © Databricks, Inc. Todos os direitos reservados. Os clientes são responsáveis por garantir a conformidade com as licenças de modelo aplicáveis, incluindo a Política de uso aceitável do Databricks.


from databricks.model_training import foundation_model

foundation_model.get_models()

A tabela a seguir é uma saída de exemplo e não se destina a ser uma lista completa de modelos com suporte.

Modelar Comprimento máximo do contexto
databricks/dbrx-base 4096
databricks/dbrx-instruct 4096
meta-llama/Meta-Llama-3-70B 8192
meta-llama/Meta-Llama-3-70B-Instruct 8192
meta-llama/Meta-Llama-3-8B 8192
meta-llama/Meta-Llama-3-8B-Instruct 8192
meta-llama/Llama-2-7b-hf 4096
meta-llama/Llama-2-13b-hf 4096
meta-llama/Llama-2-70b-hf 4096
meta-llama/Llama-2-7b-chat-hf 4096
meta-llama/Llama-2-13b-chat-hf 4096
meta-llama/Llama-2-70b-chat-hf 4096
codellama/CodeLlama-7b-hf 16384
codellama/CodeLlama-13b-hf 16384
codellama/CodeLlama-34b-hf 16384
codellama/CodeLlama-7b-Instruct-hf 16384
codellama/CodeLlama-13b-Instruct-hf 16384
codellama/CodeLlama-34b-Instruct-hf 16384
codellama/CodeLlama-7b-Python-hf 16384
codellama/CodeLlama-13b-Python-hf 16384
codellama/CodeLlama-34b-Python-hf 16384
mistralai/Mistral-7B-v0.1 32768
mistralai/Mistral-7B-Instruct-v0.2 32768
mistralai/Mixtral-8x7B-v0.1 32768

Usar o Treinamento de Foundation Model

O Treinamento de Foundation Model é acessível usando o SDK databricks_genai. O exemplo a seguir cria e inicia uma execução de treinamento que usa dados de Volumes do Catálogo do Unity. Confira o artigo Criar uma execução de treinamento usando a API de Treinamento de Modelos Fundamentais para mais detalhes de configuração.

from databricks.model_training import foundation_model as fm

model = 'meta-llama/Llama-2-7b-chat-hf'
# UC Volume with JSONL formatted data
train_data_path = 'dbfs:/Volumes/main/mydirectory/ift/train.jsonl'
register_to = 'main.mydirectory'
run = fm.create(
  model=model,
  train_data_path=train_data_path,
  register_to=register_to,
)

Confira o notebook de demonstração Instrução de ajuste fino: Reconhecimento de Entidade Nomeada para obter um exemplo de ajuste fino de instrução que aborda a preparação de dados, a configuração e a implantação da execução de treinamento de ajuste fino.

Limitações

  • Não há suporte para grandes conjuntos de dados (10 bilhão de tokens ou mais) devido à disponibilidade de computação.
  • Não há suporte para PrivateLink.
  • Para pré-treinamento contínuo, as cargas de trabalho são limitadas a arquivos de 60 a 256 MB. Arquivos maiores que 1 GB podem causar tempos de processamento mais longos.
  • O Databricks se esforça para disponibilizar modelos de última geração para personalização usando o Treinamento de Foundation Model. À medida que disponibilizamos novos modelos, podemos remover a capacidade de acessar modelos mais antigos da API e/ou da interface do usuário, preterir modelos mais antigos ou atualizar modelos com suporte. Se um foundation model for removido da API e/ou da interface do usuário ou preterido, o Databricks executará as seguintes etapas para notificar os clientes pelo menos três meses antes da data de remoção e/ou substituição:
    • Exiba uma mensagem de aviso no cartão de modelo da página Experimentos > Treinamento de Foundation Model do workspace do Databricks indicando que o modelo está agendado para substituição.
    • Atualize nossa documentação para incluir um aviso indicando que o modelo está agendado para substituição.