Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Crea e gestisci lavori di ottimizzazione per modelli open weight utilizzando le API OpenAI
Le API di OpenAI-compatible fine-tuning job consentono di creare, monitorare e gestire lavori di fine-tuning. Questa pagina illustra l'utilizzo di queste API per la messa a punto dei rinforzi. Per i dettagli completi sull'API, consulta la documentazione. OpenAI Fine-tuning
Crea un lavoro di messa a punto
Crea un processo di ottimizzazione che avvia il processo di creazione di un nuovo modello da un determinato set di dati. Per i dettagli completi sull'API, consulta la documentazione OpenAICreate fine-tuning jobs.
Esempi
Per creare un processo di ottimizzazione con il metodo RFT, scegli la scheda relativa al metodo preferito, quindi segui i passaggi:
- 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
-
Effettua una richiesta POST a: /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
}
}
}
}'
Elenca gli eventi di messa a punto
Elenca gli eventi per un lavoro di messa a punto. Fine-tuning gli eventi forniscono informazioni dettagliate sullo stato di avanzamento del lavoro, tra cui metriche di formazione, creazione di checkpoint e messaggi di errore. Per i dettagli completi sull'API, consulta la documentazione OpenAIList fine-tuning events.
Esempi
Per elencare gli eventi di fine-tuning, scegli la scheda corrispondente al tuo metodo preferito, quindi segui i passaggi:
- 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
-
Effettua una richiesta GET a: /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
Gli eventi includono informazioni come:
-
Messaggi di inizio e completamento del corso di formazione
-
Notifiche di creazione di checkpoint
-
Metriche di allenamento (perdita, precisione) in ogni fase
-
Messaggi di errore se il processo fallisce
Per sfogliare tutti gli eventi, scegliete la scheda corrispondente al metodo che preferite, quindi seguite i passaggi:
- 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
-
Effettua più richieste GET con il after parametro:
# 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"
Recupera il lavoro di messa a punto
Ottieni informazioni dettagliate su un lavoro di messa a punto. Per i dettagli completi sull'API, consulta la documentazione OpenAIRetrieve fine-tuning job.
Esempi
Per recuperare dettagli specifici del lavoro, scegli la scheda relativa al metodo che preferisci, quindi segui i passaggi:
- 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
-
Effettua una richiesta GET a/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"
Elenca i lavori di messa a punto
Elenca i lavori di ottimizzazione della tua organizzazione con supporto per l'impaginazione. Per i dettagli completi sull'API, consulta la documentazione OpenAIList fine-tuning jobs.
Esempi
Per elencare i lavori di fine-tuning con limite e paginazione, scegli la scheda corrispondente al metodo che preferisci, quindi segui i passaggi:
- 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
-
Effettua una richiesta GET a: /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"
Annulla il lavoro di fine-tuning
Annulla un processo di messa a punto in corso. Una volta annullato, il lavoro non può essere ripreso. Per i dettagli completi sull'API, consulta la documentazione OpenAIAnnulla il lavoro di fine-tuning.
Esempi
Per annullare un processo di fine-tuning, scegli la scheda corrispondente al metodo che preferisci, quindi segui i passaggi:
- 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
-
Effettua una richiesta POST a: /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"
Elenca i punti di controllo per la messa a punto
Elenca i punti di controllo per un lavoro di messa a punto. I checkpoint sono istantanee intermedie del modello create durante la messa a punto che possono essere utilizzate a fini di inferenza per valutare le prestazioni nelle diverse fasi di addestramento. Per ulteriori informazioni, consulta la documentazione List fine-tuning checkpoint. OpenAI
Esempi
Per elencare i punti di controllo necessari per un lavoro di messa a punto, scegliete la scheda corrispondente al metodo che preferite, quindi seguite i passaggi:
- 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
-
Effettua una richiesta GET a: /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
Ogni checkpoint include:
-
Checkpoint ID: identificatore univoco per il checkpoint
-
Numero della fase: fase di addestramento in cui è stato creato il checkpoint
-
Punto di controllo del modello: identificatore del modello che può essere utilizzato per l'inferenza
-
Metriche: perdita e precisione della convalida a questo punto di controllo
Per utilizzare un modello di checkpoint per l'inferenza, scegli la scheda relativa al tuo metodo preferito, quindi segui i passaggi:
- 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
-
Effettua una richiesta POST a: /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
}'
Esegui l'inferenza con un modello ottimizzato
Una volta completato il lavoro di ottimizzazione, puoi utilizzare il modello ottimizzato per l'inferenza tramite l'API Responses o l'API Chat Completions. Per i Inferenza utilizzando l'API Responses dettagli completi sull'API, consulta.
API di risposta
Usa l'API Responses per la generazione di testo a turno singolo con il tuo modello ottimizzato:
- 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
-
Effettua una richiesta POST a: /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 per il completamento della chat
Usa l'API Chat Completions per le interazioni conversazionali con il tuo modello ottimizzato:
- 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
-
Effettua una richiesta POST a: /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
}'