Auf dieser Seite wird beschrieben, wie Sie überwachtes Fine-Tuning und Distillation für offene Modelle wie Llama 3.1 durchführen. Sofern nicht anders angegeben, gelten die Anleitungen auf dieser Seite sowohl für die beaufsichtigte Feinabstimmung als auch für die Destillations-Feinabstimmung. Mit der Destillation können Sie ein kleineres Schülermodell anhand der Ausgaben eines größeren Lehrermodells abstimmen.
Unterstützte Abstimmungsmodi
- Überwachte Feinabstimmung:
- Vollständige Feinabstimmung
- Low-Rank Adaptation (LoRA): LoRA ist ein parameter-efficient tuning-Modus, bei dem nur eine Teilmenge der Parameter angepasst wird. Es ist kostengünstiger und erfordert weniger Trainingsdaten als die vollständige Feinabstimmung. Andererseits bietet die vollständige Feinabstimmung ein höheres Qualitätspotenzial, da alle Parameter angepasst werden.
- Feinabstimmung durch Destillation:Bei der Feinabstimmung durch Destillation wird das GenAI SDK verwendet. Sie geben ein Lehrermodell an, um Antworten zu generieren, die dann zum Abstimmen eines kleineren Schülermodells verwendet werden.
Empfohlene Anwendungsfälle für die Destillationsabstimmung
Die Feinabstimmung durch Destillation ist am effektivsten, wenn das Lehrermodell bei der Zielaufgabe deutlich leistungsfähiger ist als das Schülermodell. Es wird für die Übertragung komplexer, mehrstufiger Begründungsfunktionen von einem größeren Lehrermodell auf ein kleineres Schülermodell empfohlen, einschließlich:
- Mathematik und quantitatives Denken
- Beantwortung wissenschaftlicher, medizinischer und anderer domänenspezifischer Fragen, die eine schrittweise Argumentation erfordern
- Bei anderen Aufgaben, bei denen ein starkes Lehrermodell mit „Denken“ oder Chain-of-Thought-Verhalten durchweg Antworten von höherer Qualität als der Schüler liefert.
Die Destillation bietet geringere Vorteile bei Aufgaben, bei denen das Schülermodell bereits eine ähnliche Leistung wie das Lehrermodell erbringt, oder bei Aufgaben zum Abrufen von Kurzformen, bei denen die Argumentationskette des Lehrermodells keinen Mehrwert bietet.
Unterstützte Modelle
Modelle, die die überwachte Feinabstimmung unterstützen
- Gemma 3 1B IT (
google/gemma3@gemma-3-1b-it) - Gemma 3 4B IT (
google/gemma3@gemma-3-4b-it) - Gemma 3 12B IT (
google/gemma3@gemma-3-12b-it) - Gemma 3 27B IT (
google/gemma3@gemma-3-27b-it) - Medgemma 1.5 4B IT (
google/medgemma@medgemma-4b-it) - Llama 3.1 8B (
meta/llama3_1@llama-3.1-8b) - Llama 3.1 8B Instruct (
meta/llama3_1@llama-3.1-8b-instruct) - Llama 3.2 1B Instruct (
meta/llama3-2@llama-3.2-1b-instruct) - Llama 3.2 3B Instruct (
meta/llama3-2@llama-3.2-3b-instruct) - Llama 3.3 70B Instruct (
meta/llama3-3@llama-3.3-70b-instruct) - Qwen 3 4B (
qwen/qwen3@qwen3-4b) - Qwen 3 8B (
qwen/qwen3@qwen3-8b) - Qwen 3 14B (
qwen/qwen3@qwen3-14b) - Qwen 3 32B (
qwen/qwen3@qwen3-32b) - Llama 4 Scout 17B 16E Instruct (
meta/llama4@llama-4-scout-17b-16e-instruct)
Modelle, die die Destillationsabstimmung unterstützen
Unterstützte Lehrermodelle:
- DeepSeek R1 0528 MaaS (
deepseek-ai/deepseek-r1-0528-maas) - DeepSeek V3.2 MaaS (
deepseek-ai/deepseek-v3.2-maas) - Qwen 3 Next 80B A3B Thinking MaaS (
qwen/qwen3-next-80b-a3b-thinking-maas)
Unterstützte Schülermodelle:
- Qwen 3 4B (
qwen/qwen3@qwen3-4b) - Qwen 3 8B (
qwen/qwen3@qwen3-8b) - Qwen 3 14B (
qwen/qwen3@qwen3-14b) - Qwen 3 32B (
qwen/qwen3@qwen3-32b) - Gemma 3 1B IT (
google/gemma3@gemma-3-1b-it) - Gemma 3 4B IT (
google/gemma3@gemma-3-4b-it) - Gemma 3 12B IT (
google/gemma3@gemma-3-12b-it) - Gemma 3 27B IT (
google/gemma3@gemma-3-27b-it)
Unterstützte Regionen
- Iowa (
us-central1) - Niederlande (
europe-west4) - Oregon (
us-west1) - Columbus (
us-east5) - Singapur (
asia-southeast1)
Beschränkungen
| Modell | Spezifikation | Wert |
|---|---|---|
| Gemma 3 1B IT | Abstimmungsmodi | Vollständige Feinabstimmung |
| Maximale Sequenzlänge | 8.192 | |
| Betriebsarten | Text | |
| Gemma 3 4B IT | Abstimmungsmodi | Vollständige Feinabstimmung |
| Maximale Sequenzlänge | 8.192 | |
| Betriebsarten | Text | |
| Gemma 3 12B IT | Abstimmungsmodi | Vollständige Feinabstimmung |
| Maximale Sequenzlänge | 8.192 | |
| Betriebsarten | Text | |
| Gemma 3 27B IT | Abstimmungsmodi | Parametereffizientes Fine-Tuning Vollständiges Fine-Tuning |
| Maximale Sequenzlänge | 8.192 | |
| Betriebsarten | Text | |
| Medgemma 1.5 4B IT | Abstimmungsmodi | Vollständige Feinabstimmung |
| Maximale Sequenzlänge | 8.192 | |
| Betriebsarten | Text | |
| Llama 3.1 8B | Abstimmungsmodi | Parametereffizientes Fine-Tuning Vollständiges Fine-Tuning |
| Maximale Sequenzlänge | 8.192 | |
| Betriebsarten | Text | |
| Llama 3.1 8B Instruct | Abstimmungsmodi | Parametereffizientes Fine-Tuning Vollständiges Fine-Tuning |
| Maximale Sequenzlänge | 8.192 | |
| Betriebsarten | Text | |
| Llama 3.2 1B Instruct | Abstimmungsmodi | Vollständige Feinabstimmung |
| Maximale Sequenzlänge | 8.192 | |
| Betriebsarten | Text | |
| Llama 3.2 3B Instruct | Abstimmungsmodi | Vollständige Feinabstimmung |
| Maximale Sequenzlänge | 8.192 | |
| Betriebsarten | Text | |
| Llama 3.3 70B Instruct | Abstimmungsmodi | Parametereffizientes Fine-Tuning Vollständiges Fine-Tuning |
| Maximale Sequenzlänge | 8.192 | |
| Betriebsarten | Text | |
| Llama 4 Scout 17B 16E Instruct | Abstimmungsmodi | Parametereffiziente Feinabstimmung |
| Maximale Sequenzlänge | 2.048 | |
| Betriebsarten | Text Bilder* *Gemischte Datasets mit reinen Text- und Bildbeispielen werden nicht unterstützt. Wenn das Dataset mindestens ein Bildbeispiel enthält, werden alle reinen Textbeispiele herausgefiltert. |
|
| Qwen 3 4B | Abstimmungsmodi | Vollständige Feinabstimmung |
| Maximale Sequenzlänge | 8.192 | |
| Betriebsarten | Text | |
| Qwen 3 8B | Abstimmungsmodi | Vollständige Feinabstimmung |
| Maximale Sequenzlänge | 8.192 | |
| Betriebsarten | Text | |
| Qwen 3 14B | Abstimmungsmodi | Vollständige Feinabstimmung |
| Maximale Sequenzlänge | 8.192 | |
| Betriebsarten | Text | |
| Qwen 3 32B | Abstimmungsmodi | Parametereffizientes Fine-Tuning Vollständiges Fine-Tuning |
| Maximale Sequenzlänge | 8.192 | |
| Betriebsarten | Text |
Hinweis
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Gemini Enterprise Agent Platform and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Gemini Enterprise Agent Platform and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
Installieren Sie das SDK und importieren Sie die Bibliotheken für Ihre Optimierungsmethode.
Überwachte Feinabstimmung
Installieren und initialisieren Sie das Vertex AI SDK for Python und importieren Sie dann die folgenden Bibliotheken:
import os
import time
import uuid
import vertexai
vertexai.init(project=PROJECT_ID, location=REGION)
from google.cloud import aiplatform
from vertexai.tuning import sft, SourceModel
Abstimmung der Destillation
Installieren Sie das folgende SDK:
pip install google-genai
Importieren Sie dann die folgenden Bibliotheken:
import os
import time
import uuid
from google import genai
from google.genai import types
client = genai.Client(vertexai=True, project=PROJECT_ID, location=REGION)
Dataset für die Abstimmung vorbereiten
Zum Optimieren ist ein Trainings-Dataset erforderlich. Es wird empfohlen, ein optionales Validierungs-Dataset vorzubereiten, wenn Sie die Leistung Ihres optimierten Modells bewerten möchten.
Ihr Dataset muss in einem der folgenden unterstützten JSONL-Formate (JSON Lines) vorliegen, wobei jede Zeile ein einzelnes Abstimmungsbeispiel enthält.
Laden Sie Ihre JSONL-Dateien in Cloud Storage hoch.
Nur-Text-Datasets
Abschluss der Aufforderung
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
Rundenbasiertes Chatformat
{"messages": [
{"content": "You are a chatbot that helps with scientific literature and generates state-of-the-art abstracts from articles.",
"role": "system"},
{"content": "Summarize the paper in one paragraph.",
"role": "user"},
{"content": " Here is a one paragraph summary of the paper:\n\nThe paper describes PaLM, ...",
"role": "assistant"}
]}
GenerateContent
{
"systemInstruction": {
"parts": [{ "text": "You are a chatbot that helps with scientific literature and generates state-of-the-art abstracts from articles." }]},
"contents": [
{"role": "user",
"parts": [{ "text": "Summarize the paper in one paragraph." }]},
{"role": "assistant",
"parts": [{ "text": "Here is a one paragraph summary of the paper:\n\nThe paper describes PaLM, ..." }]}
]}
Multimodale Datasets
Rundenbasiertes Chatformat
{"messages": [
{"role": "user", "content": [
{"type": "text", "text": "You are a chatbot that helps with scientific literature and generates state-of-the-art abstracts from articles."},
{"type": "image_url", "image_url": {
"url": "gs://your-gcs-bucket/your-image.jpeg",
"detail": "low"}}]
},
{"role": "assistant", "content": [
{"type": "text", "text": "Here is a one paragraph summary of the paper:\n\nThe paper describes PaLM, ..."}]
},
{"role": "user", "content": [
{"type": "text", "text": "You are a chatbot that helps with scientific literature and generates state-of-the-art abstracts from articles."},
{"type": "image_url", "image_url": {
"url": "data:image/jpeg;base64,<base64 image>",
"detail": "low"}}]
},
{"role": "assistant", "content": [
{"type": "text", "text": "Here is a one paragraph summary of the paper:\n\nThe paper describes PaLM, ..."}]
},
]}
GenerateContent
{
"systemInstruction": {
"parts": [{ "text": "You are a chatbot that helps with scientific literature and generates state-of-the-art abstracts from articles." }]},
"contents": [
{"role": "user",
"parts": [
{"text": "You are a chatbot that helps with scientific literature and generates state-of-the-art abstracts from articles." },
{"file_data": {
"mime_type": "image/jpeg", "file_uri": "gs://your-gcs-bucket/your-image.jpeg"}}]
},
{"role": "assistant",
"parts": [{ "text": "Here is a one paragraph summary of the paper:\n\nThe paper describes PaLM, ..." }]}
]}
Unterstützte Formate sind JPEG, PNG, WEBP und Base64-codierte Bilder.
Wenn Ihre Bilder in einem anderen Cloud Storage-Bucket als Ihre JSONL-Dateien gespeichert sind, müssen Sie beiden Dienstkonten die IAM-Rolle „Storage-Objektnutzer“ (roles/storage.objectUser) für beide Buckets zuweisen:
service-PROJECT_NUMBER@gcp-sa-vertex-moss-ft.iam.gserviceaccount.comservice-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
Abstimmungsjob erstellen
Sie können folgende Sender empfangen:
- Ein unterstütztes Basismodell, z. B. Llama 3.1
Ein Modell mit derselben Architektur wie eines der unterstützten Basismodelle. Das kann entweder ein benutzerdefinierter Modell-Checkpoint aus einem Repository wie Hugging Face oder ein zuvor optimiertes Modell aus einem Gemini Enterprise Agent Platform-Optimierungsjob sein. So können Sie ein Modell, das bereits abgestimmt wurde, weiter abstimmen.
Cloud Console (beaufsichtigt)
Sie haben folgende Möglichkeiten, die Feinabstimmung zu starten:
- Rufen Sie die Modellkarte auf, klicken Sie auf Feinabstimmung und wählen Sie Verwaltete Abstimmung aus.
oder
- Rufen Sie die Seite Abstimmung auf und klicken Sie auf Abgestimmtes Modell erstellen.
Füllen Sie die Parameter aus und klicken Sie auf Abstimmung starten.
Dadurch wird ein Abstimmungsjob gestartet, den Sie auf der Seite „Abstimmung“ auf dem Tab Verwaltete Abstimmung sehen können.
Nach Abschluss des Tuning-Jobs können Sie sich die Informationen zum abgestimmten Modell auf dem Tab Details ansehen.
Agent Platform SDK (Supervised)
Ersetzen Sie die Parameterwerte durch Ihre eigenen und führen Sie dann den folgenden Code aus, um einen Abstimmungsjob zu erstellen:
sft_tuning_job = sft.train(
source_model=SourceModel(
base_model="meta/llama3_1@llama-3.1-8b",
# Optional, folder that is either a custom model checkpoint or previously tuned model
custom_base_model="gs://{STORAGE-URI}",
),
tuning_mode="FULL", # FULL or PEFT_ADAPTER
epochs=3,
train_dataset="gs://{STORAGE-URI}", # JSONL file
validation_dataset="gs://{STORAGE-URI}", # JSONL file
output_uri="gs://{STORAGE-URI}",
)
GenAI SDK (Destillation)
Ersetzen Sie die Parameterwerte durch Ihre eigenen und führen Sie dann den folgenden Code aus, um einen Distillations-Abstimmungsjob zu erstellen:
tuning_job = client.tunings.tune(
base_model="qwen/qwen3@qwen3-4b",
training_dataset=types.TuningDataset(
gcs_uri="gs://{STORAGE-URI}"
),
config=types.CreateTuningJobConfig(
method="DISTILLATION",
base_teacher_model="qwen/qwen3-next-80b-a3b-thinking-maas",
epoch_count=3,
validation_dataset=types.TuningValidationDataset(
gcs_uri="gs://{STORAGE-URI}"
),
output_uri="gs://{STORAGE-URI}",
),
)
Artefakte abgestimmter Modelle
Wenn der Abstimmungsjob abgeschlossen ist, werden die Modellartefakte für das abgestimmte Modell in Ihrem Cloud Storage-Ausgabeverzeichnis gespeichert.
gs://<output_dir>/
# (Distillation tuning only) The labeled dataset from teacher model's inference
-> distillation_labelled_dataset.jsonl
gs://<output_dir>/postprocess/node-0/checkpoints/
# Final checkpoint
-> final/
-> model-00001-of-000xx.safetensors
-> model-000yy-of-000xx.safetensors
# Intermediate checkpoints
-> checkpoint-M/
-> model-00001-of-000xx.safetensors
-> model-000yy-of-000xx.safetensors
…
-> checkpoint-N/
-> model-00001-of-000xx.safetensors
-> model-000yy-of-000xx.safetensors
- Es werden maximal 10 Checkpoints gespeichert.
- Wenn die Anzahl der Epochen (E) kleiner als 10 ist, werden genau E Checkpoints gespeichert (einer für jede Epoche).
- Zwischenprüfpunkte aus dem Bereich M bis N werden sortiert. Beachten Sie, dass Zwischenprüfpunkte nicht immer fortlaufend nummeriert sind. Die Checkpoints könnten beispielsweise mit 1, 3, 5, 10 anstatt mit 1, 2, 3, 4 nummeriert sein.
Abgestimmtes Modell bereitstellen
Sie können das abgestimmte Modell auf einem Gemini Enterprise Agent Platform-Endpunkt bereitstellen. Sie können das optimierte Modell auch aus Cloud Storage exportieren und an anderer Stelle bereitstellen.
So stellen Sie das abgestimmte Modell auf einem Gemini Enterprise Agent Platform-Endpunkt bereit:
Cloud Console
Rufen Sie die Seite Model Garden auf und klicken Sie auf Modell mit benutzerdefinierten Gewichten bereitstellen.
Füllen Sie die Parameter aus und klicken Sie auf Bereitstellen.
Agent Platform SDK für Python
So stellen Sie eine G2 machine mit einem vordefinierten Container bereit:
from vertexai.preview import model_garden
MODEL_ARTIFACTS_STORAGE_URI = "gs://{STORAGE-URI}/postprocess/node-0/checkpoints/final"
model = model_garden.CustomModel(
gcs_uri=MODEL_ARTIFACTS_STORAGE_URI,
)
# deploy the model to an endpoint using GPUs. Cost will incur for the deployment
endpoint = model.deploy(
machine_type="g2-standard-12",
accelerator_type="NVIDIA_L4",
accelerator_count=1,
)
Inferenz erhalten
Nach erfolgreicher Bereitstellung können Sie Anfragen mit Text-Prompts an den Endpunkt senden. Die Ausführung der ersten Prompts dauert länger.
# Loads the deployed endpoint
endpoint = aiplatform.Endpoint("projects/{PROJECT_ID}/locations/{REGION}/endpoints/{endpoint_name}")
prompt = "Summarize the following article. Article: Preparing a perfect risotto requires patience and attention to detail. Begin by heating butter in a large, heavy-bottomed pot over medium heat. Add finely chopped onions and minced garlic to the pot, and cook until they're soft and translucent, about 5 minutes. Next, add Arborio rice to the pot and cook, stirring constantly, until the grains are coated with the butter and begin to toast slightly. Pour in a splash of white wine and cook until it's absorbed. From there, gradually add hot chicken or vegetable broth to the rice, stirring frequently, until the risotto is creamy and the rice is tender with a slight bite.. Summary:"
# Define input to the prediction call
instances = [
{
"prompt": "What is a car?",
"max_tokens": 200,
"temperature": 1.0,
"top_p": 1.0,
"top_k": 1,
"raw_response": True,
},
]
# Request the prediction
response = endpoint.predict(
instances=instances
)
for prediction in response.predictions:
print(prediction)
Weitere Informationen zum Abrufen von Inferenzen aus einem bereitgestellten Modell finden Sie unter Onlineinferenz abrufen.
Beachten Sie, dass für verwaltete offene Modelle die Methode chat.completions anstelle der Methode predict verwendet wird, die für bereitgestellte Modelle verwendet wird. Weitere Informationen zum Abrufen von Inferenzvorhersagen aus verwalteten Modellen finden Sie unter Llama-Modell aufrufen.
Limits und Kontingente
Das Kontingent wird für die Anzahl der gleichzeitig ausgeführten Abstimmungsjobs durchgesetzt. Jedes Projekt kommt mit einem Standardkontingent zum Ausführen mindestens eines Abstimmungsjobs. Dies ist ein globales Kontingent, das für alle verfügbaren Regionen und unterstützten Modelle gilt. Wenn Sie weitere Jobs gleichzeitig ausführen möchten, müssen Sie für Global concurrent managed OSS model fine-tuning jobs per project zusätzliche Kontingente anfordern.
Zusätzlich zum Kontingent für den Abstimmungsjob wird für die Destillations-Feinabstimmung das Lehrermodell verwendet. Ihr Projekt muss ein ausreichendes Kontingent für das angegebene Lehrermodell haben. Für offene Modelle, die als Service (MaaS) bereitgestellt werden, wird ein dynamisches gemeinsames Kontingent verwendet. Wenn bei einem Abstimmungsjob ein Lehrermodell aufgerufen wird, wird das gemeinsame Kontingent des Projekts für dieses Modell verwendet. Weitere Informationen zu Kontingenten für verwaltete offene Modelle finden Sie unter Verwaltete Modelle für MaaS auf der Gemini Enterprise Agent Platform.
Preise
Die Abrechnung für das Abstimmen erfolgt gemäß den Preisen für das Abstimmen von Modellen. Die Anzahl der Trainingstokens wird berechnet, indem die Anzahl der Tokens in Ihrem Trainings-Dataset mit der Anzahl der Epochen multipliziert wird. Für die Destillationsoptimierung werden Ihnen auch die API-Aufrufe an das Lehrermodell zur Generierung von Antworten in Rechnung gestellt, basierend auf den Preisen für verwaltete Modelle.
Ihnen werden auch die Kosten für zugehörige Dienste wie Cloud Storage und Gemini Enterprise Agent Platform Prediction in Rechnung gestellt.
Informationen zu den Preisen für die Gemini Enterprise Agent Platform und Cloud Storage-Preise. Mit dem Preisrechner können Sie eine Kostenschätzung für die voraussichtliche Nutzung erstellen.