Mit dem Zero-Shot-Optimizer können Sie von Nutzern verfasste Prompts automatisch optimieren und verbessern. Oft liefert eine Eingabeaufforderung nicht die gewünschte Modellantwort, weil die Sprache mehrdeutig ist, Kontext fehlt oder irrelevante Informationen enthalten sind. Dieser Optimierer analysiert und überarbeitet einen vorhandenen Prompt, damit er klarer, effektiver und besser auf die Funktionen des Modells abgestimmt ist. Das führt letztendlich zu qualitativ hochwertigeren Antworten.
Der Zero-Shot-Optimizer ist besonders nützlich für:
Anpassung an Modellupdates:Wenn Sie ein Upgrade auf eine neuere Version eines Modells durchführen, funktionieren Ihre vorhandenen Prompts möglicherweise nicht mehr optimal.
Aufforderungen besser verstehen:Wenn eine Aufforderung komplex formuliert ist oder falsch interpretiert werden könnte, kann das Tool sie so umformulieren, dass sie möglichst klar und präzise ist. So wird die Wahrscheinlichkeit eines unerwünschten Ergebnisses verringert.
Es gibt zwei Möglichkeiten, den Optimizer zu verwenden:
Generierung von Anweisungen: Anstatt komplexe Systemanweisungen von Grund auf neu zu schreiben, können Sie Ihr Ziel oder Ihre Aufgabe in einfacher Sprache beschreiben. Der Optimierer generiert dann eine vollständige und gut strukturierte Reihe von Systemanweisungen, die auf Ihr Ziel ausgerichtet sind.
Aufforderung optimieren: Sie haben eine funktionierende Aufforderung, aber die Ausgabe des Modells ist inkonsistent, weicht leicht vom Thema ab oder enthält nicht die gewünschten Details. Der Optimierer kann Ihnen helfen, den Prompt zu 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 Vertex AI SDK verfügbar, wie im folgenden Beispiel gezeigt:
# 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 Vertex AI 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)
Dieses output
-Objekt hat den 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. So können Sie in Zukunft bessere Prompts 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..."
}