Crie uma execução de treinamento usando a API do Mosaic AI Model Training

Importante

Este recurso está em prévia pública em us-east-1 e us-west-2.

Esta página descreve como criar e configurar uma execução de treinamento usando a API do Mosaic AI Model Training (antigo Foundation Model Training) e descreve todos os parâmetros usados na chamada da API. Você também pode criar uma execução usando a interface do usuário. Para obter instruções, consulte Criar uma execução de treinamento usando a interface de usuário do Mosaic AI Model Training.

Requisitos

Consulte Requisitos.

Crie uma execução de treinamento

Para criar execuções de treinamento de forma programática, use a função create(). Essa função treina um modelo no conjunto de dados disponibilizado e converte o ponto de verificação final do Composiotr em um ponto de verificação formatado como Hugging Face para inferência.

As entradas necessárias são o modelo que você deseja treinar, o local do seu dataset de treinamento e onde registrar seu modelo. Há também campos opcionais que permitem realizar a avaliação e alterar os hiperparâmetros de sua execução.

Após a conclusão da execução, a execução concluída e o ponto de verificação final são salvos, o modelo é clonado e esse clone é registrado no Unity Catalog como uma versão do modelo para inferência.

O modelo da execução concluída, não a versão do modelo clonado no Unity Catalog, e seus pontos de verificação Composer e Hugging Face são salvos no MLflow. Os pontos de verificação do Composer podem ser usados para tarefas contínuas de ajuste fino.

Consulte Configurar uma execução de treinamento para ver os detalhes sobre os argumentos da função create().

from databricks.model_training import foundation_model as fm

run = fm.create(
  model='meta-llama/Llama-2-7b-chat-hf',
  train_data_path='dbfs:/Volumes/main/mydirectory/ift/train.jsonl', # UC Volume with JSONL formatted data
  # Public HF dataset is also supported
  # train_data_path='mosaicml/dolly_hhrlhf/train'
  register_to='main.mydirectory', # UC catalog and schema to register the model to
)

Configurar uma execução de treinamento

A tabela a seguir resume os campos da função create().

campo

Obrigatório

Tipo

Descrição

model

x

str

O nome do modelo a ser usado. Consulte Modelos compatíveis.

train_data_path

x

str

O local dos seus dados de treinamento. Pode ser um local no Unity Catalog (<catalog>.<schema>.<table> ou dbfs:/Volumes/<catalog>/<schema>/<volume>/<dataset>.jsonl) ou um conjunto de dados do HuggingFace.

Para INSTRUCTION_FINETUNE, os dados devem ser formatados com cada linha contendo um campo prompt e response.

Para CONTINUED_PRETRAIN, esta é uma pasta de .txt arquivos. Consulte Preparação de dados para o Mosaic AI Model Training para saber os formatos de dados aceitos e Tamanho recomendado dos dados de treinamento de modelos para saber as recomendações de tamanho dos dados.

register_to

x

str

O catálogo e o esquema do Unity Catalog (<catalog>.<schema> ou <catalog>.<schema>.<custom-name>) em que o modelo é registrado após o treinamento para facilitar a implantação. Se custom-name não for informado, o default será o nome da execução.

data_prep_cluster_id

str

O ID do clustering a ser usado para processamento de dados do Spark. Isso é necessário para tarefas de treinamento supervisionado em que os dados de treinamento estão em uma tabela Delta. Para obter informações sobre como encontrar a ID do cluster, consulte Obter ID do cluster.

experiment_path

str

O caminho para o experimento MLflow em que a saída da execução de treinamento (métricas e pontos de verificação) é salva. O default é o nome da execução dentro do workspace pessoal do usuário (ou seja, /Users/<username>/<run_name>).

task_type

str

O tipo de tarefa a ser executada. Pode ser INSTRUCTION_FINETUNE (default), CHAT_COMPLETION ou CONTINUED_PRETRAIN.

eval_data_path

str

A localização remota dos seus dados de avaliação (se houver). Deve seguir o mesmo formato de train_data_path.

eval_prompts

str

Uma lista de strings de instrução para gerar respostas durante a avaliação. O padrão é None (não gera instruções). Os resultados são registrados no experimento sempre que o modelo é verificado. As gerações ocorrem em cada ponto de verificação do modelo com os seguintes parâmetros de geração: max_new_tokens: 100, temperature: 1, top_k: 50, top_p: 0.95, do_sample: true.

custom_weights_path

str

