A destilação passo a passo usa um modelo professor grande para treinar um modelo estudante menor a fim de executar melhor determinadas tarefas com recursos aprimorados de raciocínio. O modelo treinado e destilado pode fazer as mesmas coisas que você gosta no modelo de professor maior a um custo menor e com menor latência.
Ao destilar um modelo de fundação, você usa um modelo professor e um modelo estudante:
O modelo professor é o modelo grande que pode fazer o que você quiser. No entanto, por causa do tamanho, o modelo professor pode custar mais para usar e ter mais latência do que um modelo menor.
O modelo estudante é menor que o modelo professor. O processo de treinamento e destilação usa exemplos rotulados e justificativas gerados pelo modelo de professor para ajustar o modelo do estudante. Os recursos de desempenho e raciocínio do modelo destilado resultante são melhores do que o modelo estudante original.
Você especifica um modelo professor e um modelo estudante ao criar um job de destilação.
Modelos compatíveis
É possível especificar o seguinte para o modelo de professor:
text-unicorn@001
É possível especificar o seguinte para o modelo de estudante:
text-bison@002
Formato do conjunto de dados
A destilação funciona em um conjunto de dados rotulado ou não rotulado. Se você tiver um conjunto de dados rotulado de alta qualidade com centenas de exemplos, recomendamos que o use. Caso contrário, é possível usar um conjunto de dados de comandos sem rótulo. Se você usar um conjunto de dados não rotulado, o modelo professor gera os rótulos e a lógica para destilação. Se você usar um conjunto de dados não rotulado,é recomendável usar mais de 1.000 exemplos.
O conjunto de dados de destilação rotulado ou não rotulado precisa estar no formato JSON Lines (JSONL), em que cada linha contém um único exemplo de ajuste. Antes de destilar o modelo, faça upload do conjunto de dados em um bucket do Cloud Storage.
Cada exemplo de conjunto de dados contém um campo input_text
com o comando do modelo e um campo output_text
opcional que contém um exemplo de resposta que o modelo destilado vai produzir.
O tamanho máximo do token para input_text
é 7.168, e o comprimento máximo do token para output_text
é 1.024. Se algum dos campos exceder o tamanho máximo do token, os tokens excedentes serão truncados.
O número máximo de exemplos que um conjunto de dados para um modelo de geração de texto pode conter é 10.000.
Exemplo de conjunto de dados
{"input_text": "question: How many people live in Beijing? context: With over 21 million residents, Beijing is the world's most populous national capital city and is China's second largest city after Shanghai. It is located in Northern China, and is governed as a municipality under the direct administration of the State Council with 16 urban, suburban, and rural districts.[14] Beijing is mostly surrounded by Hebei Province with the exception of neighboring Tianjin to the southeast; together, the three divisions form the Jingjinji megalopolis and the national capital region of China.", "output_text": "over 21 million people"}
{"input_text": "question: How many parishes are there in Louisiana? context: The U.S. state of Louisiana is divided into 64 parishes (French: paroisses) in the same manner that 48 other states of the United States are divided into counties, and Alaska is divided into boroughs.", "output_text": "64"}
Incluir instruções em exemplos
Para tarefas como classificação, é possível criar um conjunto de dados de exemplos que não contenham instruções. No entanto, a exclusão de instruções dos exemplos no conjunto de dados leva a um desempenho pior após a destilação do que a inclusão de instruções, especialmente para conjuntos de dados menores.
Não inclui instruções:
{"input_text": "5 stocks to buy now", "output_text": "business"}
Inclui instruções:
{"input_text": "Classify the following text into one of the following classes: [business, entertainment] Text: 5 stocks to buy now", "output_text": "business"}
Conjuntos de dados de amostra
Você pode usar um conjunto de dados de amostra para começar a destilação. Confira a seguir um conjunto de dados de tarefas de classificação que contém amostras de transcrições médicas de várias especialidades diferentes. Os dados são de mtsamples.com e foram disponibilizados no Kaggle.
Exemplo de URI do conjunto de dados de destilação:
gs://cloud-samples-data/vertex-ai/model-evaluation/peft_train_sample.jsonl
Exemplo de URI do conjunto de dados de avaliação:
gs://cloud-samples-data/vertex-ai/model-evaluation/peft_eval_sample.jsonl
Para usar esses conjuntos de dados, especifique os URIs nos parâmetros aplicáveis ao criar um job de destilação do modelo de texto.
Exemplo:
...
"dataset_uri": "gs://cloud-samples-data/vertex-ai/model-evaluation/peft_train_sample.jsonl",
...
"evaluation_data_uri": "gs://cloud-samples-data/vertex-ai/model-evaluation/peft_eval_sample.jsonl",
...
Manter a consistência com os dados de produção
Os exemplos nos seus conjunto de dados precisam corresponder ao tráfego de produção esperado. Se o conjunto de dados contiver formatação, palavras-chave, instruções ou informações específicas, os dados de produção deverão ser formatados da mesma maneira e conter as mesmas instruções.
Por exemplo, se os exemplos no seu conjunto de dados incluem um "question:"
e um "context:"
, o tráfego de produção também deve ser formatado para incluir um "question:"
e um "context:"
na mesma ordem em que aparece no exemplos de conjuntos de dados. Se você excluir o contexto, o modelo não reconhecerá o padrão,
mesmo que a pergunta exata esteja em um exemplo no conjunto de dados.
Fazer upload de conjuntos de dados de destilação para o Cloud Storage
Para executar um job de ajuste, é preciso fazer upload de um ou mais conjuntos de dados para um bucket do Cloud Storage. É possível criar um novo bucket do Cloud Storage ou usar um existente para armazenar arquivos de conjuntos de dados. A região do bucket não importa, mas recomendamos que você use um bucket que esteja no mesmo projeto do Google Cloud em que planeja executar o ajuste do modelo.
Quando o bucket estiver pronto, faça o upload do arquivo do conjunto de dados para o bucket.
Configurações de região de destilação
É possível especificar três configurações de região do Google Cloud ao configurar um job de destilação. Uma região é onde o pipeline que ajusta o modelo é executado. A outra região é onde a parte de ajuste do modelo do processo de destilação é executada e o modelo destilado é enviado.
Região do job do pipeline
A região do job do pipeline é onde esse job é executado. Se a região de upload do modelo opcional não for especificada, o modelo será transferido e implantado na região do job do pipeline. Os dados intermediários, como o conjunto de dados transformados, são armazenados na região do job do pipeline. Para saber quais regiões podem ser usadas como região do job do pipeline, consulte Regiões compatíveis de upload do modelo e job do pipeline.
Especifique a região do job do pipeline usando um dos seguintes métodos.
Se você criar um job de destilação enviando uma solicitação POST com o método
pipelineJobs.create
, use o URL para especificar a região onde o job do pipeline será executado. No URL a seguir, substitua as duas instâncias dePIPELINE_JOB_REGION
pela região onde o pipeline será executado:https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs
Se você usa o console do Google Cloud para criar um job de destilação, especifique a região do job do pipeline no controle Região ao criar o job de destilação. No console do Google Cloud, o controle Região especifica a região do job do pipeline e a região de upload do modelo. Quando você usa o console do Google Cloud para criar um job de destilação, as duas regiões são sempre as mesmas.
Região de upload do modelo
Use o parâmetro opcional tuned_model_location
para especificar para onde o modelo destilado será transferido. Se a região de upload do modelo não for especificada, o modelo destilado será transferido para a região do job do pipeline. É possível usar uma das Regiões compatíveis de upload do modelo e job do pipeline como região de upload do modelo. É possível especificar a região de upload do modelo usando um dos seguintes métodos:
Se você criar um job de destilação enviando uma solicitação POST usando o método
pipelineJobs
, use o parâmetrolocation
para especificar a região de upload do modelo.Se você usa o console do Google Cloud para criar um job de destilação, especifique a região de upload do modelo no controle Região ao criar o job de destilação. No console do Google Cloud, o controle Região especifica a região de upload do modelo e a região do job do pipeline. Quando você usa o console do Google Cloud para criar um job de destilação, as duas regiões são sempre as mesmas.
Região de ajuste do modelo
Na região de ajuste, ocorre o cálculo da parte de ajuste do job de destilação. Essa região é determinada pelo tipo de acelerador escolhido. Se você especificar TPU
como tipo de acelerador, o processamento do ajuste do modelo acontecerá em europe-west4
. Se você especificar GPU
como tipo de acelerador, o ajuste do modelo acontecerá em us-central1
.
Regiões compatíveis de upload do modelo e job do pipeline
É possível usar uma das regiões a seguir para especificar a região de upload do modelo e a região do job do pipeline:
us-central1
europe-west4
asia-southeast1
us-west1
europe-west3
europe-west2
asia-northeast1
us-east4
us-west4
northamerica-northeast1
europe-west9
europe-west1
asia-northeast3
Criar um job de destilação de modelo de texto
É possível criar um job de destilação de modelo de texto usando o console do Google Cloud ou a API. Para orientações sobre configurações de ajuste de modelos, consulte Configurações recomendadas.
REST
Para criar um job de ajuste do modelo, envie uma solicitação POST usando o método pipelineJobs
.
Alguns dos parâmetros não são compatíveis com todos os modelos. Inclua
apenas os parâmetros aplicáveis ao modelo que você está
destilando.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PIPELINEJOB_DISPLAYNAME: um nome de exibição do pipelineJob.
- OUTPUT_DIR: o URI do bucket de saída dos artefatos do pipeline.
- PROJECT_ID: o ID do projeto.
- MODEL_DISPLAYNAME: um nome de exibição para o modelo destilado enviado por
pipelineJob
. - DATASET_URI: URI do arquivo do conjunto de dados.
- PIPELINE_JOB_REGION: a região onde o job de ajuste do pipeline é executado. Essa também é a região padrão para onde o modelo ajustado é transferido. Se você quiser fazer upload do modelo para uma região diferente, use o parâmetro
location
para especificar a região de upload do modelo ajustado. Para mais informações, consulte Região de upload do modelo. - MODEL_UPLOAD_REGION (opcional): a região para onde o modelo ajustado é transferido. Se você não especificar uma região de upload do modelo, o modelo ajustado será transferido para a mesma região onde o job do pipeline é executado. Para mais informações, consulte Região de upload do modelo.
- ACCELERATOR_TYPE (opcional,
GPU
padrão): o tipo de acelerador a ser usado para ajuste do modelo. As opções válidas são:GPU
: usa oito GPUs A100 de 80 GB para ajuste. Verifique se você tem cota suficiente. Se você escolherGPU
, o VPC‐SC será permitido. A CMEK será permitida se os locais de ajuste e de upload do modelo foremus-centra1
. Para mais informações, consulte Configurações de região do ajuste supervisionado. Se você escolherGPU
, os processamentos de ajuste do modelo acontecerão na regiãous-central1
.TPU
: usa 64 núcleos do pod da TPU v3 para ajuste. Verifique se você tem cota suficiente. A CMEK não é permitida, mas sim o VPC‐SC. Se você escolherTPU
, os processamentos de ajuste do modelo acontecerão na regiãoeurope-west4
.
- TEACHER_MODEL_REFERENCE: nome do modelo professor a ser usado para destilação. O modelo aceito é
text-unicorn@001
. - STUDENT_MODEL_REFERENCE: nome do modelo estudante a ser usado para destilação. O modelo aceito é
text-bison@002
. - STEPS: o número de etapas a serem executadas para o ajuste do modelo. O valor padrão é 300. O tamanho do lote varia de acordo com o local de ajuste e o tamanho do modelo. Para modelos 8k, como
text-bison@002
,chat-bison@002
,code-bison@002
ecodechat-bison@002
:us-central1
tem um tamanho de lote de 8.europe-west4
tem um tamanho de lote de 24.
text-bison-32k
,chat-bison-32k
,code-bison-32k
ecodechat-bison-32k
:us-central1
tem um tamanho de lote de 8.europe-west4
tem um tamanho de lote de 8.
Por exemplo, se você treinar
text-bison@002
emeurope-west4
, haverá 240 exemplos em um conjunto de dados de treinamento e você definirásteps
como 20, então o número de exemplos de treinamento será o produto de 20 etapas e o tamanho do lote de 24 ou 480 etapas de treinamento. Nesse caso, haverá dois períodos no processo de treinamento porque ele passará pelos exemplos duas vezes. Emus-central1
, se houver 240 exemplos em um conjunto de dados de treinamento e você definirsteps
como 15, o número de exemplos de treinamento será o produto de 15 etapas e o tamanho do lote de 8 ou 120 etapas de treinamento. Nesse caso, haverá 0,5 período porque haverá metade do número de etapas de treinamento que o número de exemplos. - LEARNING_RATE_MULTIPLIER: um multiplicador para aplicar à taxa de aprendizado recomendada. Para usar a taxa de aprendizado recomendada, use
1.0
. - EVAL_DATASET_URI: (opcional) o URI do arquivo JSONL que contém o conjunto de dados de avaliação para previsão e avaliação em lote. Não há suporte à avaliação de
chat-bison
. Para mais informações, consulte Formato do conjunto de dados para ajustar um modelo de código. O conjunto de dados de avaliação requer de 10 a 250 exemplos. - EVAL_INTERVAL: (opcional,
20
padrão) o número de etapas de ajuste entre cada avaliação. Um intervalo de avaliação não é compatível com modelos de chat. Como a avaliação é executada em todo o conjunto de dados de avaliação, um intervalo de avaliação menor resulta em um tempo de ajuste mais longo. Por exemplo, sesteps
for 200 eEVAL_INTERVAL
for 100, você terá apenas dois pontos de dados para as métricas de avaliação. Esse parâmetro exige que aevaluation_data_uri
seja definida. - ENABLE_EARLY_STOPPING: (opcional,
true
padrão) umaboolean
que, se definida comotrue
, interrompe o ajuste antes de concluir todas as etapas de ajuste, se o desempenho do modelo for medido pela precisão dos tokens previstos, não melhora o suficiente entre as execuções de avaliações. Sefalse
, o ajuste continuará até que todas as etapas de ajuste sejam concluídas. Esse parâmetro exige que aevaluation_data_uri
seja definida. A ativação da parada antecipada não é compatível com modelos de chat. - TENSORBOARD_RESOURCE_ID: (opcional) o ID de uma instância do TensorBoard da Vertex AI. A instância do Vertex AI TensorBoard é usada para criar um experimento após a conclusão do job de ajuste. A instância do TensorBoard da Vertex AI precisa estar na mesma região do pipeline de ajuste.
- ENCRYPTION_KEY_NAME:
(opcional) o nome totalmente qualificado de uma chave de criptografia gerenciada pelo cliente (CMEK) que você quer usar
para criptografia de dados. Uma CMEK está disponível apenas em
us-central1
. Se você usarus-central1
e não especificar uma CMEK, uma chave de criptografia gerenciada pelo Google será usada. Por padrão, uma chave de criptografia gerenciada pelo Google é usada em todas as outras regiões disponíveis. Para mais informações, consulte Informações gerais da CMEK. - TEMPLATE_URI: o URI do modelo de destilação,
https://us-kfp.pkg.dev/ml-pipeline/distillation/distillation/v1.0.0
. - SERVICE_ACCOUNT: (opcional) a conta de serviço que a Vertex AI usa para executar o job do pipeline. Por padrão, é usada a conta de serviço padrão do Compute Engine do projeto (
PROJECT_NUMBER‑compute@developer.gserviceaccount.com
). Saiba mais sobre como anexar uma conta de serviço personalizada.
Método HTTP e URL:
POST https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs
Corpo JSON da solicitação:
{ "displayName": "PIPELINEJOB_DISPLAYNAME", "runtimeConfig": { "gcsOutputDirectory": "gs://OUTPUT_DIR", "parameterValues": { "project": "PROJECT_ID", "model_display_name": "MODEL_DISPLAYNAME", "dataset_uri": "gs://DATASET_URI", "location": "MODEL_UPLOAD_REGION", "accelerator_type": "ACCELERATOR_TYPE", "teacher_model_reference":TEACHER_MODEL_REFERENCE , "student_model_reference":STUDENT_MODEL_REFERENCE , "train_steps": STEPS, "learning_rate_multiplier": LEARNING_RATE_MULTIPLIER, "evaluation_data_uri": "gs://EVAL_DATASET_URI", "evaluation_interval": EVAL_INTERVAL, "enable_early_stopping": ENABLE_EARLY_STOPPING, "enable_checkpoint_selection": "ENABLE_CHECKPOINT_SELECTION", "tensorboard_resource_id": "TENSORBOARD_ID", "encryption_spec_key_name": "ENCRYPTION_KEY_NAME" } }, "encryptionSpec": { "kmsKeyName": "ENCRYPTION_KEY_NAME" }, "serviceAccount": "SERVICE_ACCOUNT", "templateUri": "TEMPLATE_URI" }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs" | Select-Object -Expand Content
Você receberá uma resposta JSON semelhante a seguinte. Observe que pipelineSpec
foi truncado para economizar espaço.
Python
Para saber como instalar ou atualizar o Python, consulte Instalar o SDK da Vertex AI para Python. Para mais informações, consulte a documentação de referência da API Python.
Console
Para destilar um modelo de texto usando o Console do Google Cloud, execute as seguintes etapas:
- Na seção "Vertex AI" do console do Google Cloud, acesse a página do Vertex AI Studio.
- Clique na guia Ajustar e destilar.
- Clique em Criar modelo destilado.
- Configure os detalhes do modelo:
- Nome do modelo: insira um nome para o modelo destilado.
- Modelo de professor: selecione o modelo que você quer usar como modelo de professor.
- Modelo de estudante: selecione o modelo que você quer usar como modelo de estudante.
- Região: selecione a região onde o job de ajuste do pipeline será executado e onde o modelo ajustado será implantado.
- Diretório de trabalho: insira o local do Cloud Storage em que os artefatos são armazenados quando o modelo é ajustado.
- Expanda Opções avançadas para definir configurações avançadas.
- Treinar etapas: digite o número de etapas a serem executadas para o ajuste do modelo. O valor padrão é 300. O tamanho do lote varia de acordo com o local de ajuste e o tamanho do modelo. Para modelos 8k, como
text-bison@002
,chat-bison@002
,code-bison@002
ecodechat-bison@002
:us-central1
tem um tamanho de lote de 8.europe-west4
tem um tamanho de lote de 24.
text-bison-32k
,chat-bison-32k
,code-bison-32k
ecodechat-bison-32k
:us-central1
tem um tamanho de lote de 8.europe-west4
tem um tamanho de lote de 8.
Por exemplo, se você treinar
text-bison@002
emeurope-west4
, haverá 240 exemplos em um conjunto de dados de treinamento e você definirásteps
como 20, então o número de exemplos de treinamento será o produto de 20 etapas e o tamanho do lote de 24 ou 480 etapas de treinamento. Nesse caso, haverá dois períodos no processo de treinamento porque ele passará pelos exemplos duas vezes. Emus-central1
, se houver 240 exemplos em um conjunto de dados de treinamento e você definirsteps
como 15, o número de exemplos de treinamento será o produto de 15 etapas e o tamanho do lote de 8 ou 120 etapas de treinamento. Nesse caso, haverá 0,5 período porque haverá metade do número de etapas de treinamento que o número de exemplos. - Multiplicador de taxa de aprendizado: digite o tamanho da etapa em cada iteração. O valor padrão é 1.
- Tipo de acelerador (opcional): insira o tipo de acelerador a ser usado para ajuste do modelo. As opções válidas são:
GPU
: usa oito GPUs A100 de 80 GB para ajuste. Verifique se você tem cota suficiente. Se você escolherGPU
, o VPC‐SC será permitido. A CMEK será permitida se os locais de ajuste e de upload do modelo foremus-centra1
. Para mais informações, consulte Configurações de região do ajuste supervisionado. Se você escolherGPU
, os processamentos de ajuste do modelo acontecerão na regiãous-central1
.TPU
: usa 64 núcleos do pod da TPU v3 para ajuste. Verifique se você tem cota suficiente. A CMEK não é permitida, mas sim o VPC‐SC. Se você escolherTPU
, os processamentos de ajuste do modelo acontecerão na regiãoeurope-west4
.
- Adicionar uma instância do TensorBoard: (opcional) o ID de uma instância do TensorBoard da Vertex AI. A instância do Vertex AI TensorBoard é usada para criar um experimento após a conclusão do job de ajuste. A instância do TensorBoard da Vertex AI precisa estar na mesma região do pipeline de ajuste.
- Criptografia
(opcional) Use uma chave de criptografia gerenciada pelo Google ou pelo cliente
(CMEK). Uma CMEK está disponível para criptografia apenas na região
us-central1
. Em todas as outras regiões disponíveis, uma chave de criptografia gerenciada pelo Google é usada. Para mais informações, consulte Informações gerais da CMEK. - Conta de serviço (opcional): escolha uma conta de serviço gerenciada pelo usuário. Uma conta de serviço determina quais recursos do Google Cloud podem ser acessados com seu código de serviço. Se você não escolher uma conta de serviço, será usada uma conta de serviço gerenciada pelo Google que inclui permissões apropriadas para a maioria dos modelos.
- Treinar etapas: digite o número de etapas a serem executadas para o ajuste do modelo. O valor padrão é 300. O tamanho do lote varia de acordo com o local de ajuste e o tamanho do modelo. Para modelos 8k, como
- Clique em Continuar.
- Se você quiser fazer upload do arquivo do conjunto de dados de destilação, selecione
Fazer upload de um arquivo JSONL
- Em Selecionar arquivo JSONL, clique em Procurar e selecione o arquivo do conjunto de dados.
- Em Local do conjunto de dados, clique em Procurar e selecione o bucket do Cloud Storage em que você quer armazenar o arquivo do conjunto de dados.
Usar um arquivo JSONL
Em Caminho do arquivo do Cloud Storage, clique em Procurar e selecione o bucket do Cloud Storage em que o arquivo do conjunto de dados está localizado.
Fazer upload do arquivo JSONL no
Cloud Storage. Se o arquivo do conjunto de dados já
estiver em um bucket do Cloud Storage, selecione Arquivo
JSONL no Cloud Storage.
- (Opcional) Para avaliar o modelo destilado, selecione Ativar avaliação
do modelo e configure a avaliação do modelo:
- Conjunto de dados de avaliação: (opcional) o URI do arquivo JSONL que contém o conjunto de dados de avaliação para previsão e avaliação em lote. Não há suporte à avaliação de
codechat-bison
. Para mais informações, consulte Formato do conjunto de dados para ajustar um modelo de código. O conjunto de dados de avaliação requer de 10 a 250 exemplos. - Intervalo de avaliação: (opcional,
20
padrão) o número de etapas de ajuste entre cada avaliação. Um intervalo de avaliação não é compatível com modelos de chat. Como a avaliação é executada em todo o conjunto de dados de avaliação, um intervalo de avaliação menor resulta em um tempo de ajuste mais longo. Por exemplo, sesteps
for 200 eEVAL_INTERVAL
for 100, você terá apenas dois pontos de dados para as métricas de avaliação. Esse parâmetro exige que aevaluation_data_uri
seja definida. - Ativar parada antecipada: (opcional, padrão
true
) umaboolean
que, se definida comotrue
, interrompe o ajuste antes de concluir todas as etapas de ajuste, se o desempenho do modelo for medido pela acurácia dos tokens previstos, não melhora o suficiente entre as execuções de avaliações. Sefalse
, o ajuste continuará até que todas as etapas de ajuste sejam concluídas. Esse parâmetro exige que aevaluation_data_uri
seja definida. A ativação da parada antecipada não é compatível com modelos de chat. - Ativar a seleção de checkpoints: quando ativada, a Vertex AI seleciona e retorna o checkpoint com o melhor desempenho de avaliação do modelo de todos os checkpoints criados durante o job de ajuste. Quando desativado, o checkpoint final criado durante o job de ajuste é retornado. Cada checkpoint se refere a um snapshot do modelo durante um job de ajuste.
- Instância do TensorBoard: (opcional) o ID de uma instância do TensorBoard da Vertex AI. A instância do Vertex AI TensorBoard é usada para criar um experimento após a conclusão do job de ajuste. A instância do TensorBoard da Vertex AI precisa estar na mesma região do pipeline de ajuste.
- Conjunto de dados de avaliação: (opcional) o URI do arquivo JSONL que contém o conjunto de dados de avaliação para previsão e avaliação em lote. Não há suporte à avaliação de
- Clique em Iniciar destilação.
Configurações recomendadas
A tabela a seguir mostra as configurações recomendadas para destilar um modelo de fundação por tarefa:
Tarefa | Nº de exemplos no conjunto de dados | Etapas de treinamento |
---|---|---|
Classificação | Mais de 100 | 200-1000 |
Resumo | 100-500+ | 1000-1500 |
QA extrativa | Mais de 100 | 200-800 |
Nas etapas de treinamento, você pode testar mais de um valor para ter o melhor desempenho em um determinado conjunto de dados, por exemplo, 100, 200, 500.
Exibir uma lista de modelos destilados
É possível visualizar uma lista de modelos no projeto atual, incluindo os modelos destilados, usando o console do Google Cloud ou o SDK da Vertex AI para Python.
Python
Antes de testar essa amostra, siga as instruções de configuração para Python Guia de início rápido da Vertex AI: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vertex AI para Python.
Para autenticar na Vertex AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Console
Para visualizar seus modelos destilados no console do Google Cloud, acesse a página do Vertex AI Model Registry.
Carregar um modelo de texto destilado
O exemplo de código a seguir usa o SDK da Vertex AI para Python para carregar um modelo de geração de texto destilado:
import vertexai from vertexai.preview.language_models import TextGenerationModel model = TextGenerationModel.get_tuned_model(TUNED_MODEL_NAME)
Substitua TUNED_MODEL_NAME
pelo nome do recurso qualificado do modelo destilado.
Esse nome está no formato projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID
.
Encontre o ID do modelo destilado no
Vertex AI Model Registry.
Métricas de ajuste e avaliação
É possível configurar um job de ajuste de modelo para coletar e relatar métricas de ajuste e avaliação de modelos, que podem ser visualizadas usando o TensorBoard da Vertex AI. Para conectar seu job de ajuste ao TensorBoard da Vertex AI, especifique um ID de instância do TensorBoard da Vertex AI e um conjunto de dados de avaliação.
Métricas de ajuste de modelos
É possível configurar um job de ajuste de modelo para coletar as seguintes métricas de ajuste para
chat-bison
, code-bison
, codechat-bison
e text-bison
:
/train_total_loss
: perda do conjunto de dados de ajuste em uma etapa de treinamento./train_fraction_of_correct_next_step_preds
: a precisão do token em uma etapa de treinamento. Uma única previsão consiste em uma sequência de tokens. Mede a precisão dos tokens previstos quando comparados às informações empíricas no conjunto de dados de ajuste./train_num_predictions:
Número de tokens previstos em uma etapa de treinamento.
Métricas de avaliação de modelo:
É possível configurar um job de ajuste de modelo para coletar as seguintes métricas de avaliação
para code-bison
e text-bison
:
/eval_total_loss
: perda do conjunto de dados de avaliação em uma etapa de avaliação./eval_fraction_of_correct_next_step_preds
: a precisão do token em uma etapa de avaliação. Uma única previsão consiste em uma sequência de tokens. Mede a precisão dos tokens previstos quando comparados às informações empíricas no conjunto de dados de avaliação./eval_num_predictions
: número de tokens previstos em uma etapa de avaliação.
As visualizações de métricas ficam disponíveis após a conclusão do job de ajuste do modelo. Se você especificar apenas um ID de instância do TensorBoard da Vertex AI e não um conjunto de dados de avaliação ao criar o job de ajuste, apenas as visualizações das métricas de ajuste estarão disponíveis.