Dokumen ini menjelaskan cara menggunakan pengoptimal berbasis data untuk mengoptimalkan performa perintah secara otomatis dengan meningkatkan petunjuk sistem untuk serangkaian perintah.
Pengoptimal berbasis data dapat membantu Anda meningkatkan kualitas perintah dengan cepat dalam skala besar, tanpa perlu menulis ulang petunjuk sistem atau perintah satu per satu secara manual. Hal ini sangat berguna jika Anda ingin menggunakan perintah dan instruksi sistem yang ditulis untuk satu model dengan model lain.
Contoh pengoptimalan perintah
Misalnya, untuk mengoptimalkan petunjuk sistem untuk serangkaian perintah yang merujuk pada informasi kontekstual guna menjawab pertanyaan tentang memasak, Anda dapat menggunakan pengoptimal berbasis data. Untuk menyelesaikan tugas ini, Anda harus menyiapkan input yang mirip dengan berikut ini:
Petunjuk sistem
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.
Template perintah
Question: {input_question}
Facts: {input_context}
Contoh perintah
input_question |
input_context |
|---|---|
| Apa saja teknik memasak daging merah dan daging babi yang memaksimalkan rasa dan keempukan sekaligus meminimalkan pembentukan senyawa yang tidak sehat? | Daging merah dan daging babi harus dimasak hingga suhu internal 145 derajat fahrenheit (63 derajat celsius) untuk memastikan keamanannya. Merendam daging dalam bahan asam seperti air lemon atau cuka dapat membantu mengempukkannya dengan memecah serat otot yang keras. Metode memasak dengan panas tinggi seperti memanggang dan menggoreng dengan sedikit minyak dapat menghasilkan warna kecokelatan dan karamelisasi yang lezat, tetapi penting untuk menghindari gosong, yang dapat menghasilkan senyawa berbahaya. |
| Apa saja cara kreatif untuk menambahkan rasa dan nutrisi ke protein shake tanpa menggunakan gula tambahan atau bahan buatan? | Menambahkan sayuran hijau seperti bayam atau kale adalah cara yang bagus untuk meningkatkan nilai gizi shake Anda tanpa mengubah rasanya secara drastis. Menggunakan susu almond tanpa pemanis atau air kelapa sebagai pengganti susu biasa dapat menambahkan rasa manis yang lembut dan meningkatkan lemak sehat atau elektrolit. Tahukah Anda bahwa memblender shake terlalu lama dapat membuatnya menjadi hangat? Agar tetap dingin dan segar, blender dalam waktu singkat dan istirahatkan blender jika diperlukan. |
Petunjuk sistem yang dioptimalkan
As a highly skilled chef with a passion for healthy cooking, you love sharing your knowledge with aspiring chefs. Today, a culinary intern approaches you with a question about healthy cooking. Given the intern's question and some facts, provide a clear, concise, and informative answer that will help the intern excel in their culinary journey.
Cara kerja pengoptimalan
Pengoptimal berbasis data menggunakan parameter berikut:
- Optimization mode: Menentukan hal yang akan dioptimalkan. Nilai ini dapat berupa salah satu dari berikut:
instruction: Mengoptimalkan petunjuk sistem.demonstration: Memilih contoh perintah untuk ditambahkan ke petunjuk sistem sebagai contoh few-shot.instruction_and_demo: Melakukan kedua tindakan di atas.
- Metrik evaluasi: metrik yang digunakan pengoptimal berbasis data untuk mengoptimalkan petunjuk sistem dan/atau memilih contoh perintah.
- Model target: model Google yang digunakan pengoptimal berbasis data untuk mengoptimalkan petunjuk sistem dan memilih contoh perintah.
Saat Anda menjalankan pengoptimal berbasis data, pengoptimal ini akan mengoptimalkan petunjuk sistem berdasarkan pilihan Anda dengan menjalankan tugas pelatihan kustom yang mengevaluasi perintah contoh secara berulang dan menulis ulang petunjuk sistem Anda untuk menemukan versi yang menghasilkan skor evaluasi terbaik untuk model target.
Di akhir tugas, pengoptimal berbasis data akan menghasilkan petunjuk sistem yang dioptimalkan beserta skor evaluasinya.
Metrik evaluasi
Pengoptimal berbasis data menggunakan metrik evaluasi untuk mengoptimalkan petunjuk sistem dan memilih contoh perintah. Anda dapat menggunakan metrik evaluasi standar atau menentukan metrik evaluasi kustom Anda sendiri. Catatan: Semua metrik evaluasi HARUS memiliki properti yang menunjukkan bahwa skor yang lebih tinggi berarti performa yang lebih baik.
Anda dapat menggunakan beberapa metrik sekaligus. Namun, metrik kustom hanya dapat digunakan satu per satu. Jika Anda menggunakan metrik standar dan kustom bersama-sama, hanya satu metrik yang dapat menjadi metrik kustom. Metrik lainnya harus berupa metrik standar.
Untuk mempelajari cara menentukan metrik satu per satu atau dalam kombinasi, lihat EVALUATION_METRIC_PARAMETERS di tab SDK di Membuat template perintah dan petunjuk sistem.
Metrik evaluasi kustom
Metrik kustom berguna saat metrik standar tidak sesuai dengan aplikasi Anda. Perhatikan bahwa pengoptimal berbasis data hanya mendukung satu metrik kustom dalam satu waktu.
Untuk mempelajari cara membuat metrik kustom, lihat Membuat metrik kustom.
Metrik evaluasi standar
Pengoptimal berbasis data mendukung metrik evaluasi kustom, dan juga mendukung metrik evaluasi berikut:
| Jenis metrik | Kasus penggunaan | Metrik | Deskripsi |
|---|---|---|---|
| Berbasis model | Ringkasan | summarization_quality |
Menjelaskan kemampuan model untuk menjawab pertanyaan berdasarkan isi teks yang dijadikan referensi. |
| Question answering | question_answering_correctness* |
Menjelaskan kemampuan model untuk menjawab pertanyaan dengan benar. | |
question_answering_quality |
Menjelaskan kemampuan model untuk menjawab pertanyaan berdasarkan isi teks yang dijadikan referensi. | ||
| Koherensi | coherence |
Menjelaskan kemampuan model untuk memberikan respons yang koheren dan mengukur seberapa baik teks yang dihasilkan mengalir secara logis dan masuk akal. | |
| Keselamatan | safety |
Menjelaskan tingkat keamanan model, yaitu apakah respons berisi teks yang tidak aman. | |
| Kefasihan | fluency |
Menjelaskan penguasaan bahasa model. | |
| Kebenaran | groundedness |
Menjelaskan kemampuan model untuk memberikan atau mereferensikan informasi yang hanya disertakan dalam teks input. | |
| Komet | comet** |
Menjelaskan kemampuan model dalam kualitas terjemahan terhadap referensi. | |
| Metrik X | metricx** |
Menjelaskan kemampuan model dalam kualitas terjemahan. | |
| Berbasis komputasi | Penggunaan alat dan pemanggilan fungsi | tool_call_valid* |
Menjelaskan kemampuan model untuk memprediksi panggilan alat yang valid. |
tool_name_match* |
Menjelaskan kemampuan model untuk memprediksi panggilan alat dengan nama alat yang benar. Hanya panggilan alat pertama yang diperiksa. | ||
tool_parameter_key_match* |
Menjelaskan kemampuan model untuk memprediksi panggilan alat dengan nama parameter yang benar. | ||
tool_parameter_kv_match* |
Menjelaskan kemampuan model untuk memprediksi panggilan alat dengan nama parameter dan nilai kunci yang benar. | ||
| Pembuatan teks umum | bleu* |
Menyimpan hasil algoritma untuk mengevaluasi kualitas prediksi, yang telah diterjemahkan dari satu bahasa alami ke bahasa alami lainnya. Kualitas prediksi dianggap sebagai kesesuaian antara parameter prediksi dan parameter referensinya. | |
exact_match* |
Menghitung apakah parameter prediksi sama persis dengan parameter referensi. | ||
rouge_1* |
Digunakan untuk membandingkan parameter prediksi yang diberikan dengan parameter referensi. | ||
rouge_2* |
|||
rouge_l* |
|||
rouge_l_sum* |
* Jika ingin mengoptimalkan perintah menggunakan evaluasi berbasis komputasi atau question_answering_correctness, Anda harus melakukan salah satu hal berikut:
- Tambahkan variabel yang mewakili respons kebenaran nyata untuk perintah Anda ke template perintah.
Jika Anda tidak memiliki respons kebenaran nyata untuk perintah, tetapi sebelumnya menggunakan perintah dengan model Google dan mencapai hasil yang ditargetkan, Anda dapat menambahkan parameter
source_modelke konfigurasi, bukan menambahkan respons kebenaran nyata. Jika parametersource_modelditetapkan, pengoptimal berbasis data akan menjalankan perintah contoh Anda pada model sumber untuk menghasilkan respons kebenaran nyata bagi Anda.Parameter
source_modelhanya boleh digunakan untuk upgrade atau migrasi model.
** Jika Anda ingin mengoptimalkan perintah menggunakan comet atau metricx, Anda harus memberikan parameter translation_source_field_name ke konfigurasi yang menentukan nama kolom yang sesuai dari teks sumber dalam data. Selain itu, nilai MetricX telah diubah menjadi antara 0 (terburuk) dan 25 (terbaik) untuk mengikuti properti makin besar makin baik.
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:
- Agent Platform User (
roles/aiplatform.user) - Storage Object Admin (
roles/storage.objectAdmin) - Pembaca Artifact Registry (
roles/artifactregistry.reader) -
Jika menggunakan metrik kustom:
- Cloud Run Developer (
roles/run.developer) - Cloud Run Invoker (
roles/run.invoker) - Agen Layanan Agent Platform (
roles/aiplatform.serviceAgent)
- Cloud Run Developer (
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
Anda dapat mengoptimalkan perintah dengan cara berikut:
- menggunakan pengoptimal perintah Gemini Enterprise Agent Platform di Konsol Gemini Enterprise Agent Platform
- menggunakan Agent Platform API
- menjalankan notebook pengoptimal perintah Agent Platform.
Untuk mengoptimalkan perintah, pilih metode yang ingin Anda gunakan, lalu selesaikan langkah-langkah seperti yang dijelaskan secara mendetail di bagian berikut:
- Membuat template perintah dan petunjuk sistem
- Menyiapkan contoh perintah
- Opsional: membuat metrik kustom
- Membuat konfigurasi
- Menjalankan tugas pengoptimalan perintah
- Menganalisis hasil dan melakukan iterasi
Membuat template perintah dan petunjuk sistem
Template perintah menentukan format semua perintah Anda melalui variabel yang dapat diganti. Saat Anda menggunakan template perintah untuk mengoptimalkan perintah, variabel akan diganti dengan data dalam set data perintah.
Variabel template perintah harus memenuhi persyaratan berikut:
- Variabel harus diapit dalam tanda kurung kurawal
- Nama variabel tidak boleh berisi spasi atau tanda hubung
- Variabel yang mewakili input multimodal harus menyertakan string
MIME_TYPEsetelah variabel:@@@MIME_TYPE
Ganti
MIME_TYPEdengan jenis MIME gambar, video, audio, atau dokumen yang didukung oleh model target.
Buat template perintah dan petunjuk sistem menggunakan salah satu metode berikut:
Notebook
Jika Anda ingin menjalankan pengoptimal berbasis data melalui notebook, buat petunjuk sistem dan template perintah dengan melakukan hal berikut:
Di Colab Enterprise, buka notebook pengoptimal perintah Gemini Enterprise Agent Platform.
Buka notebook pengoptimal perintah Gemini Enterprise Agent Platform
Di bagian Create a prompt template and system instructions, lakukan hal berikut:
Di kolom SYSTEM_INSTRUCTION, masukkan petunjuk sistem Anda. Contoh:
Based on the following images and articles respond to the questions.'\n' Be concise, and answer \"I don't know\" if the response cannot be found in the provided articles or images.
Di kolom PROMPT_TEMPLATE, masukkan template perintah Anda. Misalnya:
Article 1:\n\n{article_1}\n\nImage 1:\n\n{image_1} @@@image/jpeg\n\nQuestion: {question}Jika Anda ingin mengoptimalkan perintah menggunakan
question_answering_correctnessatau evaluasi berbasis komputasi, Anda harus melakukan salah satu hal berikut:
Tambahkan variabel
{target}ke template perintah, untuk merepresentasikan respons kebenaran nyata perintah. Contoh:Article 1:\n\n{article_1}\n\nImage 1:\n\n{image_1} @@@image/jpeg\n\nQuestion: {question}\n\n Answer: {target}Jika Anda tidak memiliki respons kebenaran nyata untuk perintah, tetapi sebelumnya Anda menggunakan perintah dengan model Google dan mencapai hasil yang ditargetkan, Anda dapat menambahkan parameter
source_modelke konfigurasi, bukan menambahkan respons kebenaran nyata. Saat parametersource_modelditetapkan, pengoptimal berbasis data akan menjalankan contoh perintah Anda pada model sumber untuk menghasilkan respons kebenaran nyata bagi Anda.
SDK
Jika Anda ingin menjalankan pengoptimal berbasis data melalui SDK tanpa menggunakan notebook, buat file teks untuk template perintah dan petunjuk sistem dengan melakukan hal berikut:
Buat file teks untuk petunjuk sistem Anda.
Dalam file teks, tentukan petunjuk sistem Anda ke file teks. Misalnya:
Based on the following images and articles respond to the questions.'\n' Be concise, and answer \"I don't know\" if the response cannot be found in the provided articles or images.
Buat file teks untuk template perintah Anda.
Dalam file teks, tentukan template perintah yang menyertakan satu atau beberapa variabel. Contoh:
Article 1:\n\n{article_1}\n\nImage 1:\n\n{image_1} @@@image/jpeg\n\nQuestion: {question}Jika Anda ingin mengoptimalkan perintah menggunakan
question_answering_correctnessatau evaluasi berbasis komputasi, Anda harus melakukan salah satu hal berikut:Tambahkan variabel
{target}ke template perintah, untuk merepresentasikan respons kebenaran nyata perintah. Contoh:Article 1:\n\n{article_1}\n\nImage 1:\n\n{image_1} @@@image/jpeg\n\nQuestion: {question}\n\n Answer: {target}Jika Anda tidak memiliki respons kebenaran nyata untuk perintah, tetapi sebelumnya Anda menggunakan perintah dengan model Google dan mencapai hasil yang ditargetkan, Anda dapat menambahkan parameter
source_modelke konfigurasi, bukan menambahkan respons kebenaran nyata. Jika parametersource_modelditetapkan, pengoptimal berbasis data akan menjalankan perintah contoh Anda pada model sumber untuk menghasilkan respons kebenaran nyata bagi Anda.
Menyiapkan contoh perintah
Untuk mendapatkan hasil terbaik dari pengoptimal berbasis data, gunakan 50-100 contoh perintah.
- Alat ini masih dapat efektif dengan hanya 5 contoh perintah.
- Sampel terbaik mencakup contoh saat model target berperforma buruk dan contoh saat model target berperforma baik.
Contoh perintah berisi data yang menggantikan variabel dalam template perintah. Anda dapat menggunakan file JSONL atau CSV untuk menyimpan contoh perintah.
File JSONL
- Buat file JSONL.
Dalam file JSONL, tambahkan data perintah yang menggantikan setiap variabel. Misalnya:
{"article_1": "The marine life …", "image_1": "gs://path_to_image", "Question": "What are some most effective ways to reduce ocean pollution?", "target": "The articles and images don't answer this question."} {"article_1": "During the year …", "image_1": "gs://path_to_image", "Question": "Who was the president in 2023?", "target": "Joe Biden"}
File CSV
- Buat file CSV.
- Di baris pertama, tambahkan variabel dari template perintah Anda.
- Di baris berikut, tambahkan data sampel yang menggantikan setiap variabel.
- Upload file CSV ke bucket Cloud Storage.
Opsional: Membuat metrik kustom
Buat metrik kustom dengan melakukan hal berikut:
Buat file teks bernama
requirements.txt.Dalam file
requirements.txt, tentukan library yang diperlukan untuk fungsi metrik evaluasi kustom. Semua fungsi memerlukan paketfunctions-framework.Misalnya, file
requirements.txtuntuk metrik kustom yang menghitung ROUGE-L akan terlihat mirip dengan berikut ini:functions-framework==3.* rouge-score
Buat file Python bernama
main.py.Dalam file
main.py, tulis fungsi evaluasi kustom Anda. Fungsi ini harus menerima hal berikut:- Permintaan POST HTTP
- Input JSON yang berisi
response, yang merupakan output dari LLM, danreference, yang merupakan respons kebenaran nyata untuk perintah jika disediakan dalam set data perintah.
Misalnya, file
main.pyuntuk metrik kustom yang menghitung ROUGE-L akan terlihat seperti berikut:from typing import Any import json import functions_framework from rouge_score import rouge_scorer # Register an HTTP function with the Functions Framework @functions_framework.http def main(request): request_json = request.get_json(silent=True) if not request_json: raise ValueError('Can not find request json.') """Extract 'response' and 'reference' from the request payload. 'response' represents the model's response, while 'reference' represents the ground truth response.""" response = request_json['response'] reference = request_json['reference'] # Compute ROUGE-L F-measure scorer = rouge_scorer.RougeScorer(['rougeL'], use_stemmer=True) scores = scorer.score(reference, response) final_score = scores['rougeL'].fmeasure # Return the custom score in the response return json.dumps({ # The following key is the CUSTOM_METRIC_NAME that you pass to the job 'custom_accuracy': final_score, # The following key is optional 'explanation': 'ROUGE_L F-measure between reference and response', })Deploy fungsi evaluasi kustom Anda sebagai fungsi Cloud Run dengan menjalankan perintah
gcloud functions deploy:gcloud functions deploy FUNCTION_NAME \ --project PROJECT_ID \ --gen2 \ --memory=2Gb \ --concurrency=6 \ --min-instances 6 \ --region=REGION \ --runtime="python310" \ --source="." \ --entry-point main \ --trigger-http \ --timeout=3600 \ --quiet
Ganti kode berikut:
FUNCTION_NAME: nama untuk metrik evaluasi kustom.PROJECT_ID: project ID Anda.REGION: region tempat Anda ingin men-deploy fungsi. Region ini harus sama dengan region yang digunakan model target.
Membuat konfigurasi
Konfigurasi pengoptimal berbasis data menentukan parameter yang ingin Anda tetapkan untuk tugas pengoptimalan perintah.
Perhatikan bahwa model Gemma tidak memiliki API terkelola di Gemini Enterprise Agent Platform. Untuk
menggunakan model Gemma, Anda harus men-deploy model Gemma yang telah di-tuning dengan instruksi (-it)
di Model Garden atau di komputer lokal Anda terlebih dahulu. Untuk mengetahui informasi selengkapnya tentang deployment di Model Garden, lihat Menggunakan model terbuka Gemma.
Untuk mengetahui informasi selengkapnya tentang cara men-deploy ke komputer lokal, lihat
Menjalankan Gemma dengan Ollama.
Buat konfigurasi menggunakan salah satu opsi berikut:
Notebook
Jika Anda ingin menjalankan pengoptimal berbasis data melalui notebook, buat konfigurasi dengan melakukan hal berikut:
Di Colab Enterprise, buka notebook pengoptimal berbasis data.
Buka notebook pengoptimal perintah Gemini Enterprise Agent Platform
Di bagian Configure project settings, lakukan hal berikut:
- Di kolom PROJECT_ID, masukkan project ID Anda.
- Di kolom LOCATION, masukkan lokasi tempat Anda ingin menjalankan pengoptimal berbasis data.
- Di kolom OUTPUT_PATH, masukkan URI untuk bucket Cloud Storage tempat Anda ingin pengoptimal berbasis data menulis petunjuk sistem yang dioptimalkan dan/atau contoh few-shot.
Contoh,
gs://bucket-name/output-path. - Di kolom INPUT_PATH, masukkan URI untuk contoh perintah di bucket Cloud Storage Anda. Contoh,
gs://bucket-name/sample-prompts.jsonl.
Di bagian Configure optimization settings, lakukan hal berikut:
- Di kolom TARGET_MODEL, masukkan model yang ingin Anda optimalkan promptnya.
- Di kolom THINKING_BUDGET, masukkan anggaran penalaran untuk model target yang ingin Anda optimalkan prompt-nya. Defaultnya adalah -1, yang berarti tidak ada penalaran untuk model non-penalaran dan penalaran otomatis untuk model penalaran seperti Gemini 2.5. Lihat Penalaran untuk mempelajari setelan anggaran manual.
- Di OPTIMIZATION_MODE, masukkan mode pengoptimalan yang ingin Anda gunakan. Harus berupa salah satu dari berikut ini:
instruction: Mengoptimalkan petunjuk sistem.demonstration: Memilih contoh perintah untuk ditambahkan ke petunjuk sistem sebagai contoh few-shot.instruction_and_demo: Melakukan kedua tindakan di atas.
- Di kolom EVAL_METRIC, masukkan metrik evaluasi yang ingin Anda optimalkan untuk perintah Anda.
- Opsional: Di kolom SOURCE_MODEL, masukkan
model Google yang sebelumnya digunakan dengan
perintah dan petunjuk sistem. Saat parameter
source_modelditetapkan, pengoptimal berbasis data akan menjalankan perintah contoh Anda pada model sumber untuk menghasilkan respons kebenaran nyata bagi Anda, untuk metrik evaluasi yang memerlukan respons kebenaran nyata. Jika sebelumnya Anda tidak menjalankan perintah dengan model Google atau tidak mencapai hasil target, tambahkan respons kebenaran nyata ke perintah Anda. Untuk mengetahui informasi selengkapnya, lihat bagian Membuat perintah dan petunjuk sistem dalam dokumen ini.
Opsional: Di bagian Configure advanced optimization settings, Anda juga dapat menambahkan parameter opsional ke konfigurasi Anda.
- Di kolom NUM_INST_OPTIMIZATION_STEPS, masukkan jumlah iterasi yang digunakan pengoptimal berbasis data dalam mode pengoptimalan petunjuk. Durasi akan meningkat secara linear seiring Anda meningkatkan nilai ini. Harus berupa bilangan bulat antara
10dan20. Jika tidak disetel, defaultnya adalah10. - Di kolom NUM_DEMO_OPTIMIZATION_STEPS, masukkan jumlah demonstrasi yang dievaluasi oleh pengoptimal berbasis data.
Digunakan dengan mode pengoptimalan
demonstrationdaninstruction_and_demo. Harus berupa bilangan bulat antara10dan30. Jika tidak disetel, defaultnya adalah10. - Di kolom NUM_DEMO_PER_PROMPT, masukkan jumlah
demonstrasi yang dihasilkan per perintah. Harus berupa bilangan bulat antara
2dan jumlah total contoh perintah - 1. Jika tidak ditetapkan, defaultnya adalah3. - Di kolom TARGET_MODEL_QPS, masukkan kueri per detik (QPS)
yang dikirim pengoptimal berbasis data ke model target.
Runtime akan menurun secara linear seiring Anda meningkatkan nilai ini. Harus berupa float yang bernilai
3.0atau lebih besar, tetapi kurang dari kuota QPS yang Anda miliki pada model target. Jika tidak ditetapkan, defaultnya adalah3.0. - Di kolom SOURCE_MODEL_QPS, masukkan kueri per detik
(QPS) yang dikirim pengoptimal berbasis data ke
model sumber. Harus berupa float yang bernilai
3.0atau lebih besar, tetapi kurang dari kuota QPS yang Anda miliki pada model sumber. Jika tidak ditetapkan, defaultnya adalah3.0. - Di kolom EVAL_QPS, masukkan kueri per detik (QPS)
yang dikirim pengoptimal berbasis data ke layanan evaluasi AI Generatif atau fungsi Cloud Run.
- Untuk metrik berbasis model, harus berupa float yang bernilai
3.0atau lebih besar. Jika tidak ditetapkan, defaultnya adalah3.0. - Untuk metrik kustom, harus berupa float yang bernilai
3.0atau lebih besar. Hal ini menentukan frekuensi pengoptimal berbasis data memanggil fungsi Cloud Run metrik kustom Anda.
- Untuk metrik berbasis model, harus berupa float yang bernilai
- Jika Anda ingin menggunakan lebih dari satu metrik evaluasi, lakukan hal berikut:
- Di kolom EVAL_METRIC_1, masukkan metrik evaluasi yang ingin Anda gunakan.
- Di kolom EVAL_METRIC_1_WEIGHT, masukkan bobot yang Anda inginkan untuk digunakan oleh pengoptimal berbasis data saat menjalankan pengoptimalan.
- Di kolom EVAL_METRIC_2, masukkan metrik evaluasi yang ingin Anda gunakan.
- Di kolom EVAL_METRIC_2_WEIGHT, masukkan bobot yang Anda inginkan untuk digunakan oleh pengoptimal berbasis data saat menjalankan pengoptimalan.
- Di kolom EVAL_METRIC_3, masukkan metrik evaluasi yang ingin Anda gunakan (opsional).
- Di kolom EVAL_METRIC_3_WEIGHT, masukkan bobot yang Anda inginkan untuk digunakan oleh pengoptimal berbasis data saat menjalankan pengoptimalan (opsional).
- Di kolom METRIC_AGGREGATION_TYPE, masukkan bobot yang Anda inginkan untuk digunakan oleh pengoptimal berbasis data saat menjalankan pengoptimalan.
- Di kolom PLACEHOLDER_TO_VALUE, masukkan informasi yang menggantikan variabel apa pun dalam petunjuk sistem. Informasi yang disertakan dalam flag ini tidak dioptimalkan oleh pengoptimal berbasis data.
- Di kolom RESPONSE_MIME_TYPE, masukkan jenis respons MIME yang
digunakan model target. Harus salah satu dari
text/plainatauapplication/json. Jika tidak ditetapkan, defaultnya adalahtext/plain. - Di kolom TARGET_LANGUAGE, masukkan bahasa petunjuk sistem. Jika tidak disetel, defaultnya adalah bahasa Inggris.
SDK
Jika Anda ingin menjalankan pengoptimal berbasis data melalui SDK, buat file JSON dengan parameter yang ingin Anda gunakan untuk mengoptimalkan perintah dengan melakukan hal berikut:
Buat file JSON dengan parameter yang ingin Anda gunakan untuk mengoptimalkan perintah. Setiap file konfigurasi memerlukan parameter berikut. Konfigurasi ini sedikit bervariasi antara
vertexai.types.PromptOptimizerMethod.OPTIMIZATION_TARGET_GEMINI_NANOdanvertexai.types.PromptOptimizerMethod.VAPO.VAPO
{ "project": "PROJECT_ID", "system_instruction": "SYSTEM_INSTRUCTION", "prompt_template": "PROMPT_TEMPLATE", "target_model": "TARGET_MODEL", "thinking_budget": "THINKING_BUDGET", EVALUATION_METRIC_PARAMETERS, "optimization_mode": "OPTIMIZATION_MODE", "input_data_path": "SAMPLE_PROMPT_URI", "output_path": "OUTPUT_URI" }GEMINI_NANO
{ "project": "PROJECT_ID", "system_instruction": "SYSTEM_INSTRUCTION", "prompt_template": "PROMPT_TEMPLATE", "target_model": "TARGET_MODEL", "target_model_endpoint_url": "BASE_URL", EVALUATION_METRIC_PARAMETERS, "optimization_mode": "OPTIMIZATION_MODE", "input_data_path": "SAMPLE_PROMPT_URI", "output_path": "OUTPUT_URI" }Ganti kode berikut:
PROJECT_ID: project ID Anda.SYSTEM_INSTRUCTION: petunjuk sistem yang ingin Anda optimalkan.PROMPT_TEMPLATE: template perintah.TARGET_MODEL: model yang ingin Anda optimalkan prompt-nya. UntukOPTIMIZATION_TARGET_GEMINI_NANO, gunakan model yang telah disesuaikan dengan petunjuk (-it).BASE_URL: URL dasar model yang di-deploy di Model Garden atau di komputer lokal Anda. Misalnyahttps://<var>DEDICATED_ENDPOINT_DNS</var>/v1beta1/projects/<var>PROJECT_NUMBER</var>/locations/<var>LOCATION</var>/endpoints/<var>ENDPOINT_ID</var>atauhttp://localhost:8000/v1. Diperlukan untuk konfigurasiOPTIMIZATION_TARGET_GEMINI_NANO.THINKING_BUDGET: anggaran penalaran untuk model target yang ingin Anda optimalkan perintahnya. Defaultnya adalah -1, yang berarti tidak ada penalaran untuk model non-penalaran dan penalaran otomatis untuk model penalaran seperti Gemini 2.5. Untuk mempelajari setelan anggaran manual, lihat Penalaran. Perhatikan bahwa beberapa model, seperti model Gemma, tidak mendukungthinking_budget.EVALUATION_METRIC_PARAMETERS: parameter yang Anda tentukan bergantung pada jumlah metrik evaluasi yang Anda gunakan, dan apakah metrik Anda standar atau kustom:Metrik standar tunggal
Jika Anda menggunakan satu metrik evaluasi standar, gunakan parameter berikut:
"eval_metric": "EVALUATION_METRIC",
Ganti
EVALUATION_METRICdengan metrik yang ingin Anda optimalkan untuk perintah Anda.Metrik kustom tunggal
Jika Anda menggunakan satu metrik evaluasi kustom, gunakan parameter berikut:
"eval_metric": "custom_metric", "custom_metric_name": "CUSTOM_METRIC_NAME", "custom_metric_cloud_function_name": "FUNCTION_NAME",
Ganti kode berikut:
CUSTOM_METRIC_NAME: nama metrik, seperti yang ditentukan oleh kunci yang sesuai denganfinal_score. Contohnya,custom_accuracy.FUNCTION_NAME: nama fungsi Cloud Run yang sebelumnya Anda deploy.
Beberapa metrik standar
Jika Anda menggunakan beberapa metrik evaluasi standar, gunakan parameter berikut:
"eval_metrics_types": [EVALUATION_METRIC_LIST], "eval_metrics_weights": [EVAL_METRICS_WEIGHTS], "aggregation_type": "METRIC_AGGREGATION_TYPE",
Ganti kode berikut:
EVALUATION_METRIC_LIST: daftar metrik evaluasi. Harus berupa array. Contoh,"bleu", "summarization_quality".EVAL_METRICS_WEIGHTS: bobot untuk setiap metrik. Harus berupa array dan memiliki panjang yang sama denganEVALUATION_METRIC_LIST.METRIC_AGGREGATION_TYPE: jenis agregasi yang digunakan untuk metrik evaluasi. Harus salah satu dariweighted_sumatauweighted_average. Jika tidak ditetapkan, defaultnya adalahweighted_sum.
Beberapa metrik standar & kustom
Jika Anda menggunakan beberapa metrik evaluasi yang mencakup campuran satu metrik kustom dan satu atau beberapa metrik standar, gunakan parameter berikut:
"eval_metrics_types": ["custom_metric", EVALUATION_METRIC_LIST], "eval_metrics_weights": [EVAL_METRICS_WEIGHTS], "aggregation_type": "METRIC_AGGREGATION_TYPE", "custom_metric_name": "CUSTOM_METRIC_NAME", "custom_metric_cloud_function_name": "FUNCTION_NAME",
Ganti kode berikut:
EVALUATION_METRIC_LIST: daftar metrik evaluasi standar. Harus berupa array. Contoh,"bleu", "summarization_quality".EVAL_METRICS_WEIGHTS: bobot untuk setiap metrik. Harus berupa array.METRIC_AGGREGATION_TYPE: jenis agregasi yang digunakan untuk metrik evaluasi. Harus salah satu dariweighted_sumatauweighted_average. Jika tidak ditetapkan, defaultnya adalahweighted_sum.CUSTOM_METRIC_NAME: nama metrik, seperti yang ditentukan oleh kunci yang sesuai denganfinal_score. Misalnya,custom_accuracy.FUNCTION_NAME: nama fungsi Cloud Run yang sebelumnya Anda deploy.
OPTIMIZATION_MODE: mode pengoptimalan. Harus salah satu dari berikut iniinstruction: Mengoptimalkan petunjuk sistem.demonstration: Memilih contoh perintah untuk ditambahkan ke petunjuk sistem sebagai contoh few-shot.instruction_and_demo: Melakukan kedua tindakan di atas.
SAMPLE_PROMPT_URI: URI untuk contoh perintah di bucket Cloud Storage Anda. Contoh,gs://bucket-name/sample-prompts.jsonl.OUTPUT_URI: URI untuk bucket Cloud Storage tempat Anda ingin pengoptimal berbasis data menulis petunjuk sistem yang dioptimalkan dan/atau contoh few-shot. Contoh,gs://bucket-name/output-path.
Anda juga dapat menambahkan parameter opsional ke file konfigurasi.
Parameter opsional dibagi menjadi 5 kategori:
- Parameter proses pengoptimalan. Parameter ini mengontrol keseluruhan proses pengoptimalan, termasuk durasi dan jumlah iterasi pengoptimalan yang dijalankan, yang secara langsung memengaruhi kualitas pengoptimalan.
- Parameter pemilihan dan lokasi model. Parameter ini menentukan model yang digunakan pengoptimal berbasis data dan lokasi penggunaan model tersebut.
- Parameter latensi (QPS). Parameter ini mengontrol QPS, yang memengaruhi kecepatan proses pengoptimalan.
- Lainnya. Parameter lain yang mengontrol struktur dan konten
perintah.
Melihat parameter opsional
"num_steps": NUM_INST_OPTIMIZATION_STEPS, "num_demo_set_candidates": "NUM_DEMO_OPTIMIZATION_STEPS, "demo_set_size": NUM_DEMO_PER_PROMPT, "target_model_location": "TARGET_MODEL_LOCATION", "source_model": "SOURCE_MODEL", "source_model_location": "SOURCE_MODEL_LOCATION", "target_model_qps": TARGET_MODEL_QPS, "eval_qps": EVAL_QPS, "source_model_qps": SOURCE_MODEL_QPS, "response_mime_type": "RESPONSE_MIME_TYPE", "language": "TARGET_LANGUAGE", "placeholder_to_content": "PLACEHOLDER_TO_CONTENT", "data_limit": DATA_LIMIT
Ganti kode berikut:
Parameter proses pengoptimalan:
NUM_INST_OPTIMIZATION_STEPS: jumlah iterasi yang digunakan pengoptimal berbasis data dalam mode pengoptimalan petunjuk. Durasi akan meningkat secara linear seiring Anda meningkatkan nilai ini. Harus berupa bilangan bulat antara10dan20. Jika tidak disetel, defaultnya adalah10.NUM_DEMO_OPTIMIZATION_STEPS: jumlah demonstrasi yang dievaluasi oleh pengoptimal berbasis data. Digunakan dengan mode pengoptimalandemonstrationdaninstruction_and_demo. Harus berupa bilangan bulat antara2dan jumlah total perintah contoh - 1. Jika tidak disetel, defaultnya adalah10.NUM_DEMO_PER_PROMPT: jumlah demonstrasi yang dihasilkan per perintah. Harus berupa bilangan bulat antara3dan6. Jika tidak ditetapkan, defaultnya adalah3.
Parameter pemilihan dan lokasi model:
TARGET_MODEL_LOCATION: lokasi tempat Anda ingin menjalankan model target. Jika tidak ditetapkan, defaultnya adalahus-central1.SOURCE_MODEL: model Google yang sebelumnya digunakan dengan petunjuk dan perintah sistem. Jika parametersource_modelditetapkan, pengoptimal berbasis data akan menjalankan prompt sampel Anda pada model sumber untuk menghasilkan respons kebenaran nyata bagi Anda, untuk metrik evaluasi yang memerlukan respons kebenaran nyata. Jika sebelumnya Anda tidak menjalankan perintah dengan model Google atau tidak mencapai hasil target, tambahkan respons kebenaran nyata ke perintah Anda. Untuk mengetahui informasi selengkapnya, lihat bagian Membuat perintah dan petunjuk sistem dalam dokumen ini.SOURCE_MODEL_LOCATION: lokasi tempat Anda ingin menjalankan model sumber. Jika tidak ditetapkan, defaultnya adalahus-central1.
Parameter latensi (QPS):
TARGET_MODEL_QPS: kueri per detik (QPS) yang dikirim pengoptimal berbasis data ke model target. Runtime akan menurun secara linear saat Anda meningkatkan nilai ini. Harus berupa float yang bernilai3.0atau lebih besar, tetapi kurang dari kuota QPS yang Anda miliki pada model target. Jika tidak disetel, defaultnya adalah3.0.EVAL_QPS: kueri per detik (QPS) yang dikirim pengoptimal berbasis data ke layanan evaluasi AI Generatif atau fungsi Cloud Run.- Untuk metrik berbasis model, harus berupa float yang bernilai
3.0atau lebih besar. Jika tidak ditetapkan, defaultnya adalah3.0. - Untuk metrik kustom, harus berupa float yang bernilai
3.0atau lebih besar. Hal ini menentukan frekuensi pengoptimal berbasis data memanggil fungsi Cloud Run metrik kustom Anda.
- Untuk metrik berbasis model, harus berupa float yang bernilai
SOURCE_MODEL_QPS: kueri per detik (QPS) yang dikirim pengoptimal berbasis data ke model sumber. Harus berupa float yang bernilai3.0atau lebih besar, tetapi kurang dari kuota QPS yang Anda miliki pada model sumber. Jika tidak ditetapkan, defaultnya adalah3.0.
Parameter lainnya:
RESPONSE_MIME_TYPE: jenis respons MIME yang digunakan model target. Harus salah satu daritext/plainatauapplication/json. Jika tidak ditetapkan, defaultnya adalahtext/plain.TARGET_LANGUAGE: bahasa petunjuk sistem. Jika tidak disetel, defaultnya adalah bahasa Inggris.PLACEHOLDER_TO_CONTENT: informasi yang menggantikan variabel apa pun dalam petunjuk sistem. Informasi yang disertakan dalam flag ini tidak dioptimalkan oleh pengoptimal perintah berbasis data.DATA_LIMIT: jumlah data yang digunakan untuk validasi. Runtime meningkat secara linear dengan nilai ini. Harus berupa bilangan bulat antara5dan100. Jika tidak ditetapkan, defaultnya adalah100.
Menjalankan pengoptimal perintah
Jalankan pengoptimal berbasis data menggunakan salah satu opsi berikut:
Notebook
Jalankan pengoptimal berbasis data melalui notebook, dengan melakukan hal berikut:
Di Colab Enterprise, buka notebook pengoptimal perintah Gemini Enterprise Agent Platform.
Di bagian Run prompt optimizer, klik play_circle Run cell.
Pengoptimal berbasis data berjalan.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: lokasi tempat Anda ingin menjalankan pengoptimal perintah Gemini Enterprise Agent Platform.
- PROJECT_ID: Project ID Anda.
- JOB_NAME: nama untuk tugas pengoptimal perintah Gemini Enterprise Agent Platform.
- PATH_TO_CONFIG: URI file konfigurasi di bucket Cloud Storage Anda.
Contoh,
gs://bucket-name/configuration.json.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs
Meminta isi JSON:
{
"displayName": "JOB_NAME",
"jobSpec": {
"workerPoolSpecs": [
{
"machineSpec": {
"machineType": "n1-standard-4"
},
"replicaCount": 1,
"containerSpec": {
"imageUri": "us-docker.pkg.dev/vertex-ai-restricted/builtin-algorithm/apd:preview_v1_0",
"args": ["--config=PATH_TO_CONFIG"]
}
}
]
}
}
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs"
PowerShell
Simpan isi permintaan dalam file bernama request.json,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs" | Select-Object -Expand Content
Responsnya akan terlihat seperti berikut:
SDK
Jalankan pengoptimal berbasis data melalui SDK, dengan menambahkan bagian kode berikut ke Colab atau Notebook Anda.
Lakukan penggantian berikut:
LOCATION: lokasi tempat Anda ingin menjalankan pengoptimal berbasis data.PROJECT_ID: project ID Anda.PROJECT_NUMBER: nomor project Anda, tersedia di konsol Google Cloud .PATH_TO_CONFIG: URI file konfigurasi di Cloud Storage. Contoh,gs://bucket-name/configuration.json.
# Authenticate
from google.colab import auth
auth.authenticate_user(project_id=PROJECT_ID)
# Set the Service Account
SERVICE_ACCOUNT = f"{PROJECT_NUMBER}-compute@developer.gserviceaccount.com"
# Import Agent Platform SDK and Setup
import vertexai
vertexai.init(project=PROJECT_ID, location=LOCATION)
#Create the Agent Platform Client
client = vertexai.Client(project=PROJECT_ID, location=LOCATION)
# Setup the job dictionary
vapo_config = {
'config_path': PATH_TO_CONFIG,
'service_account': SERVICE_ACCOUNT,
'wait_for_completion': True,
}
#Start the Agent Platform Prompt Optimizer
client = client.prompt_optimizer.optimize(method=vertexai.types.PromptOptimizerMethod.VAPO, config=vapo_config)
Untuk menggunakan model Gemma sebagai model target, lakukan perubahan berikut:
nano_config = vertexai.types.PromptOptimizerConfig(
config_path="gs://sample-bucket/config_nano.json",
service_account_project_number=project_number,
wait_for_completion=True
)
# Simpler version
# nano_config = {
# "config_path": "gs://sample-bucket/config_nano.json",
# "service_account": service_account,
# "wait_for_completion": True
# }
logging.basicConfig(encoding='utf-8', level=logging.INFO, force=True)
client.prompt_optimizer.optimize(
method=vertexai.types.PromptOptimizerMethod.OPTIMIZATION_TARGET_GEMINI_NANO,
config=nano_config
)
Setelah pengoptimalan selesai, periksa artefak output di lokasi output yang ditentukan dalam konfigurasi.
Menganalisis hasil dan melakukan iterasi
Setelah Anda menjalankan pengoptimal berbasis data, tinjau progres tugas menggunakan salah satu opsi berikut:
Notebook
Jika Anda ingin melihat hasil pengoptimal berbasis data melalui notebook, lakukan hal berikut:
Buka notebook pengoptimal perintah Gemini Enterprise Agent Platform.
Di bagian Inspect the results, lakukan hal berikut:
Di kolom RESULT_PATH, tambahkan URI bucket Cloud Storage yang Anda konfigurasi untuk menerima hasil penulisan dari pengoptimal berbasis data. Contoh,
gs://bucket-name/output-path.Klik play_circle Run cell.
Konsol
Di konsol Google Cloud , di bagian Agent Platform, buka halaman Training pipelines.
Klik tab Custom jobs. Tugas pelatihan kustom pengoptimal berbasis data akan muncul dalam daftar beserta statusnya.
Setelah tugas selesai, tinjau pengoptimalan dengan melakukan hal berikut:
Di konsol Google Cloud , buka halaman Buckets Cloud Storage:
Klik nama bucket Cloud Storage Anda.
Buka folder yang memiliki nama yang sama dengan mode pengoptimalan yang Anda gunakan untuk mengevaluasi perintah, baik
instructionmaupundemonstration. Jika Anda menggunakan modeinstruction_and_demo, kedua folder akan muncul. Folderinstructionberisi hasil dari pengoptimalan petunjuk sistem, sedangkan folderdemonstrationberisi hasil dari pengoptimalandemonstrationdan petunjuk sistem yang dioptimalkan.Folder ini berisi file berikut:
config.json: konfigurasi lengkap yang digunakan pengoptimal perintah Gemini Enterprise Agent Platform.templates.json: setiap set petunjuk sistem dan/atau contoh few-shot yang dihasilkan oleh pengoptimal berbasis data dan skor evaluasinya.eval_results.json: respons model target untuk setiap contoh perintah untuk setiap set petunjuk sistem yang dihasilkan dan/atau contoh beberapa shot beserta skor evaluasinya.optimized_results.json: petunjuk sistem dan/atau contoh few-shot dengan performa terbaik beserta skor evaluasinya.
Untuk melihat petunjuk sistem yang dioptimalkan, lihat file
optimized_results.json.
Praktik terbaik
Model pratinjau hanya didukung melalui region
globaldan Tugas Kustom Vertex tidak mendukungglobalsebagai region. Oleh karena itu, jangan gunakan VAPO untuk mengoptimalkan model pratinjau sebagai model target.Untuk model GA, pengguna dapat memilih lokasi spesifik per region, seperti
us-central1ataueurope-central2, bukanglobal, untuk mematuhi persyaratan residensi data mereka.
Langkah berikutnya
- Coba notebook SDK pengoptimal perintah Gemini Enterprise Agent Platform.
- Pelajari praktik terbaik responsible AI dan filter keamanan Agent Platform.
- Pelajari lebih lanjut strategi pembuatan perintah.