Dokumen ini menjelaskan cara menggunakan pengoptimal perintah Vertex AI untuk mengoptimalkan performa perintah secara otomatis dengan meningkatkan petunjuk sistem untuk serangkaian perintah.
Pengoptimal perintah Vertex AI dapat membantu Anda meningkatkan perintah dengan cepat dalam skala besar, tanpa menulis ulang petunjuk sistem atau perintah individual secara manual. Hal ini sangat berguna saat Anda ingin menggunakan petunjuk dan perintah sistem yang ditulis untuk satu model dengan model yang berbeda.
Pengoptimal perintah Vertex AI membantu meningkatkan perintah dengan mengevaluasi respons model terhadap contoh perintah berdasarkan metrik evaluasi yang ditentukan. Untuk menggunakan pengoptimal perintah Vertex AI, Anda harus memiliki hal berikut:
- Serangkaian contoh perintah
- Petunjuk sistem yang digunakan oleh semua contoh perintah Anda
- Template perintah yang mereferensikan contoh perintah Anda
Contoh pengoptimalan perintah
Misalnya, untuk mengoptimalkan petunjuk sistem untuk serangkaian perintah yang mereferensikan informasi kontekstual untuk menjawab pertanyaan tentang memasak, Anda dapat menggunakan pengoptimal perintah Vertex AI. Untuk menyelesaikan tugas ini, Anda akan menyiapkan input yang mirip dengan berikut:
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 untuk memasak daging merah dan babi yang memaksimalkan rasa dan kelembutan 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 keamanan. Merendam daging dalam bahan asam seperti jus lemon atau cuka dapat membantu melembutkannya dengan memecah serat otot yang keras. Metode memasak dengan suhu tinggi seperti memanggang dan membakar di atas wajan dapat menghasilkan warna cokelat dan karamel yang lezat, tetapi penting untuk menghindari gosong, yang dapat menghasilkan senyawa berbahaya. |
Apa saja cara kreatif untuk menambahkan rasa dan nutrisi ke shake protein tanpa menggunakan gula tambahan atau bahan buatan? | Menambahkan sayuran hijau seperti bayam atau kangkung adalah cara yang bagus untuk meningkatkan nilai gizi shake Anda tanpa mengubah rasanya secara drastis. Menggunakan susu almond atau air kelapa tanpa pemanis, bukan susu biasa, dapat menambahkan rasa manis yang halus dan meningkatkan lemak atau elektrolit yang sehat. Tahukah Anda bahwa memblender terlalu lama dapat membuat jus menjadi panas? Agar selalu dingin dan menyegarkan, blender selama waktu yang lebih singkat dan istirahatkan blender jika perlu. |
Cara kerja pengoptimalan
Setelah menyiapkan input, Anda dapat memilih mode pengoptimalan, metrik evaluasi, dan model target.
- Mode pengoptimalan: menentukan apakah pengoptimal perintah Vertex AI mengoptimalkan petunjuk sistem, memilih contoh perintah untuk ditambahkan ke petunjuk sistem sebagai contoh pengambilan gambar singkat, atau keduanya.
- Metrik evaluasi: metrik yang digunakan pengoptimal perintah Vertex AI untuk mengoptimalkan petunjuk sistem dan/atau memilih contoh perintah.
- Model target: Model Google yang dioptimalkan oleh pengoptimal perintah Vertex AI untuk petunjuk sistem dan/atau memilih contoh perintah untuk digunakan.
Saat Anda menjalankan pengoptimal perintah Vertex AI, pengoptimal ini akan mengoptimalkan petunjuk sistem berdasarkan pilihan Anda dengan menjalankan tugas pelatihan kustom yang secara iteratif mengevaluasi perintah sampel dan menulis ulang petunjuk sistem untuk menemukan versi yang menghasilkan skor evaluasi terbaik untuk model target.
Di akhir tugas, pengoptimal perintah Vertex AI akan menghasilkan petunjuk sistem yang dioptimalkan dengan skor evaluasinya.
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.
Model yang didukung
Anda dapat mengoptimalkan petunjuk sistem untuk digunakan dengan model berikut:
Metrik evaluasi yang didukung
Pengoptimal perintah Vertex AI mendukung metrik evaluasi kustom, dan juga mendukung metrik evaluasi berikut:
Jenis metrik | Kasus penggunaan | Metrik | Deskripsi |
---|---|---|---|
Berbasis model | Perangkuman | summarization_quality |
Menjelaskan kemampuan model untuk menjawab pertanyaan dengan memberikan isi teks untuk referensi. |
Proses menjawab pertanyaan | question_answering_correctness * |
Menjelaskan kemampuan model untuk menjawab pertanyaan dengan benar. | |
question_answering_quality |
Menjelaskan kemampuan model untuk menjawab pertanyaan dengan memberikan isi teks untuk referensi. | ||
Koherensi | coherence |
Menjelaskan kemampuan model untuk memberikan respons yang koheren dan mengukur seberapa baik teks yang dihasilkan mengalir secara logis dan masuk akal. | |
Keamanan | safety |
Menjelaskan tingkat keamanan model, yaitu apakah respons berisi teks yang tidak aman. | |
Kefasihan | fluency |
Menjelaskan penguasaan bahasa model. | |
Groundedness | groundedness |
Menjelaskan kemampuan model untuk memberikan atau mereferensikan informasi yang hanya disertakan dalam teks input. | |
Berbasis komputasi | Penggunaan alat dan panggilan 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 korespondensi 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
question_answering_correctness
atau evaluasi berbasis komputasi, Anda harus melakukan
salah satu hal berikut:
- Tambahkan variabel yang mewakili respons kebenaran dasar untuk perintah Anda ke template perintah.
- Jika tidak memiliki respons ground truth untuk perintah, tetapi sebelumnya
menggunakan perintah dengan model Google dan
mencapai hasil yang ditargetkan, Anda dapat menambahkan parameter
source_model
ke konfigurasi, bukan menambahkan respons ground truth. Saat parametersource_model
ditetapkan, Vertex AI akan menjalankan perintah contoh Anda pada model sumber untuk menghasilkan respons kebenaran dasar bagi Anda.
Sebelum memulai
-
Untuk memastikan bahwa akun layanan default Compute Engine memiliki izin yang diperlukan untuk mengoptimalkan perintah, minta administrator untuk memberikan akun layanan default Compute Engine peran IAM berikut pada project:
-
Pengguna Vertex AI (
roles/aiplatform.user
) -
Storage Object Admin (
roles/storage.objectAdmin
) -
Pembaca Artifact Registry (
roles/artifactregistry.reader
)
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.
-
Pengguna Vertex AI (
Tabel berikut menyertakan model yang memerlukan kuota kueri per menit (QPM) dan QPM yang direkomendasikan untuk setiap model. Jika Anda memiliki kuota QPM yang lebih rendah dari yang direkomendasikan, pengoptimal perintah Vertex AI mungkin berjalan lebih lambat dari yang diharapkan. Jika Anda mengonfigurasi pengoptimal perintah Vertex AI dengan QPM yang lebih tinggi dari QPM yang dapat Anda akses, tugas akan gagal. Jika tidak memiliki cukup kuota untuk menjalankan pengoptimal perintah Vertex AI, Anda dapat meminta peningkatan kuota.
Model Deskripsi Kuota QPM minimum Kuota QPM yang direkomendasikan Model target Model yang ingin Anda optimalkan untuk perintah. 200 QPM 500+ QPM gemini-1.5-pro-001
Model yang digunakan pengoptimal perintah Vertex AI untuk menulis ulang dan mengevaluasi perintah. 200 QPM 500+ QPM
Mengoptimalkan perintah
Anda dapat mengoptimalkan perintah dengan menjalankan notebook pengoptimal perintah Vertex AI, atau dengan menggunakan Vertex AI API. Untuk mengoptimalkan perintah, pilih metode yang ingin Anda gunakan untuk menjalankan pengoptimal perintah Vertex AI, lalu selesaikan langkah-langkah seperti yang dijelaskan secara mendetail di bagian berikut:
- Membuat template perintah dan petunjuk sistem
- Menyiapkan contoh perintah
- Memilih metrik evaluasi
- 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
Variabel yang mewakili input multimodal harus menyertakan string
MIME_TYPE
setelah variabel:@@@MIME_TYPE
Ganti
MIME_TYPE
dengan 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 perintah Vertex AI melalui notebook, buat petunjuk sistem dan template perintah dengan melakukan hal berikut:
Di Colab Enterprise, buka notebook pengoptimal prompt Vertex AI.
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 ingin mengoptimalkan perintah menggunakan
question_answering_correctness
atau evaluasi berbasis komputasi, Anda harus melakukan salah satu hal berikut:
Tambahkan variabel
{target}
ke template perintah, untuk merepresentasikan respons kebenaran dasar 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 tidak memiliki respons ground truth untuk perintah, tetapi sebelumnya menggunakan perintah dengan model Google dan mencapai hasil yang ditargetkan, Anda dapat menambahkan parameter
source_model
ke konfigurasi, bukan menambahkan respons ground truth. Saat parametersource_model
ditetapkan, pengoptimal perintah Vertex AI akan menjalankan perintah contoh Anda pada model sumber untuk menghasilkan respons kebenaran dasar bagi Anda.
SDK
Jika Anda ingin menjalankan pengoptimal perintah Vertex AI melalui SDK tanpa menggunakan notebook, buat file teks untuk template perintah dan petunjuk sistem dengan melakukan tindakan 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 ingin mengoptimalkan perintah menggunakan
question_answering_correctness
atau evaluasi berbasis komputasi, Anda harus melakukan salah satu hal berikut:Tambahkan variabel
{target}
ke template perintah, untuk merepresentasikan respons kebenaran dasar 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 tidak memiliki respons ground truth untuk perintah, tetapi sebelumnya menggunakan perintah dengan model Google dan mencapai hasil yang ditargetkan, Anda dapat menambahkan parameter
source_model
ke konfigurasi, bukan menambahkan respons ground truth. Saat parametersource_model
ditetapkan, pengoptimal perintah Vertex AI akan menjalankan perintah contoh Anda pada model sumber untuk menghasilkan respons kebenaran dasar bagi Anda.
Menyiapkan contoh perintah
Untuk mendapatkan hasil terbaik dari pengoptimal perintah Vertex AI, gunakan 50-100 contoh perintah.
- Alat ini masih dapat efektif dengan hanya 5 contoh perintah.
- Contoh terbaik mencakup contoh saat model target berperforma buruk.
Perintah contoh 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.
Memilih metrik evaluasi
Pengoptimal perintah Vertex AI menggunakan metrik evaluasi untuk mengoptimalkan petunjuk sistem dan memilih contoh perintah.
Pilih dari salah satu
metrik evaluasi yang didukung, atau tentukan
metrik evaluasi kustom Anda sendiri. Metrik kustom berguna saat metrik standar tidak sesuai dengan aplikasi Anda. Anda dapat mengoptimalkan perintah menggunakan beberapa metrik.
Namun, pengoptimal perintah Vertex AI hanya mendukung satu metrik kustom
dalam satu waktu. Misalnya, Anda dapat menjalankan pengoptimal perintah Vertex AI
menggunakan metrik kustom dan metrik bleu
, atau dengan metrik bleu
, rouge
, dan
summarization_quality
, tetapi Anda tidak dapat menjalankan pengoptimal perintah Vertex AI
dengan beberapa metrik kustom sekaligus.
Buat metrik kustom dengan melakukan tindakan 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.txt
untuk metrik kustom yang menghitung ROUGE-L akan terlihat mirip dengan yang 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, dantarget
, yang merupakan respons kebenaran nyata untuk perintah.
Misalnya, file
main.py
untuk metrik kustom yang menghitung ROUGE-L akan terlihat mirip dengan yang berikut ini: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 'target' from the request payload. 'response' represents the model's response, while 'target' represents the ground truth response.""" response = request_json['response'] reference = request_json['target'] # 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.
Membuat konfigurasi
Konfigurasi pengoptimal perintah Vertex AI menentukan parameter yang ingin Anda tetapkan untuk tugas pengoptimalan perintah, termasuk hal berikut:
- Mode pengoptimalan: menentukan apakah pengoptimal perintah Vertex AI mengoptimalkan petunjuk sistem, memilih contoh perintah untuk ditambahkan ke petunjuk sistem sebagai contoh pengambilan gambar singkat, atau keduanya.
- Metrik evaluasi: metrik yang digunakan pengoptimal perintah Vertex AI untuk mengoptimalkan petunjuk sistem dan/atau memilih contoh perintah.
- Model target: Model Google yang dioptimalkan oleh pengoptimal perintah Vertex AI untuk petunjuk sistem dan/atau memilih contoh perintah untuk digunakan.
Buat konfigurasi menggunakan salah satu opsi berikut:
Notebook
Jika Anda ingin menjalankan pengoptimal perintah Vertex AI melalui notebook, buat konfigurasi dengan melakukan tindakan berikut:
Di Colab Enterprise, buka notebook pengoptimal prompt Vertex AI.
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 perintah Vertex AI.
- Di kolom OUTPUT_PATH, masukkan URI untuk bucket Cloud Storage
tempat Anda ingin pengoptimal perintah Vertex AI
menulis petunjuk sistem yang dioptimalkan dan/atau beberapa contoh pengambilan.
Contoh,
gs://bucket-name/output-path
. - Di kolom INPUT_PATH, masukkan URI untuk perintah
contoh 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 perintah untuk digunakan.
- Di OPTIMIZATION_MODE, masukkan mode pengoptimalan yang ingin Anda
gunakan. Harus salah satu dari
instruction
,demonstration
, atauinstruction_and_demo
. - Di kolom EVAL_METRIC, masukkan metrik evaluasi yang ingin Anda optimalkan perintahnya.
- Opsional: Di kolom SOURCE_MODEL, masukkan
model Google yang digunakan untuk petunjuk
dan perintah sistem sebelumnya. Saat
parameter
source_model
ditetapkan, pengoptimal perintah Vertex AI 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 ground truth ke perintah Anda. Untuk 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.
- Di kolom NUM_INST_OPTIMIZATION_STEPS, masukkan jumlah
iterasi yang digunakan pengoptimal perintah Vertex AI dalam
mode pengoptimalan petunjuk. Runtime meningkat secara linear saat Anda
meningkatkan nilai ini. Harus berupa bilangan bulat antara
10
dan20
. Jika tidak ditetapkan, defaultnya adalah10
. - Di kolom NUM_TEMPLATES_PER_STEP, masukkan jumlah petunjuk
sistem yang dihasilkan dan dievaluasi oleh pengoptimal perintah Vertex AI. Digunakan dengan mode pengoptimalan
instruction
daninstruction_and_demo
. Harus berupa bilangan bulat antara1
dan4
. Jika tidak ditetapkan, defaultnya adalah2
. - Di kolom NUM_DEMO_OPTIMIZATION_STEPS, masukkan jumlah
demonstrasi yang dievaluasi pengoptimal perintah Vertex AI.
Digunakan dengan mode pengoptimalan
demonstration
daninstruction_and_demo
. Harus berupa bilangan bulat antara10
dan30
. Jika tidak disetel, defaultnya adalah10
. - Di kolom NUM_DEMO_PER_PROMPT, masukkan jumlah
demonstrasi yang dihasilkan per perintah. Harus berupa bilangan bulat antara
3
dan6
. Jika tidak ditetapkan, defaultnya adalah3
. - Di kolom TARGET_MODEL_QPS, masukkan kueri per detik (QPS)
yang dikirim pengoptimal perintah Vertex AI ke model target.
Runtime menurun secara linear saat Anda meningkatkan nilai ini. Harus berupa
float yang berukuran
3.0
atau 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 perintah Vertex AI ke
model sumber. Harus berupa float yang bernilai
3.0
atau lebih besar, tetapi kurang dari kuota QPS yang Anda miliki di model sumber. Jika tidak ditetapkan, defaultnya adalah3.0
. - Di kolom EVAL_QPS, masukkan kueri per detik (QPS)
yang dikirim pengoptimal perintah Vertex AI ke model
evaluasi,
gemini-1.5-pro
.- Untuk metrik berbasis model, harus berupa float yang bernilai
3.0
atau lebih besar, tetapi kurang dari kuota yang Anda miliki untukgemini-1.5-pro
. Jika tidak ditetapkan, defaultnya adalah3.0
. - Untuk metrik kustom, harus berupa float yang bernilai
3.0
atau lebih besar. Hal ini menentukan kecepatan pengoptimal perintah Vertex AI 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 ingin Anda gunakan pengoptimal perintah Vertex AI saat menjalankan pengoptimalan.
- Di kolom EVAL_METRIC_2, masukkan metrik evaluasi yang ingin Anda gunakan.
- Di kolom EVAL_METRIC_2_WEIGHT, masukkan bobot yang ingin Anda gunakan pengoptimal perintah Vertex AI saat menjalankan pengoptimalan.
- Di kolom EVAL_METRIC_3, masukkan metrik penilaian yang ingin Anda gunakan secara opsional.
- Di kolom EVAL_METRIC_3_WEIGHT, secara opsional masukkan
- Di kolom METRIC_AGGREGATION_TYPE, masukkan bobot yang ingin Anda gunakan pengoptimal perintah Vertex AI saat menjalankan pengoptimalan.
- Di kolom PLACEHOLDER_TO_VALUE, masukkan informasi yang menggantikan variabel apa pun dalam petunjuk sistem. Informasi yang disertakan dalam tanda ini tidak dioptimalkan oleh pengoptimal prompt Vertex AI.
- Di kolom RESPONSE_MIME_TYPE, masukkan
jenis respons MIME
yang digunakan model target. Harus salah satu dari
text/plain
atauapplication/json
. Jika tidak ditetapkan, defaultnya adalahtext/plain
. - Di kolom TARGET_LANGUAGE, masukkan bahasa petunjuk sistem. Jika tidak ditetapkan, defaultnya adalah bahasa Inggris.
SDK
Jika Anda ingin menjalankan pengoptimal perintah Vertex AI 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:
{ "project": "PROJECT_ID", "system_instruction_path": "SYSTEM_INSTRUCTION_PATH", "prompt_template_path": "PROMPT_TEMPLATE_PATH", "target_model": "TARGET_MODEL", 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_PATH
: URI untuk petunjuk sistem di bucket Cloud Storage Anda. Contoh,gs://bucket-name/system-instruction.txt
.PROMPT_TEMPLATE
: URI untuk template perintah di bucket Cloud Storage Anda. Sebagai contoh,gs://bucket-name/prompt-template.txt
TARGET_MODEL
: model yang ingin Anda optimalkan perintah untuk digunakan.EVALUATION_METRIC_PARAMETERS
: parameter yang Anda tentukan bergantung pada jumlah metrik evaluasi yang Anda gunakan, dan apakah metrik Anda standar atau kustom:Satu metrik standar
Jika Anda menggunakan satu metrik evaluasi yang didukung, gunakan parameter berikut:
"eval_metric": "EVALUATION_METRIC",
Ganti
EVALUATION_METRIC
dengan metrik evaluasi yang ingin Anda optimalkan untuk perintah.Satu metrik kustom
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 yang didukung, 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.METRIC_AGGREGATION_TYPE
: jenis agregasi yang digunakan untuk metrik evaluasi. Harus salah satu dariweighted_sum
atauweighted_average
. Jika tidak ditetapkan, defaultnya adalahweighted_sum
.
Beberapa metrik standar & kustom
Jika Anda menggunakan beberapa metrik evaluasi yang mencakup kombinasi metrik kustom dan 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_sum
atauweighted_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 dariinstruction
,demonstration
, atauinstruction_and_demo
.SAMPLE_PROMPT_URI
: URI untuk perintah contoh di bucket Cloud Storage Anda. Contoh,gs://bucket-name/sample-prompts.jsonl
.OUTPUT_URI
: URI untuk bucket Cloud Storage tempat Anda ingin pengoptimal perintah Vertex AI menulis petunjuk sistem yang dioptimalkan dan/atau beberapa contoh pengambilan. 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 proses pengoptimalan secara keseluruhan, termasuk durasi dan jumlah iterasi pengoptimalan yang dijalankan, yang secara langsung memengaruhi kualitas pengoptimalan.
- Pemilihan model dan parameter lokasi. Parameter ini menentukan model yang digunakan pengoptimal perintah Vertex AI dan lokasi tempat model tersebut digunakan.
- 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_template_eval_per_step": NUM_TEMPLATES_PER_STEP, "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 perintah Vertex AI dalam mode pengoptimalan petunjuk. Runtime meningkat secara linear saat Anda meningkatkan nilai ini. Harus berupa bilangan bulat antara10
dan20
. Jika tidak ditetapkan, defaultnya adalah10
.NUM_TEMPLATES_PER_STEP
: jumlah petunjuk sistem yang dihasilkan dan dievaluasi oleh pengoptimal perintah Vertex AI. Digunakan dengan mode pengoptimalaninstruction
daninstruction_and_demo
. Harus berupa bilangan bulat antara1
dan4
. Jika tidak ditetapkan, defaultnya adalah2
.NUM_DEMO_OPTIMIZATION_STEPS
: jumlah demonstrasi yang dievaluasi oleh pengoptimal perintah Vertex AI. Digunakan dengan mode pengoptimalandemonstration
daninstruction_and_demo
. Harus berupa bilangan bulat antara10
dan30
. Jika tidak ditetapkan, defaultnya adalah10
.NUM_DEMO_PER_PROMPT
: jumlah demonstrasi yang dihasilkan per perintah. Harus berupa bilangan bulat antara3
dan6
. Jika tidak ditetapkan, defaultnya adalah3
.
Pemilihan model dan parameter lokasi:
TARGET_MODEL_LOCATION
: Lokasi tempat Anda ingin menjalankan model target. Jika tidak ditetapkan, defaultnya adalahus-central1
.SOURCE_MODEL
: Model Google yang sebelumnya digunakan untuk petunjuk dan perintah sistem. Saat parametersource_model
ditetapkan, Vertex AI akan menjalankan perintah 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 dasar ke perintah Anda. Untuk 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 perintah Vertex AI ke model target. Runtime menurun secara linear saat Anda meningkatkan nilai ini. Harus berupa float yang bernilai3.0
atau 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 perintah Vertex AI ke model evaluasi,gemini-1.5-pro
.- Untuk metrik berbasis model, harus berupa float yang bernilai
3.0
atau lebih besar, tetapi kurang dari kuota yang Anda miliki untukgemini-1.5-pro
. Jika tidak ditetapkan, defaultnya adalah3.0
. - Untuk metrik kustom, harus berupa float yang bernilai
3.0
atau lebih besar. Hal ini menentukan kecepatan pengoptimal perintah Vertex AI 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 perintah Vertex AI ke model sumber. Harus berupa float yang bernilai3.0
atau lebih besar, tetapi kurang dari kuota QPS yang Anda miliki di model sumber. Jika tidak ditetapkan, defaultnya adalah3.0
.
Parameter lainnya:
RESPONSE_MIME_TYPE
: Jenis respons MIME yang digunakan model target. Harus salah satu daritext/plain
atauapplication/json
. Jika tidak ditetapkan, defaultnya adalahtext/plain
.TARGET_LANGUAGE
: bahasa petunjuk sistem. Jika tidak ditetapkan, defaultnya adalah bahasa Inggris.PLACEHOLDER_TO_CONTENT
: informasi yang mengganti variabel apa pun dalam petunjuk sistem. Informasi yang disertakan dalam tanda ini tidak dioptimalkan oleh pengoptimal prompt Vertex AI.DATA_LIMIT
: jumlah data yang digunakan untuk validasi. Runtime meningkat secara linear dengan nilai ini. Harus berupa bilangan bulat antara5
dan100
. Jika tidak ditetapkan, defaultnya adalah100
.
Menjalankan pengoptimal perintah
Jalankan pengoptimal perintah Vertex AI menggunakan salah satu opsi berikut:
Notebook
Jalankan pengoptimal perintah Vertex AI melalui notebook, dengan melakukan hal berikut:
Di Colab Enterprise, buka notebook pengoptimal prompt Vertex AI.
Di bagian Jalankan pengoptimal perintah, klik play_circle Jalankan sel.
Pengoptimal perintah Vertex AI berjalan.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: lokasi tempat Anda ingin menjalankan pengoptimal prompt Vertex AI.
- PROJECT_ID: Project ID Anda.
- JOB_NAME: nama untuk tugas pengoptimal perintah Vertex AI.
- 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
Isi JSON permintaan:
{ "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:
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Menganalisis hasil dan melakukan iterasi
Setelah Anda menjalankan pengoptimal perintah Vertex AI, tinjau progres tugas menggunakan salah satu opsi berikut:
Notebook
Jika Anda ingin melihat hasil pengoptimal perintah Vertex AI melalui notebook, lakukan tindakan berikut:
Di bagian Periksa hasil, lakukan hal berikut:
Di kolom RESULT_PATH, tambahkan URI bucket Cloud Storage yang Anda konfigurasikan untuk pengoptimal perintah Vertex AI agar menulis hasil. Contoh,
gs://bucket-name/output-path
.Klik play_circle Run cell.
Konsol
Di konsol Google Cloud, di bagian Vertex AI, buka halaman Training pipelines.
Klik tab Tugas kustom. Tugas pelatihan kustom pengoptimal perintah Vertex AI akan muncul dalam daftar beserta statusnya.
Setelah tugas selesai, tinjau pengoptimalan dengan melakukan tindakan berikut:
Di konsol Google Cloud, buka halaman Bucket 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
instruction
maupundemonstration
. Jika Anda menggunakan modeinstruction_and_demo
, kedua folder akan muncul. Folderinstruction
berisi hasil dari pengoptimalan petunjuk sistem, sedangkan folderdemonstration
berisi hasil dari pengoptimalandemonstration
dan petunjuk sistem yang dioptimalkan.Folder ini berisi file berikut:
config.json
: konfigurasi lengkap yang digunakan pengoptimal perintah Vertex AI.templates.json
: setiap kumpulan petunjuk sistem dan/atau beberapa contoh yang dihasilkan pengoptimal perintah Vertex AI dan skor evaluasinya.eval_results.json
: respons model target untuk setiap perintah contoh untuk setiap kumpulan petunjuk sistem yang dihasilkan dan/atau beberapa contoh pengambilan gambar dan skor evaluasinya.optimized_results.json
: petunjuk sistem yang berperforma terbaik dan/atau contoh few-shot serta skor evaluasinya.
Untuk melihat petunjuk sistem yang dioptimalkan, lihat file
optimized_results.json
.
Langkah selanjutnya
- Coba notebook SDK pengoptimal perintah Vertex AI.
- Pelajari praktik terbaik responsible AI dan filter keamanan Vertex AI.
- Pelajari lebih lanjut strategi perintah.
- Pelajari contoh perintah di Galeri perintah.