Optimizador sin ejemplos

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:

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..."
}