Partilhar via


Fine Tunes - Create

Cria um trabalho que ajusta um modelo especificado a partir de um determinado arquivo de treinamento. A resposta inclui detalhes do trabalho enfileirado, incluindo status do trabalho e hiperparâmetros. O nome do modelo ajustado é adicionado à resposta depois de concluído.

POST {endpoint}/openai/fine-tunes?api-version=2023-05-15

Parâmetros URI

Nome Em Necessário Tipo Descrição
endpoint
path True

string (url)

Pontos de extremidade de Serviços Cognitivos suportados (protocolo e nome do host, por exemplo: https://aoairesource.openai.azure.com. Substitua "aoairesource" pelo nome da sua conta do Azure OpenAI).

api-version
query True

string

A versão da API solicitada.

Cabeçalho de Pedido

Nome Necessário Tipo Descrição
api-key True

string

Forneça sua chave de conta do Azure OpenAI dos Serviços Cognitivos aqui.

Órgão do Pedido

Nome Necessário Tipo Descrição
model True

string

minLength: 1

O identificador (model-id) do modelo base usado para esse ajuste fino.

training_file True

string

minLength: 1

A identidade do arquivo (file-id) que é usada para treinar esse modelo ajustado.

batch_size

integer (int32)

O tamanho do lote a ser usado para treinamento. O tamanho do lote é o número de exemplos de treinamento usados para treinar um único passe para frente e para trás. Em geral, descobrimos que lotes maiores tendem a funcionar melhor para conjuntos de dados maiores. O valor padrão, bem como o valor máximo para essa propriedade são específicos para um modelo base.

classification_betas

number[] (double)

Os valores beta de classificação. Se isso for fornecido, calculamos as pontuações F-beta nos valores beta especificados. A pontuação F-beta é uma generalização da pontuação F-1. Isso é usado apenas para classificação binária. Com um beta de 1 (ou seja, a pontuação F-1), a precisão e a recordação recebem o mesmo peso. Uma pontuação beta maior coloca mais peso na recuperação e menos na precisão. Uma pontuação beta menor coloca mais peso na precisão e menos na recordação.

classification_n_classes

integer (int32)

O número de classes em uma tarefa de classificação. Este parâmetro é necessário para a classificação multiclasse.

classification_positive_class

string

A classe positiva na classificação binária. Esse parâmetro é necessário para gerar métricas de precisão, recall e F1 ao fazer a classificação binária.

compute_classification_metrics

boolean

Um valor que indica se as métricas de classificação devem ser calculadas. Se definido, calculamos métricas específicas de classificação, como precisão e pontuação F-1, usando o conjunto de validação no final de cada época. Essas métricas podem ser visualizadas no arquivo de resultados. Para calcular métricas de classificação, você deve fornecer um validation_file. Além disso, você deve especificar classification_n_classes para classificação multiclasse ou classification_positive_class para classificação binária.

learning_rate_multiplier

number (double)

O multiplicador da taxa de aprendizagem a utilizar na formação. A taxa de aprendizagem de ajuste fino é a taxa de aprendizagem original usada para pré-treinamento multiplicada por esse valor. Taxas de aprendizagem maiores tendem a ter um melhor desempenho com lotes maiores. Recomendamos experimentar valores no intervalo de 0,02 a 0,2 para ver o que produz os melhores resultados.

n_epochs

integer (int32)

O número de épocas para treinar o modelo. Uma época refere-se a um ciclo completo através do conjunto de dados de treinamento.

prompt_loss_weight

number (double)

O peso a ser usado para perda nos tokens de prompt. Isso controla o quanto o modelo tenta aprender a gerar o prompt (em comparação com a conclusão, que sempre tem um peso de 1,0), e pode adicionar um efeito estabilizador ao treinamento quando as finalizações são curtas. Se os prompts forem extremamente longos (em relação aos prompts), pode fazer sentido reduzir esse peso para evitar priorizar demais o aprendizado do prompt.

suffix

string

O sufixo usado para identificar o modelo ajustado. O sufixo pode conter até 40 caracteres (a-z, A-Z, 0-9,- e _) que serão adicionados ao seu nome de modelo ajustado.

validation_file

string

A identidade do arquivo (file-id) usada para avaliar o modelo ajustado durante o treinamento.

Respostas

Nome Tipo Descrição
201 Created

FineTune

O ajuste fino foi criado com sucesso.

Cabeçalhos

Location: string

Other Status Codes

ErrorResponse

Ocorreu um erro.

Segurança

api-key

Forneça sua chave de conta do Azure OpenAI dos Serviços Cognitivos aqui.

Tipo: apiKey
Em: header

Exemplos

Creating a fine tune job for classification.
Creating a fine tune job.

Creating a fine tune job for classification.

Pedido de exemplo

POST https://aoairesource.openai.azure.com/openai/fine-tunes?api-version=2023-05-15


{
  "compute_classification_metrics": true,
  "classification_n_classes": 4,
  "model": "curie",
  "training_file": "file-181a1cbdcdcf4677ada87f63a0928099"
}

Resposta de exemplo

location: https://aoairesource.openai.azure.com/openai/fine-tunes/ft-72a2792ef7d24ba7b82c7fe4a37e379f
{
  "hyperparams": {
    "compute_classification_metrics": true,
    "classification_n_classes": 4,
    "batch_size": 32,
    "learning_rate_multiplier": 1,
    "n_epochs": 2,
    "prompt_loss_weight": 0.1
  },
  "model": "curie",
  "training_files": [
    {
      "statistics": {
        "tokens": 42,
        "examples": 23
      },
      "bytes": 140,
      "purpose": "fine-tune",
      "filename": "puppy.jsonl",
      "id": "file-181a1cbdcdcf4677ada87f63a0928099",
      "status": "succeeded",
      "created_at": 1646126127,
      "updated_at": 1646127311,
      "object": "file"
    }
  ],
  "id": "ft-72a2792ef7d24ba7b82c7fe4a37e379f",
  "status": "notRunning",
  "created_at": 1646126127,
  "updated_at": 1646127311,
  "object": "fine-tune"
}

Creating a fine tune job.

Pedido de exemplo

POST https://aoairesource.openai.azure.com/openai/fine-tunes?api-version=2023-05-15


{
  "model": "curie",
  "training_file": "file-181a1cbdcdcf4677ada87f63a0928099"
}

Resposta de exemplo

location: https://aoairesource.openai.azure.com/openai/fine-tunes/ft-72a2792ef7d24ba7b82c7fe4a37e379f
{
  "hyperparams": {
    "batch_size": 32,
    "learning_rate_multiplier": 1,
    "n_epochs": 2,
    "prompt_loss_weight": 0.1
  },
  "model": "curie",
  "training_files": [
    {
      "statistics": {
        "tokens": 42,
        "examples": 23
      },
      "bytes": 140,
      "purpose": "fine-tune",
      "filename": "puppy.jsonl",
      "id": "file-181a1cbdcdcf4677ada87f63a0928099",
      "status": "succeeded",
      "created_at": 1646126127,
      "updated_at": 1646127311,
      "object": "file"
    }
  ],
  "id": "ft-72a2792ef7d24ba7b82c7fe4a37e379f",
  "status": "notRunning",
  "created_at": 1646126127,
  "updated_at": 1646127311,
  "object": "fine-tune"
}

Definições

Nome Descrição
Error

Erro

ErrorCode

Código de erro

ErrorResponse

ErrorResponse

Event

Evento

File

Ficheiro

FileStatistics

FileStatistics

FineTune

FineTune

FineTuneCreation

FineTuneCreation

HyperParameters

Hiperparâmetros

InnerError

InnerError

InnerErrorCode

InnerErrorCode

LogLevel

LogLevel

Purpose

Finalidade

State

Estado

TypeDiscriminator

TipoDiscriminador

Error

Erro

Nome Tipo Descrição
code

ErrorCode

Código de erro
Códigos de erro, conforme definido nas diretrizes do Microsoft REST (https://github.com/microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses).

details

Error[]

Os detalhes do erro, se disponíveis.

innererror

InnerError

InnerError
Erro interno, conforme definido nas diretrizes do Microsoft REST (https://github.com/microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses).

message

string

minLength: 1

A mensagem deste erro.

target

string

O local onde o erro aconteceu, se disponível.

ErrorCode

Código de erro

Valor Descrição
conflict

A operação solicitada entra em conflito com o estado atual do recurso.

invalidPayload

Os dados da solicitação são inválidos para esta operação.

forbidden

A operação é proibida para a chave de usuário/api atual.

notFound

O recurso não foi encontrado.

unexpectedEntityState

A operação não pode ser executada no estado do recurso atual.

itemDoesAlreadyExist

O item já existe.

serviceUnavailable

O serviço não está disponível no momento.

internalFailure

Erro interno. Por favor, tente novamente.

quotaExceeded

Quota excedida.

jsonlValidationFailed

Falha na validação dos dados jsonl.

fileImportFailed

Falha na importação do arquivo.

ErrorResponse

ErrorResponse

Nome Tipo Descrição
error

Error

Erro
Conteúdo de erro, conforme definido nas diretrizes do Microsoft REST (https://github.com/microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses).

Event

Evento

Nome Tipo Descrição
created_at

integer (unixtime)

Um carimbo de data/hora quando este evento foi criado (em épocas unix).

level

LogLevel

LogLevel
O nível de verbosidade de um evento.

message

string

minLength: 1

A mensagem que descreve o evento. Isso pode ser uma mudança de estado, por exemplo, enfileirado, iniciado, com falha ou concluído, ou outros eventos, como resultados carregados.

object

TypeDiscriminator

TipoDiscriminador
Define o tipo de um objeto.

File

Ficheiro

Nome Tipo Descrição
bytes

integer (int64)

O tamanho deste arquivo quando disponível (pode ser nulo). Não há suporte para tamanhos de arquivo maiores que 2^53-1 para garantir a compatibilidade com inteiros JavaScript.

created_at

integer (unixtime)

Um carimbo de data/hora quando este trabalho ou item foi criado (em épocas unix).

error

Error

Erro
Conteúdo de erro, conforme definido nas diretrizes do Microsoft REST (https://github.com/microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses).

filename

string

minLength: 1

O nome do arquivo.

id

string

A identidade deste item.

object

TypeDiscriminator

TipoDiscriminador
Define o tipo de um objeto.

purpose

Purpose

Finalidade
A finalidade pretendida dos documentos carregados. Use "ajuste fino" para ajuste fino. Isto permite-nos validar o formato do ficheiro carregado.

statistics

FileStatistics

FileStatistics
Um ficheiro é um documento utilizável para formação e validação. Também pode ser um documento gerado por serviço com detalhes de resultados.

status

State

Estado
O estado de um trabalho ou item.

updated_at

integer (unixtime)

Um carimbo de data/hora quando este trabalho ou item foi modificado pela última vez (em épocas unix).

FileStatistics

FileStatistics

Nome Tipo Descrição
examples

integer (int32)

O número de exemplos de treinamento contidos em arquivos do tipo "ajuste" assim que a validação do conteúdo do arquivo for concluída.

tokens

integer (int32)

O número de tokens usados em prompts e finalizações para arquivos do tipo "ajuste" assim que a validação do conteúdo do arquivo for concluída.

FineTune

FineTune

Nome Tipo Descrição
created_at

integer (unixtime)

Um carimbo de data/hora quando este trabalho ou item foi criado (em épocas unix).

error

Error

Erro
Conteúdo de erro, conforme definido nas diretrizes do Microsoft REST (https://github.com/microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses).

events

Event[]

Os eventos que mostram o progresso da execução de ajuste fino, incluindo enfileirado, em execução e concluído.

fine_tuned_model

string

O identificador (model-id) do modelo ajustado resultante. Esta propriedade só é preenchida para execuções de ajuste fino concluídas com êxito. Use esse identificador para criar uma implantação para inferência.

hyperparams

HyperParameters

Hiperparâmetros
As configurações de hiperparâmetro usadas em um trabalho de ajuste fino.

id

string

A identidade deste item.

model

string

minLength: 1

O identificador (model-id) do modelo base usado para o ajuste fino.

object

TypeDiscriminator

TipoDiscriminador
Define o tipo de um objeto.

organisation_id

string

A organização id deste trabalho de afinação. Não utilizado no Azure OpenAI; compatibilidade apenas para OpenAI.

result_files

File[]

As identidades do arquivo de resultado (file-id) contendo métricas de treinamento e avaliação no formato csv. O arquivo só está disponível para execuções de ajuste fino concluídas com êxito.

status

State

Estado
O estado de um trabalho ou item.

suffix

string

O sufixo usado para identificar o modelo ajustado.

training_files

File[]

As identidades de arquivo (file-id) que são usadas para treinar o modelo ajustado.

updated_at

integer (unixtime)

Um carimbo de data/hora quando este trabalho ou item foi modificado pela última vez (em épocas unix).

user_id

string

O ID de usuário deste trabalho de ajuste fino. Não utilizado no Azure OpenAI; compatibilidade apenas para OpenAI.

validation_files

File[]

As identidades de arquivo (file-id) que são usadas para avaliar o modelo ajustado durante o treinamento.

FineTuneCreation

FineTuneCreation

Nome Tipo Descrição
batch_size

integer (int32)

O tamanho do lote a ser usado para treinamento. O tamanho do lote é o número de exemplos de treinamento usados para treinar um único passe para frente e para trás. Em geral, descobrimos que lotes maiores tendem a funcionar melhor para conjuntos de dados maiores. O valor padrão, bem como o valor máximo para essa propriedade são específicos para um modelo base.

classification_betas

number[] (double)

Os valores beta de classificação. Se isso for fornecido, calculamos as pontuações F-beta nos valores beta especificados. A pontuação F-beta é uma generalização da pontuação F-1. Isso é usado apenas para classificação binária. Com um beta de 1 (ou seja, a pontuação F-1), a precisão e a recordação recebem o mesmo peso. Uma pontuação beta maior coloca mais peso na recuperação e menos na precisão. Uma pontuação beta menor coloca mais peso na precisão e menos na recordação.

classification_n_classes

integer (int32)

O número de classes em uma tarefa de classificação. Este parâmetro é necessário para a classificação multiclasse.

classification_positive_class

string

A classe positiva na classificação binária. Esse parâmetro é necessário para gerar métricas de precisão, recall e F1 ao fazer a classificação binária.

compute_classification_metrics

boolean

Um valor que indica se as métricas de classificação devem ser calculadas. Se definido, calculamos métricas específicas de classificação, como precisão e pontuação F-1, usando o conjunto de validação no final de cada época. Essas métricas podem ser visualizadas no arquivo de resultados. Para calcular métricas de classificação, você deve fornecer um validation_file. Além disso, você deve especificar classification_n_classes para classificação multiclasse ou classification_positive_class para classificação binária.

learning_rate_multiplier

number (double)

O multiplicador da taxa de aprendizagem a utilizar na formação. A taxa de aprendizagem de ajuste fino é a taxa de aprendizagem original usada para pré-treinamento multiplicada por esse valor. Taxas de aprendizagem maiores tendem a ter um melhor desempenho com lotes maiores. Recomendamos experimentar valores no intervalo de 0,02 a 0,2 para ver o que produz os melhores resultados.

model

string

minLength: 1

O identificador (model-id) do modelo base usado para esse ajuste fino.

n_epochs

integer (int32)

O número de épocas para treinar o modelo. Uma época refere-se a um ciclo completo através do conjunto de dados de treinamento.

prompt_loss_weight

number (double)

O peso a ser usado para perda nos tokens de prompt. Isso controla o quanto o modelo tenta aprender a gerar o prompt (em comparação com a conclusão, que sempre tem um peso de 1,0), e pode adicionar um efeito estabilizador ao treinamento quando as finalizações são curtas. Se os prompts forem extremamente longos (em relação aos prompts), pode fazer sentido reduzir esse peso para evitar priorizar demais o aprendizado do prompt.

suffix

string

O sufixo usado para identificar o modelo ajustado. O sufixo pode conter até 40 caracteres (a-z, A-Z, 0-9,- e _) que serão adicionados ao seu nome de modelo ajustado.

training_file

string

minLength: 1

A identidade do arquivo (file-id) que é usada para treinar esse modelo ajustado.

validation_file

string

A identidade do arquivo (file-id) usada para avaliar o modelo ajustado durante o treinamento.

HyperParameters

Hiperparâmetros

Nome Tipo Descrição
batch_size

integer (int32)

O tamanho do lote a ser usado para treinamento. O tamanho do lote é o número de exemplos de treinamento usados para treinar um único passe para frente e para trás. Em geral, descobrimos que lotes maiores tendem a funcionar melhor para conjuntos de dados maiores. O valor padrão, bem como o valor máximo para essa propriedade são específicos para um modelo base.

classification_betas

number[] (double)

Os valores beta de classificação. Se isso for fornecido, calculamos as pontuações F-beta nos valores beta especificados. A pontuação F-beta é uma generalização da pontuação F-1. Isso é usado apenas para classificação binária. Com um beta de 1 (ou seja, a pontuação F-1), a precisão e a recordação recebem o mesmo peso. Uma pontuação beta maior coloca mais peso na recuperação e menos na precisão. Uma pontuação beta menor coloca mais peso na precisão e menos na recordação.

classification_n_classes

integer (int32)

O número de classes em uma tarefa de classificação. Este parâmetro é necessário para a classificação multiclasse.

classification_positive_class

string

A classe positiva na classificação binária. Esse parâmetro é necessário para gerar métricas de precisão, recall e F1 ao fazer a classificação binária.

compute_classification_metrics

boolean

Um valor que indica se as métricas de classificação devem ser calculadas. Se definido, calculamos métricas específicas de classificação, como precisão e pontuação F-1, usando o conjunto de validação no final de cada época. Essas métricas podem ser visualizadas no arquivo de resultados. Para calcular métricas de classificação, você deve fornecer um validation_file. Além disso, você deve especificar classification_n_classes para classificação multiclasse ou classification_positive_class para classificação binária.

learning_rate_multiplier

number (double)

O multiplicador da taxa de aprendizagem a utilizar na formação. A taxa de aprendizagem de ajuste fino é a taxa de aprendizagem original usada para pré-treinamento multiplicada por esse valor. Taxas de aprendizagem maiores tendem a ter um melhor desempenho com lotes maiores. Recomendamos experimentar valores no intervalo de 0,02 a 0,2 para ver o que produz os melhores resultados.

n_epochs

integer (int32)

O número de épocas para treinar o modelo. Uma época refere-se a um ciclo completo através do conjunto de dados de treinamento.

prompt_loss_weight

number (double)

O peso a ser usado para perda nos tokens de prompt. Isso controla o quanto o modelo tenta aprender a gerar o prompt (em comparação com a conclusão, que sempre tem um peso de 1,0), e pode adicionar um efeito estabilizador ao treinamento quando as finalizações são curtas. Se os prompts forem extremamente longos (em relação aos prompts), pode fazer sentido reduzir esse peso para evitar priorizar demais o aprendizado do prompt.

InnerError

InnerError

Nome Tipo Descrição
code

InnerErrorCode

InnerErrorCode
Códigos de erro internos, conforme definido nas diretrizes do Microsoft REST (https://github.com/microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses).

innererror

InnerError

InnerError
Erro interno, conforme definido nas diretrizes do Microsoft REST (https://github.com/microsoft/api-guidelines/blob/vNext/Guidelines.md#7102-error-condition-responses).

InnerErrorCode

InnerErrorCode

Valor Descrição
invalidPayload

Os dados da solicitação são inválidos para esta operação.

LogLevel

LogLevel

Valor Descrição
info

Este evento é apenas para informação.

warning

Esse evento representa um problema mitigado.

error

Esta mensagem representa um problema não recuperável.

Purpose

Finalidade

Valor Descrição
fine-tune

Este arquivo contém dados de treinamento para um trabalho de ajuste fino.

fine-tune-results

Este arquivo contém os resultados de um trabalho de ajuste fino.

State

Estado

Valor Descrição
notRunning

A operação foi criada e não está na fila para ser processada no futuro.

running

A operação já começou a ser processada.

succeeded

A operação foi processada com sucesso e está pronta para consumo.

canceled

A operação foi cancelada e está incompleta.

failed

A operação concluiu o processamento com uma falha e não pode ser consumida mais.

deleted

A entidade foi excluída, mas ainda pode ser referenciada por outras entidades anteriores à exclusão.

TypeDiscriminator

TipoDiscriminador

Valor Descrição
list

Este objeto representa uma lista de outros objetos.

fine-tune

Este objeto representa um trabalho de ajuste fino.

file

Este objeto representa um arquivo.

fine-tune-event

Este objeto representa um evento de um trabalho de ajuste fino.

model

Este objeto representa um modelo (pode ser um modelo base ou um resultado de trabalho de ajuste fino).