View a markdown version of this page

Crie e gerencie trabalhos de ajuste fino para modelos de peso aberto usando o OpenAI APIs - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Crie e gerencie trabalhos de ajuste fino para modelos de peso aberto usando o OpenAI APIs

O trabalho de ajuste fino compatível com OpenAI APIs permite que você crie, monitore e gerencie trabalhos de ajuste fino. Esta página destaca o uso deles APIs para o ajuste fino do reforço. Para obter detalhes completos da API, consulte a documentação OpenAIde ajuste fino.

Crie um trabalho de ajuste fino

Cria um trabalho de ajuste fino que inicia o processo de criação de um novo modelo a partir de um determinado conjunto de dados. Para obter detalhes completos da API, consulte a documentação sobre como OpenAIcriar trabalhos de ajuste fino.

Exemplos

Para criar um trabalho de ajuste fino com o método RFT, escolha a guia do seu método preferido e siga as etapas:

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # Create fine-tuning job with RFT method job_response = client.fine_tuning.jobs.create( model=MODEL_ID, training_file=training_file_id, # Suffix field is not supported so commenting for now. # suffix="rft-example", # Optional: suffix for fine-tuned model name extra_body={ "method": { "type": "reinforcement", "reinforcement": { "grader": { "type": "lambda", "lambda": { "function": "arn:aws:lambda:us-west-2:123456789012:function:my-reward-function" # Replace with your Lambda ARN } }, "hyperparameters": { "n_epochs": 1, # Number of training epochs "batch_size": 4, # Batch size "learning_rate_multiplier": 1.0 # Learning rate multiplier } } } } ) # Store job ID for next steps job_id = job_response.id print({job_id})
HTTP request

Faça uma solicitação POST para/v1/fine_tuning/jobs:

curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "training_file": "file-abc123", "model": "gpt-4o-mini", "method": { "type": "reinforcement", "reinforcement": { "grader": { "type": "lambda", "lambda": { "function": "arn:aws:lambda:us-west-2:123456789012:function:my-grader" } }, "hyperparameters": { "n_epochs": 1, "batch_size": 4, "learning_rate_multiplier": 1.0 } } } }'

Listar eventos de ajuste fino

Lista eventos para um trabalho de ajuste fino. Eventos de ajuste fino fornecem informações detalhadas sobre o progresso do seu trabalho, incluindo métricas de treinamento, criação de pontos de verificação e mensagens de erro. Para obter detalhes completos da API, consulte a documentação da OpenAILista de eventos de ajuste fino.

Exemplos

Para listar eventos de ajuste fino, escolha a guia do seu método preferido e siga as etapas:

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # List fine-tuning events events = client.fine_tuning.jobs.list_events( fine_tuning_job_id="ftjob-abc123", limit=50 ) for event in events.data: print(f"[{event.created_at}] {event.level}: {event.message}") if event.data: print(f" Metrics: {event.data}")
HTTP request

Faça uma solicitação GET para/v1/fine_tuning/jobs/{fine_tuning_job_id}/events:

curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/events?limit=50

Os eventos incluem informações como:

  • Mensagens iniciadas e concluídas do treinamento

  • Notificações de criação de pontos de verificação

  • Métricas de treinamento (perda, precisão) em cada etapa

  • Mensagens de erro se o trabalho falhar

Para paginar todos os eventos, escolha a guia do seu método preferido e siga as etapas:

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # Paginate through all events all_events = [] after = None while True: events = client.fine_tuning.jobs.list_events( fine_tuning_job_id="ftjob-abc123", limit=100, after=after ) all_events.extend(events.data) if not events.has_more: break after = events.data[-1].id
HTTP request

Faça várias solicitações GET com o after parâmetro:

# First request curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/events?limit=100 # Subsequent requests with 'after' parameter curl "https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/events?limit=100&after=ft-event-abc123"

Recupere o trabalho de ajuste fino

Obtenha informações detalhadas sobre um trabalho de ajuste fino. Para obter detalhes completos da API, consulte a documentação do trabalho de ajuste fino do OpenAI Retrieve.

Exemplos

Para recuperar detalhes específicos do trabalho, escolha a guia do seu método preferido e siga as etapas:

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # Retrieve specific job details job_details = client.fine_tuning.jobs.retrieve(job_id) # Print raw response print(json.dumps(job_details.model_dump(), indent=2))
HTTP request

Faça uma solicitação GET para/v1/fine_tuning/jobs/{fine_tuning_job_id}:

curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123 \ -H "Authorization: Bearer $OPENAI_API_KEY"

Listar trabalhos de ajuste fino

Lista os trabalhos de ajuste fino da sua organização com suporte à paginação. Para obter detalhes completos da API, consulte a documentação da OpenAILista de trabalhos de ajuste fino.

Exemplos

Para listar trabalhos de ajuste fino com limite e paginação, escolha a guia do seu método preferido e siga as etapas:

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # List fine-tuning jobs with limit and pagination response = client.fine_tuning.jobs.list( limit=20 # Maximum number of jobs to return ) # Print raw response print(json.dumps(response.model_dump(), indent=2))
HTTP request

Faça uma solicitação GET para/v1/fine_tuning/jobs:

curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs?limit=20 \ -H "Authorization: Bearer $OPENAI_API_KEY"

Cancelar o trabalho de ajuste fino

