Das Schritt-für-Schritt-Anleitungsmodell verwendet ein großes Lehrermodell, um kleinere Schülermodelle zu trainieren, um bestimmte Aufgaben mit verbesserten Begründungsfunktionen besser zu erledigen. Mit dem trainierten, destillierten Modell können Sie dieselben Aufgaben wie im größeren Lehrermodell zu geringeren Kosten und mit einer geringeren Latenz erledigen.
Für die Destillation eines Foundation Models verwenden Sie ein Lehrermodell und ein Studentenmodell:
Das Lehrermodell ist das große Modell, das tun kann, was Sie möchten. Aufgrund der Größe kann das Lehrermodell jedoch mehr kosten und hat eine höhere Latenz als ein kleineres Modell.
Das Schülermodell ist kleiner als das Lehrermodell. Der Trainings- und Destillationsprozess verwendet vom Lehrermodell generierte, markierte Beispiele und Prozesse, um das Schülermodell zu optimieren. Die Leistung und die Begründungprozesse des resultierenden Destillationsmodells sind besser als die des ursprünglichen Schülermodells.
Sie geben ein Lehrermodell und ein Schülermodell an, wenn Sie einen Destillationsjob erstellen.
Unterstützte Modelle
Für das Lehrermodell können Sie Folgendes angeben:
text-unicorn@001
Für das Schülermodell können Sie Folgendes angeben:
text-bison@002
Dataset-Format
Die Destillation funktioniert bei Datasets mit oder ohne Label. Wenn Sie ein hochwertiges, mit Labels versehenes Dataset mit Hunderten von Beispielen haben, empfehlen wir es, dieses zu nutzen. Andernfalls können Sie ein Prompt-Dataset ohne Label verwenden. Wenn Sie ein Dataset ohne Label verwenden, generiert das Lehrermodell die Labels und den Grund für die Destillation. Es werden mehr als 1.000 Beispiele empfohlen,wenn Sie ein Dataset ohne Label verwenden.
Das Destillations-Dataset mit oder ohne Label muss im JSON Lines-Format (JSONL) vorliegen, wobei jede Zeile ein einzelnes Abstimmungsbeispiel enthält. Bevor Sie Ihr Modell destillieren, laden Sie Ihr Dataset in einen Cloud Storage-Bucket hoch.
Jedes Dataset-Beispiel enthält ein input_text
-Feld mit dem Modell-Prompt und ein optionales output_text
-Feld, das eine Beispielantwort enthält, die das destillierte Modell ausgeben soll.
Die maximale Tokenlänge für input_text
ist 7.168, die maximale Tokenlänge für output_text
ist 1.024. Wenn eines der Felder die maximale Tokenlänge überschreitet, werden die überschüssigen Tokens abgeschnitten.
Ein Dataset für ein Textgenerierungsmodell kann maximal 10.000 Beispiele enthalten.
Dataset-Beispiel
{"input_text": "question: How many people live in Beijing? context: With over 21 million residents, Beijing is the world's most populous national capital city and is China's second largest city after Shanghai. It is located in Northern China, and is governed as a municipality under the direct administration of the State Council with 16 urban, suburban, and rural districts.[14] Beijing is mostly surrounded by Hebei Province with the exception of neighboring Tianjin to the southeast; together, the three divisions form the Jingjinji megalopolis and the national capital region of China.", "output_text": "over 21 million people"}
{"input_text": "question: How many parishes are there in Louisiana? context: The U.S. state of Louisiana is divided into 64 parishes (French: paroisses) in the same manner that 48 other states of the United States are divided into counties, and Alaska is divided into boroughs.", "output_text": "64"}
Anleitungen in Beispiele einbinden
Für Aufgaben wie die Klassifizierung ist es möglich, ein Dataset mit Beispielen zu erstellen, die keine Anleitungen enthalten. Wenn Sie Befehle aus den Beispielen im Dataset ausschließen, führt dies nach der Destillation zu einer schlechteren Leistung als die Einbeziehung von Anweisungen. Dies gilt insbesondere bei kleineren Datasets.
Schließt Anleitungen aus:
{"input_text": "5 stocks to buy now", "output_text": "business"}
Schließt Anleitungen ein:
{"input_text": "Classify the following text into one of the following classes: [business, entertainment] Text: 5 stocks to buy now", "output_text": "business"}
Beispieldatensätze
Für die ersten Schritte mit Destillationen können Sie ein Beispiel-Dataset verwenden. Im Folgenden finden Sie ein Dataset zur Klassifizierungsaufgabe, das Beispiele für medizinische Transkriptionen für verschiedene medizinische Spezialisierungen enthält. Die Daten stammen von mtsamples.com, wie auf Kaggle zur Verfügung gestellt.
Beispiel für den URI eines Destillations-Datasets:
gs://cloud-samples-data/vertex-ai/model-evaluation/peft_train_sample.jsonl
Beispiel für einen Evaluierungs-Dataset-URI:
gs://cloud-samples-data/vertex-ai/model-evaluation/peft_eval_sample.jsonl
Geben Sie die URIs in den entsprechenden Parametern beim Erstellen eines Textmodell-Destillationsjobs an, um diese Datasets zu verwenden.
Beispiel:
...
"dataset_uri": "gs://cloud-samples-data/vertex-ai/model-evaluation/peft_train_sample.jsonl",
...
"evaluation_data_uri": "gs://cloud-samples-data/vertex-ai/model-evaluation/peft_eval_sample.jsonl",
...
Konsistenz mit Produktionsdaten gewährleisten
Die Beispiele in Ihren Datasets sollten dem erwarteten Produktionstraffic entsprechen. Wenn Ihr Dataset bestimmte Formatierungen, Keywords, Anleitungen oder Informationen enthält, sollten die Produktionsdaten auf die gleiche Weise formatiert sein und die gleichen Anweisungen enthalten.
Wenn die Beispiele in Ihrem Dataset beispielsweise ein "question:"
und ein "context:"
enthalten, sollte der Produktionstraffic ebenfalls so formatiert werden, dass er ein "question:"
und ein "context:"
in der gleichen Reihenfolge wie in den Dataset-Beispielen enthält. Wenn Sie den Kontext ausschließen, erkennt das Modell das Muster nicht, selbst wenn die genaue Frage in einem Beispiel im Dataset vorkommt.
Destillierende Datasets in Cloud Storage hochladen
Zum Ausführen eines Abstimmungsjobs müssen Sie ein oder mehrere Datasets in einen Cloud Storage-Bucket hochladen. Sie können entweder einen neuen Cloud Storage-Bucket erstellen oder einen vorhandenen Bucket zum Speichern von Dataset-Dateien verwenden. Die Region des Buckets spielt keine Rolle. Wir empfehlen jedoch die Verwendung eines Buckets im selben Google Cloud-Projekt, in dem Sie die Modellabstimmung ausführen möchten.
Wenn der Bucket bereit ist, laden Sie Ihre Dataset-Datei in den Bucket hoch.
Regioneneinstellungen für die Destillation
Sie können beim Konfigurieren eines Destillationsjobs drei Google Cloud-Regionseinstellungen festlegen. In einer Region wird die Pipeline ausgeführt, die Ihr Modell optimiert. In der anderen Region wird die Modelloptimierung im Rahmen des Destillationsprozesses ausgeführt und das destillierte Modell wird hochgeladen.
Pipelinejobregionen
Die Pipelinejobregion ist die Region, in der der Pipelinejob ausgeführt wird. Wenn die optionale Modelluploadregion nicht angegeben ist, wird das Modell in die Pipelinejobregion hochgeladen und dort bereitgestellt. Zwischendaten, wie das transformierte Dataset, werden in der Pipelinejobregion gespeichert. Informationen dazu, welche Regionen als Pipelinejobregion verwendt werden können, finden Sie unter Unterstützte Pipelinejob- und Modelluploadregionen.
Sie müssen die Pipelinejobregion auf eine der folgenden Methoden angeben:
Wenn Sie einen Destillationsjob durch Senden einer POST-Anfrage mit der
pipelineJobs.create
-Methode erstellen, verwenden Sie die URL, um die Region anzugeben, in der der Pipelinejob ausgeführt wird. Ersetzen Sie in der folgenden URL beide Instanzen vonPIPELINE_JOB_REGION
durch die Region, in der die Pipeline ausgeführt wird:https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs
Wenn Sie die Google Cloud Console verwenden, um einen Destillationsjob zu erstellen, geben Sie die Pipelinejobregion beim Erstellen des Destillationsjobs in der Regionssteuerung an. In der Google Cloud Console gibt die Regionssteuerung sowohl die Pipelinejob- als auch die Modelluploadregion an. Wenn Sie mit der Google Cloud Console einen Destillationsjob erstellen, sind beide Regionen immer identisch.
Modelluploadregionen
Mit dem optionalen Parameter tuned_model_location
geben Sie an, wohin Ihr destilliertes Modell hochgeladen werden soll. Ist die Modelluploadregion nicht angegeben ist, wird das destillierte Modell in die Pipelinejobregion hochgeladen. Sie können eine der unterstützten Pipelinejobs- und Modelluploadregionen für Ihre Modelluploadregion verwenden. Sie können die Modelluploadregion mit einer der folgenden Methoden angeben:
Wenn Sie einen Destillationsjob durch Senden einer POST-Anfrage mit der
pipelineJobs
-Methode erstellen, können Sie dielocation
-Parameter zur Angabe der Modelluploadregion verwenden.Wenn Sie die Google Cloud Console verwenden, um einen Destillationsjob zu erstellen, geben Sie die Region zum Hochladen des Modells beim Erstellen des Destillationsjobs in der Regionssteuerung an. In der Google Cloud Console gibt die Regionssteuerung sowohl die Region des Modelluploads als auch die des Pipelinejobs an. Wenn Sie die Google Cloud Console zum Erstellen eines Destillationsjobs verwenden, sind beide Regionen immer identisch.
Modelloptimierungsregion
In der Optimierungsregion werden die Berechnungen für den Optimierungsjob ausgeführt. Diese Region wird durch den ausgewählten Beschleunigertyp bestimmt. Wenn Sie für Ihren Beschleunigertyp TPU
angeben, erfolgt die Berechnung der Modellfeinabstimmung in europe-west4
. Wenn Sie als Beschleunigertyp GPU
angeben, erfolgt die Modelloptimierung in us-central1
.
Unterstützte Pipelinejob- und Modelluploadregionen
Sie können eine der folgenden Regionen verwenden, um die Modellupload- und die Pipelinejobregion anzugeben:
us-central1
europe-west4
asia-southeast1
us-west1
europe-west3
europe-west2
asia-northeast1
us-east4
us-west4
northamerica-northeast1
europe-west9
europe-west1
asia-northeast3
Distillations-Job für ein Textmodell erstellen
Sie können einen Textmodell-Destillationsjob mit der Google Cloud Console oder der API erstellen. Anleitungen zur Konfiguration von Modelldestillationen finden Sie unter Empfohlene Konfigurationen.
REST
Senden Sie zum Erstellen eines Modell-Destillationsjobs eine POST-Anfrage mit der Methode pipelineJobs
.
Beachten Sie, dass einige Parameter nicht von allen Modellen unterstützt werden. Achten Sie darauf, dass Sie nur die für das zu destillierende Modell relevanten Parameter einfügen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PIPELINEJOB_DISPLAYNAME: Ein Anzeigename für den pipelineJob.
- OUTPUT_DIR: Der URI des Buckets, an den Pipelineartefakte ausgegeben werden sollen.
- PROJECT_ID: Ihre Projekt-ID.
- MODEL_DISPLAYNAME: Ein Anzeigename für das destillierte Modell, das von
pipelineJob
hochgeladen wurde. - DATASET_URI: URI Ihrer Dataset-Datei.
- PIPELINE_JOB_REGION: Die Region, in der der Pipeline-Abstimmungsjob ausgeführt wird. Dies ist auch die Standardregion, in der das abgestimmte Modell hochgeladen wird. Wenn Sie Ihr Modell in eine andere Region hochladen möchten, verwenden Sie den
location
-Parameter, um die Uploadregion für das abgestimmte Modell anzugeben. Weitere Informationen finden Sie unter Modelluploadregion. - MODEL_UPLOAD_REGION: (Optional) Die Region, in der das abgestimmte Modell hochgeladen wird. Wenn Sie keine Region für den Modellupload angeben, wird das abgestimmte Modell in die Region hochgeladen, in der der Pipelinejob ausgeführt wird. Weitere Informationen finden Sie unter Modelluploadregion.
- ACCELERATOR_TYPE: (optional, Standard
GPU
) Der Beschleunigertyp, der für die Modelloptimierung verwendet werden soll. Gültige Optionen sind:GPU
: Verwendet acht A100 mit 80 GPUs zur Abstimmung. Achten Sie darauf, dass Ihr Kontingent ausreicht. Wenn SieGPU
auswählen, wird VPC-SC unterstützt. CMEK wird unterstützt, wenn Feinabstimmungs- und Modelluploadstandortus-centra1
sind. Weitere Informationen finden Sie unter Einstellungen für die überwachte Optimierungsregion. Wenn SieGPU
wählen, werden die Berechnungen zur Modelloptimierung in derus-central1
-Region durchgeführt.TPU
: Verwendet 64 Kerne des TPU v3-Pods für die Optimierung. Achten Sie darauf, dass Ihr Kontingent ausreicht. CMEK wird nicht unterstützt, aber VPC-SC wird unterstützt. Wenn SieTPU
wählen, werden die Berechnungen zur Modelloptimierung in dereurope-west4
-Region durchgeführt.
- TEACHER_MODEL_REFERENCE: Name des Lehrermodells, das zur Destillation verwendet werden soll. Das unterstützte Modell ist
text-unicorn@001
. - STUDENT_MODEL_REFERENCE: Name des Schülermodells, das zur Destillation verwendet werden soll. Das unterstützte Modell ist
text-bison@002
. - STEPS: Die Anzahl der Schritte, die für die Abstimmung eines Modells ausgeführt werden sollen. Der Standardwert ist 300. Die Batchgröße variiert je nach Ort der Abstimmung und Modellgröße. Für 8.000-Modelle, z. B.
text-bison@002
,chat-bison@002
,code-bison@002
undcodechat-bison@002
:us-central1
hat eine Batchgröße von 8.europe-west4
hat eine Batchgröße von 24.
text-bison-32k
,chat-bison-32k
,code-bison-32k
undcodechat-bison-32k
:us-central1
hat eine Batchgröße von 8.europe-west4
hat eine Batchgröße von 8.
Wenn Sie beispielsweise
text-bison@002
ineurope-west4
trainieren, gibt es 240 Beispiele in einem Trainings-Dataset und Sie setzensteps
auf 20, dann beträgt die Anzahl der Trainingsbeispiele das Produkt aus 20 Schritten und die Batchgröße von 24 oder 480 Trainingsschritten. In diesem Fall umfasst der Trainingsprozess zwei Epochen, da die Beispiele zweimal durchlaufen werden. Wenn inus-central1
240 Beispiele in einem Trainings-Dataset vorhanden sind und Siesteps
auf 15 setzen, beträgt die Anzahl der Trainingsbeispiele das Produkt aus 15 Schritten und der Batchgröße von 8 oder 120 Trainingsschritte. In diesem Fall gibt es 0,5 Epochen, da es halb so viele Trainingsschritte wie Beispiele gibt. - LEARNING_RATE_MULTIPLIER
Ein Multiplikator, der auf die empfohlene Lernrate anzuwenden ist. Verwenden Sie
1.0
, um die empfohlene Lernrate zu verwenden. - EVAL_DATASET_URI: (Optional) Der URI der JSONL-Datei, die das Bewertungs-Dataset für Batchvorhersage und -bewertung enthält. Die Bewertung wird für
chat-bison
nicht unterstützt. Weitere Informationen finden Sie unter Dataset-Format zur Abstimmung eines Codemodells. Das Bewertungs-Dataset erfordert zwischen 10 und 250 Beispiele. - EVAL_INTERVAL: (Optional, Standard
20
) Die Anzahl der Feinabstimmungsschritte zwischen den einzelnen Bewertungen. Bewertungsintervalle werden für Chatmodelle nicht unterstützt. Da die Bewertung für das gesamte Bewertungs-Dataset ausgeführt wird, führt ein kleineres Bewertungsintervall zu einer längeren Abstimmungszeit. Beispiel: Wennsteps
200 undEVAL_INTERVAL
100 ist, erhalten Sie nur zwei Datenpunkte für die Bewertungsmesswerte. Für diesen Parameter mussevaluation_data_uri
festgelegt sein. - ENABLE_EARLY_STOPPING: (optional, Standard
true
) Einboolean
, der bei Einstellung auftrue
die Abstimmung vor der Ausführung aller Feinabstimmungsschritte beendet, falls sich die Modellleistung, gemessen über die Genauigkeit der vorhergesagten Tokens, zwischen den Auswertungsausführungen nicht verbessert. Beifalse
wird die Abstimmung fortgesetzt, bis alle Abstimmungsschritte abgeschlossen sind. Für diesen Parameter mussevaluation_data_uri
festgelegt sein. Das Aktivieren des vorzeitigen Beendens wird für Chatmodelle nicht unterstützt. - TENSORBOARD_RESOURCE_ID: (Optional) Die ID einer Vertex AI TensorBoard-Instanz. Die Vertex AI TensorBoard-Instanz wird verwendet, um nach Abschluss des Abstimmungsjobs einen Test zu erstellen. Die Vertex AI TensorBoard-Instanz muss sich in derselben Region wie die Abstimmungspipeline befinden.
- ENCRYPTION_KEY_NAME:
(optional) Der voll qualifizierte Name eines vom Kunden verwalteten Verschlüsselungsschlüssels (Customer-Managed Encryption Key, CMEK), den Sie für die Datenverschlüsselung verwenden möchten. Ein CMEK ist nur in
us-central1
verfügbar. Wenn Sieus-central1
verwenden und keinen CMEK angeben, wird ein von Google verwalteter Verschlüsselungsschlüssel verwendet. Ein von Google verwalteter Verschlüsselungsschlüssel wird standardmäßig in allen anderen verfügbaren Regionen verwendet. Weitere Informationen finden Sie in der Übersicht zu CMEK. - TEMPLATE_URI: Der URI für die Destillationsvorlage,
https://us-kfp.pkg.dev/ml-pipeline/distillation/distillation/v1.0.0
. - SERVICE_ACCOUNT: (optional) Das Dienstkonto, das Vertex AI zum Ausführen Ihres Pipelinejobs verwendet. Standardmäßig wird das Compute Engine-Standarddienstkonto Ihres Projekts (
PROJECT_NUMBER‑compute@developer.gserviceaccount.com
) verwendet. Weitere Informationen zum Anhängen eines benutzerdefinierten Dienstkontos.
HTTP-Methode und URL:
POST https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs
JSON-Text der Anfrage:
{ "displayName": "PIPELINEJOB_DISPLAYNAME", "runtimeConfig": { "gcsOutputDirectory": "gs://OUTPUT_DIR", "parameterValues": { "project": "PROJECT_ID", "model_display_name": "MODEL_DISPLAYNAME", "dataset_uri": "gs://DATASET_URI", "location": "MODEL_UPLOAD_REGION", "accelerator_type": "ACCELERATOR_TYPE", "teacher_model_reference":TEACHER_MODEL_REFERENCE , "student_model_reference":STUDENT_MODEL_REFERENCE , "train_steps": STEPS, "learning_rate_multiplier": LEARNING_RATE_MULTIPLIER, "evaluation_data_uri": "gs://EVAL_DATASET_URI", "evaluation_interval": EVAL_INTERVAL, "enable_early_stopping": ENABLE_EARLY_STOPPING, "enable_checkpoint_selection": "ENABLE_CHECKPOINT_SELECTION", "tensorboard_resource_id": "TENSORBOARD_ID", "encryption_spec_key_name": "ENCRYPTION_KEY_NAME" } }, "encryptionSpec": { "kmsKeyName": "ENCRYPTION_KEY_NAME" }, "serviceAccount": "SERVICE_ACCOUNT", "templateUri": "TEMPLATE_URI" }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://PIPELINE_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/PIPELINE_JOB_REGION/pipelineJobs" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten: Beachten Sie, dass pipelineSpec
gekürzt wurde, um Speicherplatz zu sparen.
Python
Informationen zum Installieren oder Aktualisieren von Python finden Sie unter Vertex AI SDK für Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Console
Führen Sie die folgenden Schritte aus, um ein Textmodell mithilfe der Google Cloud Console zu destillieren:
- Rufen Sie im Bereich „Vertex AI“ der Google Cloud Console die Seite Vertex AI Studio auf.
- Klicken Sie auf den Tab Abstimmen und destillieren.
- Klicken Sie auf Destilliertes Modell erstellen.
- Konfigurieren Sie die Modelldetails:
- Modellname: Geben Sie einen Namen für das destillierte Modell ein.
- Lehrermodell: Wählen Sie das Modell aus, das Sie als Lehrermodell verwenden möchten.
- Schülermodell: Wählen Sie das Modell aus, das Sie als Schülermodell verwenden möchten.
- Region: Wählen Sie die Region aus, in der der Pipeline-Optimierungsjob ausgeführt und in der das abgestimmte Modell bereitgestellt wird.
- Arbeitsverzeichnis: Geben Sie den Cloud Storage-Speicherort ein, an dem Artefakte gespeichert werden, nachdem Ihr Modell optimiert wurde.
- Maximieren Sie Erweiterte Optionen, um weitere Einstellungen zu konfigurieren.
- Trainingsschritte: Geben Sie die Anzahl der Schritte ein, die zur Modellabstimmung ausgeführt werden sollen. Der Standardwert ist 300. Die Batchgröße variiert je nach Ort der Abstimmung und Modellgröße. Für 8.000-Modelle, z. B.
text-bison@002
,chat-bison@002
,code-bison@002
undcodechat-bison@002
:us-central1
hat eine Batchgröße von 8.europe-west4
hat eine Batchgröße von 24.
text-bison-32k
,chat-bison-32k
,code-bison-32k
undcodechat-bison-32k
:us-central1
hat eine Batchgröße von 8.europe-west4
hat eine Batchgröße von 8.
Wenn Sie beispielsweise
text-bison@002
ineurope-west4
trainieren, gibt es 240 Beispiele in einem Trainings-Dataset und Sie setzensteps
auf 20, dann beträgt die Anzahl der Trainingsbeispiele das Produkt aus 20 Schritten und die Batchgröße von 24 oder 480 Trainingsschritten. In diesem Fall umfasst der Trainingsprozess zwei Epochen, da die Beispiele zweimal durchlaufen werden. Wenn inus-central1
240 Beispiele in einem Trainings-Dataset vorhanden sind und Siesteps
auf 15 setzen, beträgt die Anzahl der Trainingsbeispiele das Produkt aus 15 Schritten und der Batchgröße von 8 oder 120 Trainingsschritte. In diesem Fall gibt es 0,5 Epochen, da es halb so viele Trainingsschritte wie Beispiele gibt. - Multiplikator für die Lernrate: Geben Sie die Schrittgröße pro Durchlauf ein. Der Standardwert ist 1.
- Beschleunigertyp: (Optional) Geben Sie den Typ des Beschleunigers ein, der für die Modelloptimierung verwendet werden soll. Gültige Optionen sind:
GPU
: Verwendet acht A100 mit 80 GPUs zur Abstimmung. Achten Sie darauf, dass Ihr Kontingent ausreicht. Wenn SieGPU
auswählen, wird VPC-SC unterstützt. CMEK wird unterstützt, wenn Feinabstimmungs- und Modelluploadstandortus-centra1
sind. Weitere Informationen finden Sie unter Einstellungen für die überwachte Optimierungsregion. Wenn SieGPU
wählen, werden die Berechnungen zur Modelloptimierung in derus-central1
-Region durchgeführt.TPU
: Verwendet 64 Kerne des TPU v3-Pods für die Optimierung. Achten Sie darauf, dass Ihr Kontingent ausreicht. CMEK wird nicht unterstützt, aber VPC-SC wird unterstützt. Wenn SieTPU
wählen, werden die Berechnungen zur Modelloptimierung in dereurope-west4
-Region durchgeführt.
- TensorBoard-Instanz hinzufügen: (optional) Die ID einer Vertex AI TensorBoard-Instanz. Die Vertex AI TensorBoard-Instanz wird verwendet, um nach Abschluss des Abstimmungsjobs einen Test zu erstellen. Die Vertex AI TensorBoard-Instanz muss sich in derselben Region wie die Abstimmungspipeline befinden.
- Verschlüsselung (optional) Wählen Sie aus, ob Sie einen von Google verwalteten Verschlüsselungsschlüssel oder einen vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK, Customer Managed Encryption Key) verwenden möchten. Ein CMEK ist nur für Verschlüsselungen in der Region
us-central1
verfügbar. In allen anderen verfügbaren Regionen wird ein von Google verwalteter Verschlüsselungsschlüssel verwendet. Weitere Informationen finden Sie in der Übersicht zu CMEK. - Dienstkonto (optional) Wählen Sie ein nutzerverwaltetes Dienstkonto aus. Ein Dienstkonto bestimmt, auf welche Google Cloud-Ressourcen Ihr Dienstcode zugreifen kann. Wenn Sie kein Dienstkonto auswählen, wird ein von Google verwaltetes Dienstkonto verwendet, das für die meisten Modelle passende Berechtigungen enthält.
- Trainingsschritte: Geben Sie die Anzahl der Schritte ein, die zur Modellabstimmung ausgeführt werden sollen. Der Standardwert ist 300. Die Batchgröße variiert je nach Ort der Abstimmung und Modellgröße. Für 8.000-Modelle, z. B.
- Klicken Sie auf Weiter.
- Wenn Sie Ihre Destillations-Dataset-Datei hochladen möchten, wählen Sie
JSONL-Datei hochladen
- Klicken Sie unter JSONL-Datei auswählen auf Durchsuchen und wählen Sie die Dataset-Datei aus.
- Klicken Sie unter Dataset-Speicherort auf Durchsuchen und wählen Sie den Cloud Storage-Bucket, in dem Sie die Dataset-Datei speichern möchten.
Vorhandene JSONL-Datei verwenden
Klicken Sie unter Cloud Storage-Dateipfad auf Durchsuchen und wählen Sie den Cloud Storage-Bucket, in dem sich Ihre Dataset-Datei befindet.
JSONL-Datei in Cloud Storage hochladen aus. Wenn sich die Dataset-Datei bereits in einem Cloud Storage-Bucket befindet, wählen Sie Vorhandene JSONL-Datei in Cloud Storage.
- (Optional) Wählen Sie Evaluierung des Modells aktivieren aus und konfigurieren Sie die Modellbewertung, um das destillierte Modell zu bewerten:
- Bewertungs-Dataset: (optional) Der URI der JSONL-Datei, die das Bewertungs-Dataset für Batchvorhersage und -bewertung enthält. Die Bewertung wird für
codechat-bison
nicht unterstützt. Weitere Informationen finden Sie unter Dataset-Format zur Abstimmung eines Codemodells. Das Bewertungs-Dataset erfordert zwischen 10 und 250 Beispiele. - Bewertungs-Intervall: (optional, Standard
20
) Die Anzahl der Abstimmungsschritte zwischen den einzelnen Bewertungen. Ein Auswertungsintervall wird für Chatmodelle nicht unterstützt. Da die Bewertung für das gesamte Bewertungs-Dataset ausgeführt wird, führt ein kleineres Bewertungsintervall zu einer längeren Abstimmungszeit. Beispiel: Wennsteps
200 undEVAL_INTERVAL
100 ist, erhalten Sie nur zwei Datenpunkte für die Bewertungsmesswerte. Für diesen Parameter mussevaluation_data_uri
festgelegt sein. - Vorzeitiges Beenden aktivieren: (optional, Standardeinstellung
true
) Einboolean
, der bei Einstellung auftrue
die Abstimmung vor der Ausführung aller Feinabstimmungsschritte beendet, falls sich die Modellleistung, gemessen über die Genauigkeit der vorhergesagten Tokens, zwischen den Auswertungsausführungen nicht verbessert. Beifalse
wird die Abstimmung fortgesetzt, bis alle Abstimmungsschritte abgeschlossen sind. Für diesen Parameter mussevaluation_data_uri
festgelegt sein. Das Aktivieren des vorzeitigen Beendens wird für Chatmodelle nicht unterstützt. - Prüfpunktauswahl aktivieren: Wenn diese Option aktiviert ist, wählt Vertex AI den Prüfpunkt mit der besten Modellbewertungsleistung von allen während des Abstimmungsjobs erstellten Prüfpunkten aus. Bei Deaktivierung wird der letzte Prüfpunkt zurückgegeben, der während des Abstimmungsjobs erstellt wurde. Jeder Prüfpunkt bezieht sich auf einen während eines Abstimmungsjobs erstellten Snapshot des Modells.
- TensorBoard-Instanz: (Optional) Die ID einer Vertex AI TensorBoard-Instanz. Die Vertex AI TensorBoard-Instanz wird verwendet, um nach Abschluss des Abstimmungsjobs einen Test zu erstellen. Die Vertex AI TensorBoard-Instanz muss sich in derselben Region wie die Abstimmungspipeline befinden.
- Bewertungs-Dataset: (optional) Der URI der JSONL-Datei, die das Bewertungs-Dataset für Batchvorhersage und -bewertung enthält. Die Bewertung wird für
- Klicken Sie auf Destillation starten.
Empfohlene Konfigurationen
Die folgende Tabelle zeigt die empfohlenen Konfigurationen zur Destillation eines Foundation Models nach Task:
Task | Anzahl der Beispiele im Datensatz | Trainingsschritte |
---|---|---|
Klassifizierung | Über 100 | 200-1000 |
Zusammenfassung | 100-500+ | 1000-1500 |
Extractive QA | Über 100 | 200 – 800 |
Als Trainingsschritten können Sie mehr als einen Wert ausprobieren, um die beste Leistung für ein bestimmtes Dataset zu erhalten, z. B. 100, 200, 500.
Liste der destillierten Modelle aufrufen
Sie können eine Liste der Modelle in Ihrem aktuellen Projekt, einschließlich Ihrer destillierten Modelle, über die Google Cloud Console oder das Vertex AI SDK für Python anzeigen.
Python
Bevor Sie dieses Beispiel anwenden, folgen Sie den Python Schritten zur Einrichtung in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Console
Um die destillierten Modelle in der Google Cloud Console aufzurufen, gehen Sie zur Seite der Vertex AI-Modell-Registry.
Destilliertes Textmodell laden
Im folgenden Beispielcode wird mit dem Vertex AI SDK for Python ein destilliertes Textgenerierungsmodell geladen.
import vertexai from vertexai.preview.language_models import TextGenerationModel model = TextGenerationModel.get_tuned_model(TUNED_MODEL_NAME)
Ersetzen Sie TUNED_MODEL_NAME
durch den qualifizierten Ressourcennamen Ihres detillierten Modells.
Dieser Name hat das Format projects/PROJECT_ID/locations/LOCATION/models/MODEL_ID
.
Die Modell-ID Ihres destillierten Modells finden Sie in der Vertex AI Model Registry.
Messwerte für die Abstimmung und Bewertung
Sie können einen Modellabstimmungsjob konfigurieren, um Messwerte zur Modellabstimmung und Modellbewertung zu erfassen und zu melden. Diese können dann mit Vertex AI TensorBoard visualisiert werden.
Messwerte für die Modellabstimmung
Sie können einen Modellabstimmungsjob konfigurieren, um die folgenden Abstimmungsmesswerte fürchat-bison
, code-bison
, codechat-bison
und text-bison
zu erfassen:
/train_total_loss
: Verlust für das Abstimmungs-Dataset in einem Trainingsschritt./train_fraction_of_correct_next_step_preds
: Die Tokengenauigkeit in einem Trainingsschritt. Eine einzelne Vorhersage besteht aus einer Abfolge von Tokens. Dieser Messwert misst die Genauigkeit der vorhergesagten Tokens im Vergleich zum Ground Truth im Abstimmungs-Dataset./train_num_predictions:
: Anzahl der vorhergesagten Tokens in einem Trainingsschritt.
Modellvalidierungsmesswerte
Modellbewertungsmesswerte
Sie können einen Modellabstimmungsjob konfigurieren, um die folgenden Bewertungsmesswerte für code-bison
und text-bison
zu erfassen:
/eval_total_loss
: Verlust für das Bewertungs-Dataset in einem Bewertungsschritt./eval_fraction_of_correct_next_step_preds
: Die Tokengenauigkeit in einem Bewertungsschritt. Eine einzelne Vorhersage besteht aus einer Abfolge von Tokens. Dieser Messwert misst die Genauigkeit der vorhergesagten Tokens im Vergleich zum Ground Truth im Bewertungs-Dataset./eval_num_predictions
: Anzahl der vorhergesagten Tokens in einem Bewertungsschritt.
Die Messwertvisualisierungen sind verfügbar, sobald der Modellabstimmungsjob abgeschlossen wurde. Wenn Sie beim Erstellen des Abstimmungsjobs nur eine Vertex AI TensorBoard-Instanz-ID und kein Bewertungs-Dataset angeben, sind nur die Visualisierungen für die Abstimmungsmesswerte verfügbar.