El optimizador de cero disparos te permite perfeccionar y mejorar automáticamente las peticiones escritas por los usuarios. A menudo, una petición no produce la respuesta del modelo que quieres debido a un lenguaje ambiguo, a la falta de contexto o a la inclusión de información irrelevante. Este optimizador analiza y reescribe una petición para que sea más clara, eficaz y se ajuste mejor a las capacidades del modelo, lo que permite obtener respuestas de mayor calidad.
El optimizador de cero disparos es especialmente útil en los siguientes casos:
Adaptación a las actualizaciones de modelos: cuando actualizas a una versión más reciente de un modelo, es posible que tus peticiones ya no funcionen de forma óptima.
Mejora de la comprensión de las peticiones: cuando la redacción de una petición es compleja o se puede malinterpretar, la herramienta puede reformularla para que sea lo más clara y precisa posible, lo que reduce la probabilidad de que se produzca un resultado no deseado.
Hay dos formas de usar el optimizador:
Generación de instrucciones: en lugar de escribir instrucciones complejas del sistema desde cero, puedes describir tu objetivo o tarea con un lenguaje sencillo. A continuación, el optimizador generará un conjunto completo y bien estructurado de instrucciones del sistema diseñadas para alcanzar tu objetivo.
Refinamiento de la petición: tienes una petición que funciona, pero el resultado del modelo es incoherente, se desvía ligeramente del tema o no tiene el nivel de detalle que quieres. El optimizador puede ayudarte a mejorar la petición para obtener un mejor resultado.
El optimizador admite la optimización de peticiones en todos los idiomas admitidos por Gemini y está disponible a través del SDK de Vertex AI.
Antes de empezar
Para asegurarte de que la cuenta de servicio predeterminada de Compute Engine tiene los permisos necesarios para optimizar las peticiones, pide a tu administrador que asigne a la cuenta de servicio predeterminada de Compute Engine los siguientes roles de gestión de identidades y accesos en el proyecto:
-
Usuario de Vertex AI (
roles/aiplatform.user
) -
Agente de servicio de Vertex AI (
roles/aiplatform.serviceAgent
)
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
Es posible que tu administrador también pueda conceder los permisos necesarios a la cuenta de servicio predeterminada de Compute Engine mediante roles personalizados u otros roles predefinidos.
Optimizar una petición
# 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))
Este objeto output
es de tipo OptimizeResponse
y proporciona información sobre el proceso de optimización. La parte más importante es la suggested_prompt
, que contiene la petición optimizada que puedes usar para obtener mejores resultados de tu modelo. Los demás campos, especialmente applicable_guidelines
, son útiles para entender por qué y cómo se ha mejorado tu petición, lo que puede ayudarte a escribir mejores peticiones en el futuro. Aquí tienes un ejemplo del resultado:
{
"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..."
}