El optimizador sin ejemplos te permite refinar y mejorar automáticamente las instrucciones escritas por el usuario. A menudo, es posible que una instrucción no produzca la respuesta del modelo que deseas debido a un lenguaje ambiguo, falta de contexto o la inclusión de información irrelevante. Este optimizador analiza y reescribe una instrucción existente para que sea más clara, eficaz y esté mejor alineada con las capacidades del modelo, lo que, en última instancia, genera respuestas de mayor calidad.
El optimizador sin ejemplos es particularmente útil para lo siguiente:
Adaptación a las actualizaciones del modelo: Cuando actualizas a una versión más reciente de un modelo, es posible que tus instrucciones existentes ya no funcionen de manera óptima.
Mejora de la comprensión de instrucciones: Cuando la redacción de una instrucción es compleja o se puede malinterpretar, la herramienta puede reformularla para lograr la máxima claridad y precisión, lo que reduce la probabilidad de un resultado no deseado.
Existen dos maneras de usar el optimizador:
Generación de instrucciones: En lugar de escribir instrucciones complejas del sistema desde cero, puedes describir tu objetivo o tarea en lenguaje sencillo. Luego, el optimizador generará un conjunto completo y bien estructurado de instrucciones del sistema diseñadas para alcanzar tu objetivo.
Refinamiento de instrucciones: Tienes una instrucción que funciona, pero la respuesta del modelo es incoherente, se desvía ligeramente del tema o no tiene el nivel de detalle que deseas. El optimizador puede ayudarte a mejorar la instrucción para obtener un mejor resultado.
El optimizador admite la optimización de instrucciones en todos los idiomas compatibles con Gemini y está disponible a través del SDK de Vertex AI.
Antes de comenzar
Para garantizar que la cuenta de servicio predeterminada de Compute Engine tenga los permisos necesarios para optimizar las instrucciones, pídele a tu administrador que otorgue a la cuenta de servicio predeterminada de Compute Engine los siguientes roles de IAM 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 otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Es posible que tu administrador también pueda otorgarle los permisos necesarios al agente de servicio de Compute Engine mediante roles personalizados o cualquier otro rol predefinido.
Optimiza una instrucció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 el suggested_prompt
, que contiene la instrucción optimizada que puedes usar para obtener mejores resultados de tu modelo. Los otros campos, en especial applicable_guidelines
, son útiles para comprender por qué y cómo se mejoró tu instrucción, lo que puede ayudarte a escribir mejores instrucciones en el futuro. Este es 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..."
}