Otimizador zero-shot

Use o otimizador de aprendizado sem exemplos para refinar e melhorar automaticamente seus comandos. Se um comando tiver linguagem ambígua, contexto ausente ou informações irrelevantes, talvez ele não produza a resposta desejada. O otimizador analisa e reescreve seu comando para que ele seja mais claro, eficaz e alinhado às capacidades do modelo, o que pode gerar respostas de maior qualidade.

O otimizador de aprendizado sem exemplos é útil nos seguintes cenários:

  • Adapte-se às atualizações do modelo: quando você faz upgrade para uma versão mais recente do modelo, os comandos atuais podem não ter o desempenho ideal.
  • Melhorar a compreensão do comando: se a frase de um comando for complexa ou puder ser mal interpretada, o otimizador pode reformulá-la para aumentar a clareza e a precisão.

Nesta página, mostramos como usar o otimizador de comandos de aprendizado sem supervisão e incluímos as seguintes seções:

Quando usar o otimizador de aprendizado sem exemplos

Você pode usar o otimizador de duas maneiras. A tabela a seguir compara as duas abordagens.

Opção Descrição Caso de uso
Geração de instruções Gera um conjunto completo e bem estruturado de instruções do sistema com base em uma descrição simples do seu objetivo. Quando você precisa criar um comando novo e complexo do zero e quer garantir que ele seja bem estruturado.
Refinamento de comandos Analisa e melhora um comando para produzir respostas mais consistentes, detalhadas ou relevantes. Quando você tem um comando funcional, mas a saída do modelo não atende aos seus padrões de qualidade.

Otimizar um comando

O otimizador está disponível no SDK da Vertex AI e oferece suporte à otimização de comandos em todos os idiomas compatíveis com o Gemini. O exemplo a seguir mostra como chamar o otimizador:

# 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)

Entender a saída

O objeto output é um tipo OptimizeResponse que contém informações sobre o processo de otimização. A resposta inclui os seguintes campos principais:

  • suggested_prompt: o comando otimizado que você pode usar para ter resultados melhores com seu modelo.
  • applicable_guidelines: informações sobre por que e como seu comando foi melhorado, o que pode ajudar você a escrever comandos melhores no futuro.

Veja a seguir um exemplo da saída:

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