View a markdown version of this page

Créez et gérez des tâches de réglage précis pour les modèles à poids ouvert à l'aide d'OpenAI APIs - Amazon Bedrock

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Créez et gérez des tâches de réglage précis pour les modèles à poids ouvert à l'aide d'OpenAI APIs

Les tâches de réglage fin compatibles avec OpenAI vous APIs permettent de créer, de surveiller et de gérer des tâches de réglage précis. Cette page décrit leur utilisation APIs pour affiner le renforcement. Pour obtenir des informations complètes sur l'API, consultez la documentation relative OpenAI au réglage précis.

Créez un travail de réglage précis

Crée une tâche de réglage fin qui lance le processus de création d'un nouveau modèle à partir d'un jeu de données donné. Pour obtenir des informations complètes sur l'API, consultez la documentation relative à la OpenAI création de tâches de réglage précis.

Exemples

Pour créer une tâche de réglage précis avec la méthode RFT, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

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

Faites une demande POST pour /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 } } } }'

Répertorier les événements de réglage

Répertorie les événements nécessaires à une tâche de mise au point. Les événements de réglage précis fournissent des informations détaillées sur l'avancement de votre travail, notamment les indicateurs de formation, la création de points de contrôle et les messages d'erreur. Pour obtenir des informations complètes sur l'API, consultez la documentation relative à la OpenAI liste des événements de réglage précis.

Exemples

Pour répertorier les événements de réglage précis, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

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

Envoyez une requête GET à l'adresse suivante /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

Les événements incluent des informations telles que :

  • Messages de début et de fin de la formation

  • Notifications de création de points de contrôle

  • Indicateurs d'entraînement (perte, précision) à chaque étape

  • Messages d'erreur en cas d'échec de la tâche

Pour paginer tous les événements, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

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

Effectuez plusieurs requêtes GET avec le after paramètre :

# 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"

Récupérez une tâche de réglage précis

Obtenez des informations détaillées sur une tâche de réglage précis. Pour obtenir des informations complètes sur l'API, consultez la documentation relative aux tâches de réglage précis de OpenAI Retrieve.

Exemples

Pour récupérer les détails d'une tâche spécifique, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

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

Envoyez une requête GET à l'adresse suivante /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"

Répertorier les tâches de réglage

Répertorie les tâches de peaufinage de votre organisation grâce à la prise en charge de la pagination. Pour obtenir des informations complètes sur l'API, consultez la documentation relative à la OpenAI liste des tâches de réglage précis.

Exemples

Pour répertorier les tâches de réglage précis avec limite et pagination, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

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

Envoyez une requête GET à l'adresse suivante /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"

Annuler le travail de réglage

Annule une tâche de réglage en cours. Une fois annulée, la tâche ne peut pas être reprise. Pour obtenir des informations complètes sur l'API, consultez la documentation relative à l'OpenAIannulation de la tâche de réglage précis.

Exemples

Pour annuler une tâche de réglage, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

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

Faites une demande POST pour /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"

Répertorier les points de contrôle pour affiner

Répertorie les points de contrôle nécessaires à un travail de réglage précis. Les points de contrôle sont des instantanés de modèles intermédiaires créés lors du réglage précis qui peuvent être utilisés à des fins d'inférence pour évaluer les performances à différentes étapes de l'entraînement. Pour plus d'informations, consultez la documentation relative au réglage précis OpenAI des points de contrôle de la liste.

Exemples

Pour répertorier les points de contrôle pour une tâche de réglage précis, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

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

Envoyez une requête GET à l'adresse suivante /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

Chaque point de contrôle inclut :

  • Identifiant du point de contrôle — Identifiant unique du point de contrôle

  • Numéro d'étape — Étape de formation au cours de laquelle le point de contrôle a été créé

  • Point de contrôle du modèle — Identifiant du modèle pouvant être utilisé pour l'inférence

  • Métriques — Perte de validation et précision à ce point de contrôle

Pour utiliser un modèle de point de contrôle à des fins d'inférence, choisissez l'onglet correspondant à votre méthode préférée, puis suivez les étapes suivantes :

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

Faites une demande POST pour /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 }'

Exécutez l'inférence avec un modèle affiné

Une fois votre travail de réglage terminé, vous pouvez utiliser le modèle affiné à des fins d'inférence via l'API Responses ou l'API Chat Completions. Pour obtenir des informations complètes sur l'API, consultezGénérez des réponses en utilisant OpenAI APIs.

API de réponses

Utilisez l'API Responses pour générer du texte en un tour avec votre modèle affiné :

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

Faites une demande POST pour /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 complétion des discussions

Utilisez l'API Chat Completions pour les interactions conversationnelles avec votre modèle affiné :

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

Faites une demande POST pour /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 }'