Cancela um trabalho de ajuste fino que está em andamento. Depois de cancelado, o trabalho não pode ser retomado. Para obter detalhes completos da API, consulte a documentação do trabalho de ajuste fino do OpenAI Cancelamento.

Exemplos

Para cancelar um trabalho de ajuste fino, escolha a guia do seu método preferido e siga as etapas:

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # Cancel fine-tuning job cancel_response = client.fine_tuning.jobs.cancel("ftjob-abc123") print(f"Job ID: {cancel_response.id}") print(f"Status: {cancel_response.status}") # Should be "cancelled"
HTTP request

Faça uma solicitação POST para/v1/fine_tuning/jobs/{fine_tuning_job_id}/cancel:

curl -X POST https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/cancel \ -H "Authorization: Bearer $OPENAI_API_KEY"

Listar pontos de verificação de ajuste fino

Lista os pontos de verificação para um trabalho de ajuste fino. Os pontos de verificação são instantâneos de modelos intermediários criados durante o ajuste fino que podem ser usados para inferência para avaliar o desempenho em diferentes estágios de treinamento. Para obter mais informações, consulte a documentação de OpenAIList fine-tuning checkpoints.

Exemplos

Para listar os pontos de verificação de um trabalho de ajuste fino, escolha a guia do seu método preferido e siga as etapas:

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # List checkpoints for a fine-tuning job checkpoints = client.fine_tuning.jobs.checkpoints.list( fine_tuning_job_id="ftjob-abc123", limit=10 ) for checkpoint in checkpoints.data: print(f"Checkpoint ID: {checkpoint.id}") print(f"Step: {checkpoint.step_number}") print(f"Model: {checkpoint.fine_tuned_model_checkpoint}") print(f"Metrics: {checkpoint.metrics}") print("---")
HTTP request

Faça uma solicitação GET para/v1/fine_tuning/jobs/{fine_tuning_job_id}/checkpoints:

curl https://bedrock-mantle.us-west-2.api.aws/v1/fine_tuning/jobs/ftjob-abc123/checkpoints?limit=10

Cada ponto de verificação inclui:

  • ID do ponto de verificação — Identificador exclusivo do ponto de verificação

  • Número da etapa — Etapa de treinamento na qual o ponto de verificação foi criado

  • Ponto de verificação do modelo — identificador do modelo que pode ser usado para inferência

  • Métricas — perda de validação e precisão neste ponto de verificação

Para usar um modelo de ponto de verificação para inferência, escolha a guia do seu método preferido e siga as etapas:

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # Test inference with a checkpoint response = client.chat.completions.create( model=checkpoint.fine_tuned_model_checkpoint, messages=[{"role": "user", "content": "What is AI?"}], max_tokens=100 ) print(response.choices[0].message.content)
HTTP request

Faça uma solicitação POST para/v1/chat/completions:

curl https://bedrock-mantle.us-west-2.api.aws/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "ft:gpt-4o-mini:openai:custom:7p4lURel:ckpt-step-1000", "messages": [{"role": "user", "content": "What is AI?"}], "max_tokens": 100 }'

Execute inferência com um modelo ajustado

Depois que seu trabalho de ajuste estiver concluído, você poderá usar o modelo ajustado para inferência por meio da API de respostas ou da API de conclusão de bate-papo. Para obter detalhes completos da API, consulteGere respostas usando OpenAI APIs.

API de respostas

Use a API de respostas para gerar texto em um único turno com seu modelo ajustado:

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # Get the fine-tuned model ID job_details = client.fine_tuning.jobs.retrieve("ftjob-abc123") if job_details.status == 'succeeded' and job_details.fine_tuned_model: fine_tuned_model = job_details.fine_tuned_model print(f"Using fine-tuned model: {fine_tuned_model}") # Run inference with Responses API response = client.completions.create( model=fine_tuned_model, prompt="What is the capital of France?", max_tokens=100, temperature=0.7 ) print(f"Response: {response.choices[0].text}") else: print(f"Job status: {job_details.status}") print("Job must be in 'succeeded' status to run inference")
HTTP request

Faça uma solicitação POST para/v1/completions:

curl https://bedrock-mantle.us-west-2.api.aws/v1/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "ft:gpt-4o-mini:openai:custom-model:7p4lURel", "prompt": "What is the capital of France?", "max_tokens": 100, "temperature": 0.7 }'

API de conclusão de bate-papo

Use a API Chat Completions para interações conversacionais com seu modelo ajustado:

OpenAI SDK (Python)
# Requires OPENAI_API_KEY and OPENAI_BASE_URL environment variables from openai import OpenAI client = OpenAI() # Get the fine-tuned model ID job_details = client.fine_tuning.jobs.retrieve("ftjob-abc123") if job_details.status == 'succeeded' and job_details.fine_tuned_model: fine_tuned_model = job_details.fine_tuned_model print(f"Using fine-tuned model: {fine_tuned_model}") # Run inference inference_response = client.chat.completions.create( model=fine_tuned_model, messages=[ {"role": "user", "content": "What is the capital of France?"} ], max_tokens=100 ) print(f"Response: {inference_response.choices[0].message.content}") else: print(f"Job status: {job_details.status}") print("Job must be in 'succeeded' status to run inference")
HTTP request

Faça uma solicitação POST para/v1/chat/completions:

curl https://bedrock-mantle.us-west-2.api.aws/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{ "model": "ft:gpt-4o-mini:openai:custom-model:7p4lURel", "messages": [ {"role": "user", "content": "What is the capital of France?"} ], "max_tokens": 100 }'