Mit dem Zero-Shot-Optimierer können Sie von Nutzern geschriebene Prompts automatisch verfeinern und verbessern. Oft liefert ein Prompt aufgrund von mehrdeutiger Sprache, fehlendem Kontext oder irrelevanten Informationen nicht die gewünschte Modellantwort. Dieser Optimierer analysiert und schreibt einen vorhandenen Prompt um, damit er klarer, effektiver und besser auf die Funktionen des Modells abgestimmt ist. Das führt letztendlich zu qualitativ hochwertigeren Antworten.
Der Zero-Shot-Optimierer ist besonders nützlich für:
Anpassung an Modellaktualisierungen: Wenn Sie ein Upgrade auf eine neuere Version eines Modells durchführen, funktionieren Ihre vorhandenen Prompts möglicherweise nicht mehr optimal.
Prompt-Verständnis verbessern: Wenn die Formulierung eines Prompts komplex ist oder falsch interpretiert werden könnte, kann das Tool ihn für maximale Klarheit und Präzision umformulieren, um die Wahrscheinlichkeit eines unerwünschten Ergebnisses zu verringern.
Es gibt zwei Möglichkeiten, den Optimierer zu verwenden:
Anweisungsgenerierung: Anstatt komplexe Systemanweisungen von Grund auf neu zu schreiben, können Sie Ihr Ziel oder Ihre Aufgabe in natürlicher Sprache beschreiben. Der Optimierer generiert dann einen vollständigen und gut strukturierten Satz von Systemanweisungen, die darauf ausgelegt sind, Ihr Ziel zu erreichen.
Prompt-Optimierung: Sie haben einen funktionierenden Prompt, aber die Ausgabe des Modells ist inkonsistent, weicht leicht vom Thema ab oder ist nicht detailliert genug. Der Optimierer kann den Prompt verbessern, um eine bessere Ausgabe zu erhalten.
Der Optimierer unterstützt die Prompt-Optimierung in allen von Gemini unterstützten Sprachen und ist über das Agent Platform SDK verfügbar.
Hinweis
Bitten Sie Ihren Administrator, dem Compute Engine-Standarddienstkonto und einem Nutzerkonto mit der Rolle „Agent Platform User“ (roles/aiplatform.user) die folgenden IAM-Rollen für das Projekt zuzuweisen, damit das Compute Engine-Standarddienstkonto die erforderlichen Berechtigungen zum Optimieren von Prompts hat:
- Agent Platform User (
roles/aiplatform.user) - Vertex AI-Dienst-Agent (
roles/aiplatform.serviceAgent)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Ihr Administrator kann dem Compute Engine-Standarddienstkonto und Ihrem Nutzerkonto die erforderlichen Berechtigungen möglicherweise auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erteilen.
Prompt optimieren
# Import libraries
import vertexai
import logging
# Google Colab authentication
from google.colab import auth
PROJECT_NAME = "PROJECT"
auth.authenticate_user(project_id=PROJECT_NAME)
# Initialize the Agent Platform client
client = vertexai.Client(project=PROJECT_NAME, location='us-central1')
# Input original prompt to optimize
prompt = """You are a professional chef. Your goal is teaching how to cook healthy cooking recipes to your apprentice.
Given a question from your apprentice and some context, provide the correct answer to the question.
Use the context to return a single and correct answer with some explanation.
"""
# Optimize prompt
output = client.prompt_optimizer.optimize_prompt(prompt=prompt)
# View optimized prompt
print(output.model_dump_json(indent=2))
Dieses output-Objekt ist vom Typ OptimizeResponse und enthält Informationen zum Optimierungsprozess. Der wichtigste Teil ist der suggested_prompt, der den optimierten Prompt enthält, mit dem Sie bessere Ergebnisse von Ihrem Modell erhalten können. Die anderen Felder, insbesondere applicable_guidelines, sind nützlich, um zu verstehen, warum und wie Ihr Prompt verbessert wurde. Das kann Ihnen helfen, in Zukunft bessere Prompts zu schreiben. Hier ein Beispiel für die Ausgabe:
{
"optimization_mode": "zero_shot",
"applicable_guidelines": [
{
"applicable_guideline": "Structure",
"suggested_improvement": "Add role definition.",
"text_before_change": "...",
"text_after_change": "Role: You are an AI assistant...\n\nTask Context:\n..."
},
{
"applicable_guideline": "RedundancyInstructions",
"suggested_improvement": "Remove redundant explanation.",
"text_before_change": "...",
"text_after_change": ""
}
],
"original_prompt": "...",
"suggested_prompt": "Role: You are an AI assistant...\n\nTask Context:\n..."
}
Für kleinere Modelle optimieren
Kleinere Modelle wie Gemma 3n E4B haben andere Fähigkeiten zur Befolgung von Anweisungen als größere Modelle. Prompts, die für große Modelle gut funktionieren, sind für diese kleineren Modelle möglicherweise nicht optimal. Der Zero-Shot-Optimierer bietet einen gemini_nano-Modus, um dieses Problem zu beheben. Im Modus gemini_nano wird Ihr Prompt so optimiert, dass er speziell auf die Eigenschaften kleinerer Modelle abgestimmt ist. So können Prompts generiert werden, die besser zu den Funktionen kleinerer Modelle passen.
Das folgende Beispiel zeigt, wie ein Prompt für kleinere Modelle optimiert wird:
client = vertexai.Client(project=PROJECT_NAME, location='us-central1')
prompt = 'Generate system instructions for analyzing medical articles'
# optimize_prompt returns OptimizeResponse type, which has 2 fields: raw_text_response and parsed_response
# raw_text_response is guaranteed and always will be given to the user.
# parsed_response is not guaranteed. If parsing is possible, the parsed response is stored in this field.
# parsed_response contains the following 4 fields:
# optimization_type, applicable_guidelines, original_prompt, suggested_prompt
response = client.prompt_optimizer.optimize_prompt(
prompt=prompt,
config=vertexai.types.OptimizeConfig(
optimization_target=vertexai.types.OptimizeTarget.OPTIMIZATION_TARGET_GEMINI_NANO
)
)
# print(response.raw_text_response)
print(response.parsed_response.suggested_prompt)