/fine_tuning
Dies ist ein reiner Enterprise-Endpunkt. Starten Sie hier mit Enterprise.
| Feature | Unterstützt | Notizen |
|---|---|---|
| Unterstützte Anbieter | OpenAI, Azure OpenAI, Vertex AI | - |
| Kostenverfolgung | 🟡 | Lassen Sie uns wissen, wenn Sie dies benötigen |
| Protokollierung | ✅ | Funktioniert über alle Logging-Integrationen hinweg |
Fügen Sie finetune_settings und files_settings zu Ihrer litellm config.yaml hinzu, um die Fine-Tuning-Endpunkte zu verwenden.
Beispiel config.yaml für finetune_settings und files_settings​
model_list:
- model_name: gpt-4
litellm_params:
model: openai/fake
api_key: fake-key
api_base: https://exampleopenaiendpoint-production.up.railway.app/
# For /fine_tuning/jobs endpoints
finetune_settings:
- custom_llm_provider: azure
api_base: https://exampleopenaiendpoint-production.up.railway.app
api_key: os.environ/AZURE_API_KEY
api_version: "2023-03-15-preview"
- custom_llm_provider: openai
api_key: os.environ/OPENAI_API_KEY
- custom_llm_provider: "vertex_ai"
vertex_project: "adroit-crow-413218"
vertex_location: "us-central1"
vertex_credentials: "/Users/ishaanjaffer/Downloads/adroit-crow-413218-a956eef1a2a8.json"
# for /files endpoints
files_settings:
- custom_llm_provider: azure
api_base: https://exampleopenaiendpoint-production.up.railway.app
api_key: fake-key
api_version: "2023-03-15-preview"
- custom_llm_provider: openai
api_key: os.environ/OPENAI_API_KEY
Datei für Fine-Tuning erstellen​
- OpenAI Python SDK
- curl
client = AsyncOpenAI(api_key="sk-1234", base_url="http://0.0.0.0:4000") # base_url is your litellm proxy url
file_name = "openai_batch_completions.jsonl"
response = await client.files.create(
extra_body={"custom_llm_provider": "azure"}, # tell litellm proxy which provider to use
file=open(file_name, "rb"),
purpose="fine-tune",
)
curl https://:4000/v1/files \
-H "Authorization: Bearer sk-1234" \
-F purpose="batch" \
-F custom_llm_provider="azure"\
-F file="@mydata.jsonl"
Fine-Tuning-Job erstellen​
- Azure OpenAI
- OpenAI Python SDK
- curl
ft_job = await client.fine_tuning.jobs.create(
model="gpt-35-turbo-1106", # Azure OpenAI model you want to fine-tune
training_file="file-abc123", # file_id from create file response
extra_body={"custom_llm_provider": "azure"}, # tell litellm proxy which provider to use
)
curl https://:4000/v1/fine_tuning/jobs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-1234" \
-d '{
"custom_llm_provider": "azure",
"model": "gpt-35-turbo-1106",
"training_file": "file-abc123"
}'
Request Body​
- Unterstützte Parameter
- Beispiel Request Body
modelTyp: String
Erforderlich: Ja
Der Name des zu fine-tunenden Modellscustom_llm_providerTyp:
Literal["azure", "openai", "vertex_ai"]Erforderlich: Ja Der Name des zu fine-tunenden Modells. Sie können einen der unterstützten Anbieter auswählen.
training_fileTyp: String
Erforderlich: Ja
Die ID einer hochgeladenen Datei, die Trainingsdaten enthält.- Siehe Datei hochladen, um eine Datei hochzuladen.
- Ihr Datensatz muss als JSONL-Datei formatiert sein.
hyperparametersTyp: Objekt
Erforderlich: Nein
Die für den Fine-Tuning-Job verwendeten Hyperparameter.Unterstützte
hyperparameters​batch_size​
Typ: String oder Integer
Erforderlich: Nein
Anzahl der Beispiele in jeder Batch. Eine größere Batch-Größe bedeutet, dass die Modellparameter seltener, aber mit geringerer Varianz aktualisiert werden.learning_rate_multiplier​
Typ: String oder Nummer
Erforderlich: Nein
Skalierungsfaktor für die Lernrate. Eine kleinere Lernrate kann nützlich sein, um Überanpassung zu vermeiden.n_epochs​
Typ: String oder Integer
Erforderlich: Nein
Die Anzahl der Epochen, für die das Modell trainiert werden soll. Eine Epoche bezieht sich auf einen vollständigen Durchlauf durch den Trainingsdatensatz.suffixTyp: String oder null
Erforderlich: Nein
Standard: null
Eine Zeichenkette von bis zu 18 Zeichen, die dem Namen Ihres fine-getunten Modells hinzugefügt wird. Beispiel: Einsuffixvon "custom-model-name" würde einen Modellnamen wieft:gpt-4o-mini:openai:custom-model-name:7p4lURelerzeugen.validation_fileTyp: String oder null
Erforderlich: Nein
Die ID einer hochgeladenen Datei, die Validierungsdaten enthält.- Wenn angegeben, werden diese Daten verwendet, um während des Fine-Tunings periodisch Validierungsmetriken zu generieren.
integrationsTyp: Array oder null
Erforderlich: Nein
Eine Liste von Integrationen, die für Ihren Fine-Tuning-Job aktiviert werden sollen.seedTyp: Integer oder null
Erforderlich: Nein
Der Seed steuert die Reproduzierbarkeit des Jobs. Die Übergabe desselben Seeds und derselben Job-Parameter sollte zu denselben Ergebnissen führen, kann aber in seltenen Fällen abweichen. Wenn kein Seed angegeben wird, wird einer für Sie generiert.
{
"model": "gpt-4o-mini",
"training_file": "file-abcde12345",
"hyperparameters": {
"batch_size": 4,
"learning_rate_multiplier": 0.1,
"n_epochs": 3
},
"suffix": "custom-model-v1",
"validation_file": "file-fghij67890",
"seed": 42
}
Fine-Tuning-Job abbrechen​
- OpenAI Python SDK
- curl
# cancel specific fine tuning job
cancel_ft_job = await client.fine_tuning.jobs.cancel(
fine_tuning_job_id="123", # fine tuning job id
extra_body={"custom_llm_provider": "azure"}, # tell litellm proxy which provider to use
)
print("response from cancel ft job={}".format(cancel_ft_job))
curl -X POST https://:4000/v1/fine_tuning/jobs/ftjob-abc123/cancel \
-H "Authorization: Bearer sk-1234" \
-H "Content-Type: application/json" \
-d '{"custom_llm_provider": "azure"}'
Fine-Tuning-Jobs auflisten​
- OpenAI Python SDK
- curl
list_ft_jobs = await client.fine_tuning.jobs.list(
extra_query={"custom_llm_provider": "azure"} # tell litellm proxy which provider to use
)
print("list of ft jobs={}".format(list_ft_jobs))
curl -X GET 'https://:4000/v1/fine_tuning/jobs?custom_llm_provider=azure' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-1234"