L'ottimizzatore zero-shot ti consente di perfezionare e migliorare automaticamente i prompt scritti dagli utenti. Spesso, un prompt potrebbe non produrre la risposta del modello che desideri a causa di un linguaggio ambiguo, della mancanza di contesto o dell'inclusione di informazioni irrilevanti. Questo ottimizzatore analizza e riscrive un prompt esistente per renderlo più chiaro, efficace e in linea con le funzionalità del modello, portando in definitiva a risposte di qualità superiore.
L'ottimizzatore zero-shot è particolarmente utile per:
Adattamento agli aggiornamenti del modello: quando esegui l'upgrade a una versione più recente di un modello, i prompt esistenti potrebbero non funzionare più in modo ottimale.
Miglioramento della comprensione dei prompt: quando la formulazione di un prompt è complessa o potrebbe essere interpretata in modo errato, lo strumento può riformularla per ottenere la massima chiarezza e precisione, riducendo la possibilità di un risultato indesiderato.
Esistono due modi per utilizzare l'ottimizzatore:
Generazione di istruzioni: anziché scrivere istruzioni di sistema complesse da zero, puoi descrivere il tuo obiettivo o la tua attività in un linguaggio semplice. L'ottimizzatore genererà quindi un insieme completo e ben strutturato di istruzioni di sistema progettate per raggiungere il tuo obiettivo.
Raffinamento del prompt: hai un prompt funzionante, ma l'output del modello è incoerente, leggermente fuori tema o non ha i dettagli che desideri. L'ottimizzatore può aiutarti a migliorare il prompt per un output migliore.
L'ottimizzatore supporta l'ottimizzazione dei prompt in tutte le lingue supportate da Gemini ed è disponibile tramite l'SDK Vertex AI.
Prima di iniziare
Per assicurarti che l'account di servizio Compute Engine predefinito disponga delle autorizzazioni necessarie per ottimizzare i prompt, chiedi all'amministratore di concedere all'account di servizio Compute Engine predefinito i seguenti ruoli IAM sul progetto:
-
Utente Vertex AI (
roles/aiplatform.user
) -
Agente di servizio Vertex AI (
roles/aiplatform.serviceAgent
)
Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
L'amministratore potrebbe anche essere in grado di concedere all'account di servizio predefinito di Compute Engine le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.
Ottimizza un prompt
# 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)
# View optimized prompt
print(output.model_dump_json(indent=2))
Questo oggetto output
è di tipo OptimizeResponse
e fornisce informazioni
sul processo di ottimizzazione. La parte più importante è il
suggested_prompt
, che contiene il prompt ottimizzato che puoi utilizzare per ottenere
risultati migliori dal tuo modello. Gli altri campi, in particolare
applicable_guidelines
, sono utili per capire perché e come il tuo prompt
è stato migliorato, il che può aiutarti a scrivere prompt migliori in futuro. Ecco un
esempio dell'output:
{
"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..."
}