View a markdown version of this page

Erstellen und verwalten Sie Feinabstimmungsaufträge für Open-Weight-Modelle mit OpenAI APIs - Amazon Bedrock

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen und verwalten Sie Feinabstimmungsaufträge für Open-Weight-Modelle mit OpenAI APIs

Mit dem OpenAI-kompatiblen Feinabstimmungsjob APIs können Sie Feinabstimmungsjobs erstellen, überwachen und verwalten. Auf dieser Seite wird beschrieben, wie diese für die Feinabstimmung von Verstärkungen verwendet werden APIs . Vollständige API-Details finden Sie in der Dokumentation zur OpenAIFeinabstimmung.

Erstellen Sie einen Feinabstimmungsauftrag

Erstellt einen Feinabstimmungsauftrag, der den Prozess der Erstellung eines neuen Modells aus einem bestimmten Datensatz einleitet. Vollständige API-Details finden Sie in der Dokumentation Feinabstimmungsjobs OpenAI erstellen.

Beispiele

Um einen Job zur Feinabstimmung mit der RFT-Methode zu erstellen, wählen Sie die Registerkarte für Ihre bevorzugte Methode und folgen Sie dann den Schritten:

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

Stellen Sie eine POST-Anfrage an: /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 } } } }'

Führt Feinabstimmungsereignisse auf

Listet Ereignisse für eine Feinabstimmungsaufgabe auf. Feinabstimmungsereignisse bieten detaillierte Informationen über den Fortschritt Ihres Jobs, einschließlich Trainingsmetriken, Erstellung von Checkpoints und Fehlermeldungen. Vollständige API-Details finden Sie in der Dokumentation zur Feinabstimmung von OpenAI Listen.

Beispiele

Um Feinabstimmungsereignisse aufzulisten, wählen Sie die Registerkarte für Ihre bevorzugte Methode und folgen Sie dann den Schritten:

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

Stellen Sie eine GET-Anfrage an/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

Ereignisse beinhalten Informationen wie:

  • Meldungen über den Beginn und den Abschluss der Schulung

  • Benachrichtigungen zur Erstellung von Checkpoints

  • Trainingsmetriken (Verlust, Genauigkeit) bei jedem Schritt

  • Fehlermeldungen, wenn der Job fehlschlägt

Um alle Ereignisse nacheinander zu durchsuchen, wählen Sie die Registerkarte für Ihre bevorzugte Methode und gehen Sie dann wie folgt vor:

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

Stellen Sie mehrere GET-Anfragen mit dem folgenden after Parameter:

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

Finetuning-Job abrufen

Erhalten Sie detaillierte Informationen zu einem Feinsteuerungsjob. Vollständige API-Details finden Sie in der Dokumentation zum OpenAIRetrieve-Feintuning-Job.

Beispiele

Um bestimmte Auftragsdetails abzurufen, wählen Sie die Registerkarte für Ihre bevorzugte Methode und folgen Sie dann den Schritten:

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

Stellen Sie eine GET-Anfrage an/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"

Aufgaben zur Feinabstimmung auflisten

Führt die Feinabstimmungsaufgaben Ihrer Organisation mit Paginierungsunterstützung auf. Vollständige API-Details finden Sie in der Dokumentation zur Feinabstimmung von OpenAI Listen.

Beispiele

Um Aufträge zur Feinabstimmung mit Limit und Seitennummerierung aufzulisten, wählen Sie die Registerkarte für Ihre bevorzugte Methode und gehen Sie dann wie folgt vor:

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

Stellen Sie eine GET-Anfrage an: /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"

Feinabstimmungsauftrag abbrechen

Bricht einen laufenden Feinabstimmungsauftrag ab. Nach dem Abbruch kann der Job nicht wieder aufgenommen werden. Vollständige API-Details finden Sie in der Dokumentation zum Feintuning-Job OpenAI „Abbrechen“.

Beispiele

Um einen Feinabstimmungsauftrag abzubrechen, wählen Sie die Registerkarte für Ihre bevorzugte Methode und folgen Sie dann den Schritten:

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

Stellen Sie eine POST-Anfrage an/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"

Listet Checkpoints für die Feinabstimmung auf

Listet Checkpoints für einen Feinabstimmungsjob auf. Bei Checkpoints handelt es sich um während der Feinabstimmung erstellte Schnappschüsse eines Modells, die als Rückschlüsse zur Bewertung der Leistung in verschiedenen Trainingsphasen verwendet werden können. Weitere Informationen finden Sie in der Dokumentation Checkpoints zur Feinabstimmung von OpenAIListen.

Beispiele

Um Checkpoints für eine Feinabstimmungsaufgabe aufzulisten, wählen Sie die Registerkarte für Ihre bevorzugte Methode und gehen Sie dann wie folgt vor:

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

Stellen Sie eine GET-Anfrage an: /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

Jeder Checkpoint beinhaltet:

  • Checkpoint-ID — Eindeutige Kennung für den Checkpoint

  • Schrittnummer — Trainingsschritt, bei dem der Checkpoint erstellt wurde

  • Modell-Checkpoint — Modell-ID, die für Rückschlüsse verwendet werden kann

  • Metriken — Validierungsverlust und Genauigkeit an diesem Checkpoint

Um ein Checkpoint-Modell für Inferenzen zu verwenden, wählen Sie die Registerkarte für Ihre bevorzugte Methode und gehen Sie dann wie folgt vor:

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

Stellen Sie eine POST-Anfrage an: /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 }'

Führen Sie die Inferenz mit einem fein abgestimmten Modell aus

Sobald Ihre Feinabstimmung abgeschlossen ist, können Sie das fein abgestimmte Modell für Inferenzen über die Responses API oder Chat Completions API verwenden. Vollständige API-Einzelheiten finden Sie unter. Generieren Sie Antworten mit OpenAI APIs

API für Antworten

Verwenden Sie die Responses API für die Generierung von Single-Turn-Text mit Ihrem fein abgestimmten Modell:

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

Stellen Sie eine POST-Anfrage an: /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 für Chat-Abschlüsse

Verwenden Sie die Chat-Completions-API für Konversationsinteraktionen mit Ihrem fein abgestimmten Modell:

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

Stellen Sie eine POST-Anfrage an: /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 }'