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 untuk mendapatkan kejelasan dan presisi maksimum, sehingga mengurangi kemungkinan hasil yang tidak diinginkan.

Ada dua cara untuk menggunakan pengoptimal:

  • Pembuatan Petunjuk: Daripada menulis petunjuk sistem yang rumit dari awal, Anda dapat mendeskripsikan sasaran atau tugas Anda dalam bahasa yang sederhana. Pengoptimal kemudian akan membuat serangkaian lengkap petunjuk sistem yang terstruktur dengan baik dan 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 pemberian 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 pada 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..."
}

Mengoptimalkan model yang lebih kecil

Model yang lebih kecil seperti Gemma 3n E4B memiliki kemampuan mengikuti petunjuk yang berbeda dengan model yang lebih besar. Perintah yang berperforma baik untuk model besar mungkin tidak optimal untuk model yang lebih kecil ini. Pengoptimal zero-shot menyediakan mode gemini_nano untuk mengatasi masalah ini. Mode gemini_nano menyempurnakan perintah Anda agar selaras secara khusus dengan karakteristik model yang lebih kecil, yang membantu menghasilkan perintah yang lebih sesuai dengan kemampuan model yang lebih kecil.

Contoh berikut menunjukkan cara mengoptimalkan perintah untuk model yang lebih kecil:

client = vertexai.Client(project=PROJECT_NAME, location='us-central1')
prompt = 'Generate system instructions for analyzing medical articles'

gemini_nano_config = vertexai.types.OptimizerConfig(
    optimization_target=vertexai.types.OptimizeTarget.OPTIMIZATION_TARGET_GEMINI_NANO
)

response = client.prompt_optimizer.optimize_prompt(
    prompt=prompt,
    config=gemini_nano_config
)

# Or more simpler way to call the prompt optimizer
# response = client.prompt_optimizer.optimize_prompt(
#    prompt=prompt,
#    config={optimization_target=vertexai.types.OptimizeTarget.OPTIMIZATION_TARGET_GEMINI_NANO}
# )