Pengoptimal zero-shot

Pengoptimal zero-shot memungkinkan Anda menyempurnakan dan meningkatkan kualitas perintah yang ditulis pengguna secara otomatis. Sering kali, perintah mungkin tidak menghasilkan respons model yang Anda inginkan karena bahasa yang ambigu, kurangnya konteks, atau penyertaan informasi yang tidak relevan. Pengoptimal ini menganalisis dan menulis ulang perintah yang ada agar lebih jelas, lebih efektif, dan lebih selaras dengan kemampuan model, sehingga menghasilkan respons yang berkualitas lebih tinggi.

Pengoptimal zero-shot sangat berguna untuk:

  • Menyesuaikan dengan Update Model: Saat Anda mengupgrade ke versi model yang lebih baru, perintah yang ada mungkin tidak lagi berfungsi secara optimal.

  • Meningkatkan Pemahaman Perintah: Jika frasa perintah rumit atau dapat disalahartikan, alat ini dapat memfrasanya ulang agar lebih jelas dan akurat, sehingga mengurangi kemungkinan hasil yang tidak diinginkan.

Ada dua cara untuk menggunakan pengoptimal:

  • Pembuatan Petunjuk: Alih-alih menulis petunjuk sistem yang kompleks dari awal, Anda dapat menjelaskan sasaran atau tugas Anda dalam bahasa yang sederhana. Pengoptimal kemudian akan membuat serangkaian petunjuk sistem yang lengkap dan terstruktur dengan baik yang dirancang untuk mencapai tujuan Anda.

  • Penyempurnaan Perintah: Anda memiliki perintah yang berfungsi, tetapi output model tidak konsisten, sedikit di luar topik, atau tidak memiliki detail yang Anda inginkan. Pengoptimal dapat membantu meningkatkan kualitas perintah untuk menghasilkan output yang lebih baik.

Pengoptimal mendukung pengoptimalan perintah dalam semua bahasa yang didukung oleh Gemini dan tersedia melalui Vertex AI SDK

Sebelum memulai

Untuk memastikan bahwa akun layanan default Compute Engine memiliki izin yang diperlukan untuk mengoptimalkan perintah, minta administrator untuk memberikan peran IAM berikut kepada akun layanan default Compute Engine di project:

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Administrator Anda mungkin juga dapat memberikan izin yang diperlukan kepada akun layanan default Compute Engine melalui peran khusus atau peran bawaan lainnya.

Mengoptimalkan perintah

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

Objek output ini berjenis OptimizeResponse dan memberikan informasi tentang proses pengoptimalan. Bagian terpenting adalah suggested_prompt yang berisi perintah yang dioptimalkan yang dapat Anda gunakan untuk mendapatkan hasil yang lebih baik dari model Anda. Kolom lainnya, terutama applicable_guidelines, berguna untuk memahami alasan dan cara perintah Anda ditingkatkan, yang dapat membantu Anda menulis perintah yang lebih baik di masa mendatang. Berikut contoh outputnya:

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