Criar um treinamento execução usando o treinamento Foundation Model API

Importante

Esse recurso está em Public Preview. Entre em contato com a equipe do Databricks account para se inscrever no Public Preview.

Esta página descreve como criar e configurar uma execução de treinamento usando o treinamento do Foundation Model API e descreve todos os parâmetros usados na chamada API. O senhor 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 UI de treinamento do Foundation Model.

Requisitos

Veja os requisitos.

Criar um treinamento execução

Para criar treinamento execução de forma programática, use a função create(). Essa função ensina um modelo no site dataset fornecido e converte o ponto de verificação final do Composer em um ponto de verificação formatado em Hugging Face para inferência.

As entradas necessárias são o modelo que o senhor deseja ensinar, o local do seu treinamento dataset e onde registrar seu modelo. Há também campos opcionais que permitem que o senhor faça avaliações e altere os hiperparâmetros da sua execução. Depois que o senhor cria uma execução, os pontos de verificação são salvos na execução do MLflow e o ponto de verificação final é registrado no Unity Catalog para facilitar a implantação.

Consulte Configurar uma execução de treinamento para obter 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
)

Após a conclusão da execução, a execução concluída e os pontos de verificação finais são salvos, e o modelo é registrado no Unity Catalog.

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

A localização de seus dados de treinamento. Pode ser um local em Unity Catalog (<catalog>.<schema>.<table> ou dbfs:/Volumes/<catalog>/<schema>/<volume>/<dataset>.jsonl) ou um HuggingFace dataset.

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

Para CONTINUED_PRETRAIN, essa é uma pasta de .txt arquivos. Consulte Preparar dados para o treinamento do Foundation Model para obter os formatos de dados aceitos e Tamanho de dados recomendado para o treinamento do modelo para obter as recomendações de tamanho de 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 fornecido, o padrão será o nome da execução.

data_prep_cluster_id

str

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

experiment_path

str

O caminho para o experimento do MLflow onde a saída da execução de treinamento (métricas e pontos de verificação) é salva. padrão para o nome da execução no site pessoal do usuário workspace (ou seja, o /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

O local remoto de seus dados de avaliação (se houver). Deve seguir o mesmo formato de train_data_path.

eval_prompts

str

Uma lista de sugestões strings para gerar respostas durante a avaliação. default é None (não gera prompts). Os resultados são registrados no experimento toda vez que o modelo é submetido a um ponto de verificação. 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. default é None, o que significa que a execução começará com os pesos pré-treinados originais do modelo escolhido. Se forem fornecidos pesos personalizados, esses pesos serão usados em vez dos pesos pré-treinados originais do modelo. Esses pesos devem ser um ponto de verificação do Composer e devem corresponder à arquitetura do model especificado

training_duration

str

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

learning_rate

str

A taxa de aprendizado para o treinamento do modelo. 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 é LinearWithWarmupSchedule com um aquecimento de 2% da duração total do treinamento e um multiplicador da taxa de aprendizagem final de 0.

context_length

str

O comprimento máximo da sequência de uma amostra de dados. Isso é usado para truncar dados muito longos e para agrupar sequências mais curtas para aumentar a eficiência.

O site default é o default do modelo fornecido. Não há suporte para aumentar o comprimento do contexto além do default de cada modelo. Consulte Modelos suportados para saber o comprimento do contexto de cada modelo.

validate_inputs

Boolean

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

Construir sobre pesos de modelos personalizados

O treinamento do modelo Foundation suporta o treinamento de qualquer um dos modelos suportados, começando com pesos personalizados, usando o parâmetro opcional custom_weights_path.

Por exemplo, o senhor pode criar um modelo específico de domínio com seus dados personalizados e, em seguida, passar o ponto de verificação desejado como uma entrada para treinamento adicional.

O senhor pode fornecer o local remoto para o ponto de verificação do Composer de sua execução anterior para treinamento. Os caminhos do ponto de verificação podem ser encontrados em Artifacts tab de uma execução anterior do MLflow e têm o formato: dbfs:/databricks/mlflow-tracking/<experiment_id>/<run_id>/artifacts/<run_name>/checkpoints/<checkpoint_folder>[.symlink], em que a extensão do link simbólico é opcional. Esse nome de pasta de ponto de verificação corresponde aos lotes e à época de um determinado Snapshot, como ep29-ba30/. O site final Snapshot pode ser acessado com o link simbólico latest-sharded-rank0.symlink.

Artefatos tab para uma execução anterior 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'

Obter o ID do cluster

Para recuperar o ID do cluster:

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

  2. Na tabela, clique no nome de seu cluster.

  3. Clique em Mais botões no canto superior direito e selecione view JSON no menu suspenso.

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

    clusterId

Obter o status de uma execução

O senhor pode acompanhar o progresso de uma execução usando a página Experiment na interface do usuário do Databricks ou usando o comando get_events() da API. Para obter detalhes, consulte view, gerenciar e analisar o Foundation Model treinamento execução.

Exemplo de saída de get_events():

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

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

Obter o status da execução na interface do usuário dos experimentos

Próximos passos

Após a conclusão da execução do treinamento, o senhor pode revisar as métricas em MLflow e implantar seu modelo para inferência. Veja os passos 5 a 7 do site tutorial: Criar e implantar um treinamento execução usando o Foundation Model treinamento.