Fine Tunes - Create
Cria um trabalho que ajusta um modelo especificado de um determinado arquivo de treinamento. A resposta inclui detalhes do trabalho enfileirado, incluindo status do trabalho e hiper parâmetros. O nome do modelo ajustado é adicionado à resposta após a conclusão.
POST {endpoint}/openai/fine-tunes?api-version=2023-05-15
Parâmetros de URI
| Nome | Em | Obrigatório | Tipo | Description |
|---|---|---|---|---|
|
endpoint
|
path | True |
string (url) |
Pontos de extremidade dos Serviços Cognitivos com suporte (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 da solicitação
| Nome | Obrigatório | Tipo | Description |
|---|---|---|---|
| api-key | True |
string |
Forneça sua chave de conta do Azure OpenAI dos Serviços Cognitivos aqui. |
Corpo da solicitação
| Nome | Obrigatório | Tipo | Description |
|---|---|---|---|
| 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 (id de arquivo) 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 tamanhos de lote maiores tendem a funcionar melhor para conjuntos de dados maiores. O valor padrão, bem como o valor máximo dessa propriedade, são específicos para um modelo base. |
|
| classification_betas |
number[] (double) |
Os valores beta de classificação. Se isso for fornecido, calcularemos 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 o recall recebem o mesmo peso. Uma pontuação beta maior coloca mais peso no recall e menos na precisão. Uma pontuação beta menor coloca mais peso na precisão e menos no recall. |
|
| classification_n_classes |
integer (int32) |
O número de classes em uma tarefa de classificação. Esse parâmetro é necessário para classificação multiclasse. |
|
| classification_positive_class |
string |
A classe positiva na classificação binária. Esse parâmetro é necessário para gerar precisão, recall e métricas 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 computas. 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 exibidas no arquivo de resultados. Para calcular as 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 de taxa de aprendizagem a ser usado para treinamento. A taxa de aprendizado de ajuste fino é a taxa de aprendizado original usada para pré-treinamento multiplicado por esse valor. Taxas de aprendizagem maiores tendem a ter um desempenho melhor com tamanhos de lote 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 as quais treinar o modelo. Uma época refere-se a um ciclo completo por meio 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 conclusões são curtas. Se os prompts forem extremamente longos (em relação às conclusões), talvez faça sentido reduzir esse peso para evitar a priorização excessiva do 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 (id de arquivo) usada para avaliar o modelo ajustado durante o treinamento. |
Respostas
| Nome | Tipo | Description |
|---|---|---|
| 201 Created |
A afinação foi criada com êxito. Cabeçalhos Location: string |
|
| Other Status Codes |
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.
Solicitação 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.
Solicitação 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 | Description |
|---|---|
| Error |
Erro |
|
Error |
ErrorCode |
|
Error |
ErrorResponse |
| Event |
Acontecimento |
| File |
Arquivo |
|
File |
FileStatistics |
|
Fine |
FineTune |
|
Fine |
FineTuneCreation |
|
Hyper |
HiperParâmetros |
|
Inner |
InnerError |
|
Inner |
InnerErrorCode |
|
Log |
LogLevel |
| Purpose |
Propósito |
| State |
Estado |
|
Type |
TypeDiscriminator |
Error
Erro
| Nome | Tipo | Description |
|---|---|---|
| code |
ErrorCode |
|
| details |
Error[] |
Os detalhes do erro, se disponíveis. |
| innererror |
InnerError |
|
| message |
string minLength: 1 |
A mensagem desse erro. |
| target |
string |
O local em que o erro ocorreu se disponível. |
ErrorCode
ErrorCode
| Valor | Description |
|---|---|
| conflict |
A operação solicitada entra em conflito com o estado do recurso atual. |
| 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 |
No momento, o serviço não está disponível. |
| internalFailure |
Erro interno. Tente novamente. |
| quotaExceeded |
Cota excedida. |
| jsonlValidationFailed |
Falha na validação de dados jsonl. |
| fileImportFailed |
Falha na importação do arquivo. |
ErrorResponse
ErrorResponse
| Nome | Tipo | Description |
|---|---|---|
| error |
Erro |
Event
Acontecimento
| Nome | Tipo | Description |
|---|---|---|
| created_at |
integer (unixtime) |
Um carimbo de data/hora quando esse evento foi criado (em épocas unix). |
| level |
LogLevel |
|
| message |
string minLength: 1 |
A mensagem que descreve o evento. Isso pode ser uma alteração de estado, por exemplo, enfileirado, iniciado, com falha ou concluído ou outros eventos, como resultados carregados. |
| object |
TypeDiscriminator |
File
Arquivo
| Nome | Tipo | Description |
|---|---|---|
| bytes |
integer (int64) |
O tamanho desse 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 |
Erro |
|
| filename |
string minLength: 1 |
O nome do arquivo. |
| id |
string |
A identidade deste item. |
| object |
TypeDiscriminator |
|
| purpose |
Propósito |
|
| statistics |
FileStatistics |
|
| status |
Estado |
|
| updated_at |
integer (unixtime) |
Um carimbo de data/hora quando este trabalho ou item foi modificado por último (em épocas unix). |
FileStatistics
FileStatistics
| Nome | Tipo | Description |
|---|---|---|
| examples |
integer (int32) |
O número de exemplos de treinamento contidos em arquivos do tipo "ajuste fino" após a conclusão da validação do conteúdo do arquivo. |
| tokens |
integer (int32) |
O número de tokens usados em prompts e conclusões para arquivos do tipo "ajuste fino" após a conclusão da validação do conteúdo do arquivo. |
FineTune
FineTune
| Nome | Tipo | Description |
|---|---|---|
| created_at |
integer (unixtime) |
Um carimbo de data/hora quando este trabalho ou item foi criado (em épocas unix). |
| error |
Erro |
|
| events |
Event[] |
Os eventos que mostram o progresso da execução de ajuste fino, incluindo enfileirados, em execução e concluídos. |
| fine_tuned_model |
string |
O identificador (id de modelo) do modelo ajustado resultante. Essa 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 |
HiperParâmetros |
|
| id |
string |
A identidade deste item. |
| model |
string minLength: 1 |
O identificador (model-id) do modelo base usado para o ajuste fino. |
| object |
TypeDiscriminator |
|
| organisation_id |
string |
A ID da organização deste trabalho de ajuste fino. Não utilizado no Azure OpenAI; compatibilidade somente para OpenAI. |
| result_files |
File[] |
As identidades de arquivo de resultado (id de arquivo) que contêm 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 |
Estado |
|
| suffix |
string |
O sufixo usado para identificar o modelo ajustado. |
| training_files |
File[] |
As identidades de arquivo (id de arquivo) 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 por último (em épocas unix). |
| user_id |
string |
A ID do usuário deste trabalho de ajuste fino. Não utilizado no Azure OpenAI; compatibilidade somente para OpenAI. |
| validation_files |
File[] |
As identidades de arquivo (id de arquivo) usadas para avaliar o modelo ajustado durante o treinamento. |
FineTuneCreation
FineTuneCreation
| Nome | Tipo | Description |
|---|---|---|
| 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 tamanhos de lote maiores tendem a funcionar melhor para conjuntos de dados maiores. O valor padrão, bem como o valor máximo dessa propriedade, são específicos para um modelo base. |
| classification_betas |
number[] (double) |
Os valores beta de classificação. Se isso for fornecido, calcularemos 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 o recall recebem o mesmo peso. Uma pontuação beta maior coloca mais peso no recall e menos na precisão. Uma pontuação beta menor coloca mais peso na precisão e menos no recall. |
| classification_n_classes |
integer (int32) |
O número de classes em uma tarefa de classificação. Esse parâmetro é necessário para classificação multiclasse. |
| classification_positive_class |
string |
A classe positiva na classificação binária. Esse parâmetro é necessário para gerar precisão, recall e métricas 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 computas. 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 exibidas no arquivo de resultados. Para calcular as 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 de taxa de aprendizagem a ser usado para treinamento. A taxa de aprendizado de ajuste fino é a taxa de aprendizado original usada para pré-treinamento multiplicado por esse valor. Taxas de aprendizagem maiores tendem a ter um desempenho melhor com tamanhos de lote 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 as quais treinar o modelo. Uma época refere-se a um ciclo completo por meio 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 conclusões são curtas. Se os prompts forem extremamente longos (em relação às conclusões), talvez faça sentido reduzir esse peso para evitar a priorização excessiva do 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 (id de arquivo) usada para treinar esse modelo ajustado. |
| validation_file |
string |
A identidade do arquivo (id de arquivo) usada para avaliar o modelo ajustado durante o treinamento. |
HyperParameters
HiperParâmetros
| Nome | Tipo | Description |
|---|---|---|
| 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 tamanhos de lote maiores tendem a funcionar melhor para conjuntos de dados maiores. O valor padrão, bem como o valor máximo dessa propriedade, são específicos para um modelo base. |
| classification_betas |
number[] (double) |
Os valores beta de classificação. Se isso for fornecido, calcularemos 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 o recall recebem o mesmo peso. Uma pontuação beta maior coloca mais peso no recall e menos na precisão. Uma pontuação beta menor coloca mais peso na precisão e menos no recall. |
| classification_n_classes |
integer (int32) |
O número de classes em uma tarefa de classificação. Esse parâmetro é necessário para classificação multiclasse. |
| classification_positive_class |
string |
A classe positiva na classificação binária. Esse parâmetro é necessário para gerar precisão, recall e métricas 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 computas. 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 exibidas no arquivo de resultados. Para calcular as 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 de taxa de aprendizagem a ser usado para treinamento. A taxa de aprendizado de ajuste fino é a taxa de aprendizado original usada para pré-treinamento multiplicado por esse valor. Taxas de aprendizagem maiores tendem a ter um desempenho melhor com tamanhos de lote 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 as quais treinar o modelo. Uma época refere-se a um ciclo completo por meio 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 conclusões são curtas. Se os prompts forem extremamente longos (em relação às conclusões), talvez faça sentido reduzir esse peso para evitar a priorização excessiva do aprendizado do prompt. |
InnerError
InnerError
| Nome | Tipo | Description |
|---|---|---|
| code |
InnerErrorCode |
|
| innererror |
InnerError |
InnerErrorCode
InnerErrorCode
| Valor | Description |
|---|---|
| invalidPayload |
Os dados da solicitação são inválidos para esta operação. |
LogLevel
LogLevel
| Valor | Description |
|---|---|
| info |
Esse evento é somente para informações. |
| warning |
Esse evento representa um problema atenuado. |
| error |
Essa mensagem representa um problema não recuperável. |
Purpose
Propósito
| Valor | Description |
|---|---|
| fine-tune |
Este arquivo contém dados de treinamento para um trabalho de ajuste fino. |
| fine-tune-results |
Esse arquivo contém os resultados de um trabalho de ajuste fino. |
State
Estado
| Valor | Description |
|---|---|
| notRunning |
A operação foi criada e não está na fila para ser processada no futuro. |
| running |
A operação começou a ser processada. |
| succeeded |
A operação foi processada com êxito 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. |
| deleted |
A entidade foi excluída, mas ainda pode ser referenciada por outras entidades que antecedem a exclusão. |
TypeDiscriminator
TypeDiscriminator
| Valor | Description |
|---|---|
| list |
Esse objeto representa uma lista de outros objetos. |
| fine-tune |
Esse objeto representa um trabalho de ajuste fino. |
| file |
Esse objeto representa um arquivo. |
| fine-tune-event |
Esse objeto representa um evento de um trabalho de ajuste fino. |
| model |
Esse objeto representa um modelo (pode ser um modelo base ou um resultado de trabalho de ajuste fino). |