A localização remota de um ponto de verificação de modelo personalizado para treinamento. O default é None, o que significa que a execução começa pelos pesos pré-treinados originais do modelo escolhido. Caso sejam disponibilizados pesos personalizados, estes pesos serão usados em vez dos pesos originais pré-treinados do modelo. Esses pesos devem ser um ponto de verificação do Compositor e devem corresponder à arquitetura do model especificado

training_duration

str

A duração total da sua execução. O default é uma época ou 1ep. Pode ser especificado em épocas (10ep) ou tokens (1000000tok).

learning_rate

str

Taxa de aprendizagem para treinamento de modelos. O default é 5e-7. O otimizador é o DecoupledLionW com betas de 0,99 e 0,95 e sem decaimento de peso. O programador da taxa de aprendizagem é o LinearWithWarmupSchedule com um aquecimento de 2% da duração total do treinamento e um multiplicador de taxa de aprendizagem final de 0.

context_length

str

O comprimento máximo da sequência da amostra de dados. É usado para truncar quaisquer dados muito longos e para empacotar sequências mais curtas para eficiência.

O default é 8192 tokens ou o tamanho máximo do contexto para o modelo oferecido, o que for menor. Você pode usar esse parâmetro para configurar o tamanho do contexto, mas a configuração além do tamanho máximo do contexto de cada modelo não é compatível. Consulte Modelos compatíveis para saber o tamanho máximo de contexto suportado de cada modelo.

validate_inputs

Booleana

Se deve validar o acesso aos caminhos de entrada antes de enviar o Job de treinamento. O default é True.

Construir sobre os pesos dos modelo personalizados

O Mosaic AI Model Training dá suporte ao treinamento de todos os modelos compatíveis a partir de pesos personalizados usando o parâmetro opcional custom_weights_path.

Por exemplo, você pode criar um modelo específico de domínio com seus dados personalizados e passar então o ponto de verificação desejado como entrada para mais treinamento.

Você pode indicar o local remoto para o ponto de verificação do Compositor da sua execução anterior para treinamento. Os caminhos do ponto de verificação estão disponíveis na tab Artefatos de uma execução anterior do MLflow e estão no formato: dbfs:/databricks/mlflow-tracking/<experiment_id>/<run_id>/artifacts/<run_name>/checkpoints/<checkpoint_folder>[.symlink], onde a extensão do link simbólico é opcional. Esse nome de pasta de ponto de verificação corresponde ao lote e à época de um snapshot específico, como ep29-ba30/. O snapshot final pode ser acessado com o link simbólico latest-sharded-rank0.symlink.

Tab Artefatos de uma execução anterior do MLflow

O caminho pode então ser passado para o parâmetro custom_weights_path em sua configuração.

model = 'meta-llama/Llama-2-7b-chat-hf'
custom_weights_path = 'your/checkpoint/path'

Obtenha o ID do cluster

Para recuperar o ID do cluster:

  1. Na barra de navegação esquerda do workspace do Databricks, clique em Computação.

  2. Na tabela, clique no nome do cluster.

  3. Clique em Botão Mais no canto superior direito e selecione Ver JSON no menu suspenso.

  4. O arquivo JSON do cluster é exibido. Copie a ID do cluster, que é a primeira linha no arquivo.

    id do cluster

Ver o status de uma execução

Você pode acompanhar o progresso da execução usando a página Experimento na interface do usuário do Databricks ou usando o comando get_events() da API. Para obter detalhes, consulte Exibição, gerenciamento e análise de execuções do Mosaic AI Model Training.

Exemplo de saída de get_events():

Use a API para obter o status da execução

Detalhes da execução de exemplo na página Experimento:

Veja o status da execução na interface do usuários de experimentos

Próximas etapas

Após a conclusão da execução do treinamento, é possível revisar as métricas no MLflow e implantar o modelo para inferência. Veja os passos 5 a 7 do Tutorial: criação e implantação de uma execução do Mosaic AI Model Training.

Consulte o Notebook Instruction fine-tuning: Named Entity Recognition para ver um exemplo de ajuste fino de instruções que descreve a preparação de dados, a configuração e a implementação do treinamento de ajuste fino.

Notebook exemplo

O site Notebook a seguir mostra um exemplo de como gerar o uso sintético de dados do modelo Meta Llama 3.1 405B Instruct e usar esses dados para ajustar um modelo:

Gerar uso sintético de dados Llama 3.1 405B Instruct Notebook

Abra o bloco de anotações em outra guia