本文說明如何使用 Vertex AI 提示最佳化工具,透過改善一組提示的系統指令,自動提升提示效能。
Vertex AI 提示最佳化工具可協助您快速大規模改善提示,不必手動重寫系統指令或個別提示。如果您想使用為某個模型編寫的系統指令和提示,但要搭配其他模型,這項功能就特別實用。
Vertex AI 提示最佳化工具會根據指定的評估指標,評估模型對範例提示的回應,藉此改善提示。如要使用 Vertex AI 提示最佳化工具,您必須具備下列條件:
- 一組範例提示
- 所有範例提示都會使用的系統指令
- 參照範例提示的提示範本
支援的模型
提示最佳化工具支援所有 Gemini 模型。
提示最佳化範例
舉例來說,如要針對一組參照情境資訊的提示最佳化系統指令,以回答有關烹飪的問題,可以使用 Vertex AI 提示最佳化工具。如要完成這項工作,請準備類似下列內容的輸入內容:
系統指示
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.
提示範本
Question: {input_question} Facts: {input_context}
提示範例
input_question |
input_context |
---|---|
烹調紅肉和豬肉時,有哪些技巧可以盡量提升風味和嫩度,同時減少形成不健康的化合物? | 為確保安全,紅肉和豬肉的內部溫度應烹調至華氏 145 度 (攝氏 63 度)。將肉類浸泡在檸檬汁或醋等酸性食材中,有助於分解堅韌的肌肉纖維,使肉質軟化。燒烤和鍋煎等高溫烹調方式可產生美味的焦糖化效果,但請務必避免燒焦,因為燒焦會產生有害化合物。 |
有哪些創意方法可以為高蛋白奶昔增添風味和營養, 但又不使用添加糖或人工成分? | 加入菠菜或羽衣甘藍等綠葉蔬菜,可大幅提升奶昔的營養價值,但不會大幅改變風味。使用無糖杏仁奶或椰子水取代一般牛奶,可分別增添淡淡的甜味,以及補充健康脂肪或電解質。你知道嗎?過度攪打奶昔會產生熱能,為保持冰涼清爽,請縮短攪拌時間,並視需要讓果汁機休息一下。 |
最佳化系統指令
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.
最佳化功能的運作方式
Vertex AI 提示最佳化工具會採用下列參數:
- 最佳化模式:指定 Vertex AI 提示最佳化工具是否要最佳化系統指令、選取要新增至系統指令的範例提示做為少樣本範例,或兩者皆是。
- 評估指標:Vertex AI 提示最佳化工具用來最佳化系統指令和/或選取範例提示的指標。
- 目標模型:Vertex AI 提示最佳化工具會針對這個Google 模型最佳化系統指令,並選取範例提示。
執行 Vertex AI 提示最佳化工具時,系統會根據您的選擇執行自訂訓練工作,藉此最佳化系統指令。這項工具會反覆評估範例提示,並重新編寫系統指令,找出能為目標模型產生最佳評估分數的版本。
作業完成後,Vertex AI 提示最佳化工具會輸出最佳化的系統指令,並附上評估分數。
評估指標
Vertex AI 提示最佳化工具會使用評估指標,最佳化系統指令並選取範例提示。您可以使用標準評估指標,也可以定義自己的自訂評估指標。
您可以一次使用多個指標。不過,自訂指標一次只能使用一個。如果同時使用標準和自訂指標,則只能有一個自訂指標。其他指標必須是標準指標。
如要瞭解如何一次指定一項指標或多項指標,請參閱「建立提示範本和系統指令」的「SDK」分頁標籤中的EVALUATION_METRIC_PARAMETERS。
自訂評估指標
如果標準指標不適合您的應用程式,自訂指標就很有用。 請注意,Vertex AI 提示最佳化工具一次僅支援一個自訂指標。
如要瞭解如何建立自訂指標,請參閱「建立自訂指標」。
標準評估指標
Vertex AI 提示最佳化工具支援自訂評估指標,以及下列評估指標:
指標類型 | 用途 | 指標 | 說明 |
---|---|---|---|
以模型為基礎 | 摘要 | summarization_quality |
說明模型根據參考文字回答問題的能力。 |
回答問題 | question_answering_correctness * |
說明模型正確回答問題的能力。 | |
question_answering_quality |
說明模型根據參考文字回答問題的能力。 | ||
Coherence | coherence |
說明模型提供連貫回覆的能力,並衡量生成的文字是否符合邏輯且合理。 | |
安全 | safety |
說明模型的安全程度,也就是回覆是否含有不安全的文字。 | |
流利程度 | fluency |
說明模型的語言通順程度。 | |
依據 | groundedness |
說明模型僅憑輸入文字提供或參考資訊的能力。 | |
以運算量為準 | 工具使用和函式呼叫 | tool_call_valid * |
說明模型預測有效工具呼叫的能力。 |
tool_name_match * |
說明模型預測工具呼叫的能力,以及是否能提供正確的工具名稱。系統只會檢查第一個工具呼叫。 | ||
tool_parameter_key_match * |
說明模型預測工具呼叫的能力,以及正確的參數名稱。 | ||
tool_parameter_kv_match * |
說明模型預測工具呼叫的能力,包括正確的參數名稱和鍵值。 | ||
生成一般文本 | bleu * |
這個物件會保存演算法的結果,用於評估預測品質,而預測內容已從一種自然語言翻譯成另一種自然語言。預測品質是指預測參數與參照參數的對應程度。 | |
exact_match * |
計算預測參數是否與參考參數完全相符。 | ||
rouge_1 * |
用於比較提供的預測參數與參考參數。 | ||
rouge_2 * |
|||
rouge_l * |
|||
rouge_l_sum * |
* 如要使用 question_answering_correctness
或以運算為基礎的評估方式,最佳化提示,請採取下列任一做法:
- 在提示範本中新增變數,代表提示的基準真相回應。
- 如果沒有提示的基準真相回覆,但先前使用Google 模型時,提示已達到目標結果,則可以將
source_model
參數加到設定中,而不必新增基準真相回覆。設定source_model
參數後,Vertex AI 會在來源模型上執行範例提示,為您生成真值回應。
事前準備
為確保 Compute Engine 預設服務帳戶具備最佳化提示所需的權限,請要求管理員授予Compute Engine 預設服務帳戶專案的下列 IAM 角色:
-
Vertex AI 使用者 (
roles/aiplatform.user
) -
Storage 物件管理員 (
roles/storage.objectAdmin
) -
Artifact Registry 讀取者 (
roles/artifactregistry.reader
)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
管理員或許也能透過自訂角色或其他預先定義的角色,將必要權限授予 Compute Engine 預設服務帳戶。
將提示最佳化
您可以執行 Vertex AI 提示最佳化工具筆記本,或使用 Vertex AI API,來最佳化提示。如要最佳化提示,請選擇要用來執行 Vertex AI 提示最佳化工具的方法,然後按照下列章節的詳細說明完成步驟:
建立提示範本和系統指令
提示範本會透過可替換的變數,定義所有提示的格式。使用提示範本最佳化提示時,系統會以提示資料集中的資料取代變數。
提示範本變數必須符合下列規定:
- 變數必須以大括號括住
- 變數名稱不得包含空格
代表多模態輸入內容的變數必須在變數後方加入
MIME_TYPE
字串:@@@MIME_TYPE
使用下列任一方法建立提示範本和系統指令:
筆記本
如要透過筆記本執行 Vertex AI 提示最佳化工具,請按照下列步驟建立系統指令和提示範本:
在 Colab Enterprise 中,開啟 Vertex AI 提示最佳化工具筆記本。
在「建立提示範本和系統指示」部分,執行下列操作:
在「SYSTEM_INSTRUCTION」SYSTEM_INSTRUCTION欄位中,輸入系統指令。 例如:
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.
在 PROMPT_TEMPLATE 欄位中,輸入提示範本。例如:
Article 1:\n\n{article_1}\n\nImage 1:\n\n{image_1} @@@image/jpeg\n\nQuestion: {question}
如要使用
question_answering_correctness
或以運算為基礎的評估方式,最佳化提示,請執行下列任一操作:
SDK
如要透過 SDK 執行 Vertex AI 提示最佳化工具,而不使用筆記本,請按照下列步驟建立提示範本和系統指令的文字檔:
建立系統指令的文字檔。
在文字檔中,定義系統指令。例如:
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.
為提示範本建立文字檔。
在文字檔案中,定義包含一或多個變數的提示範本。例如:
Article 1:\n\n{article_1}\n\nImage 1:\n\n{image_1} @@@image/jpeg\n\nQuestion: {question}
如要使用
question_answering_correctness
或以運算為基礎的評估方式,最佳化提示,請執行下列任一操作:
準備範例提示
如要充分發揮 Vertex AI 提示最佳化工具的效用,請使用 50 到 100 個提示範例。
- 即使只有 5 個範例提示,這項工具仍能發揮效用。
- 最佳樣本包括目標模型效能不佳的範例。
範例提示包含的資料會取代提示範本中的變數。您可以使用 JSONL 或 CSV 檔案儲存範例提示。
JSONL 檔案
- 建立 JSONL 檔案。
在 JSONL 檔案中,加入取代每個變數的提示資料。例如:
{"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"}
CSV 檔案
- 建立 CSV 檔案。
- 在第一列中,新增提示範本中的變數。
- 在後續資料列中,加入取代每個變數的範例資料。
- 將 CSV 檔案上傳至 Cloud Storage 值區。
選用:建立自訂指標
如要建立自訂指標,請按照下列步驟操作:
建立名為
requirements.txt
的文字檔。在
requirements.txt
檔案中,定義自訂評估指標函式所需的程式庫。所有函式都需要functions-framework
套件。舉例來說,計算 ROUGE-L 的自訂指標
requirements.txt
檔案會類似於下列內容:functions-framework==3.* rouge-score
建立名為
main.py
的 Python 檔案。在
main.py
檔案中,編寫自訂評估函式。這個函式必須接受下列項目:- HTTP POST 要求
- JSON 輸入內容,包含 LLM 的輸出內容
response
,以及提示的基準真相回應target
。
舉例來說,計算 ROUGE-L 的自訂指標
main.py
檔案看起來會類似下列內容: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', })
執行
gcloud functions deploy
指令,將自訂評估函式部署為 Cloud Run 函式: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
更改下列內容:
FUNCTION_NAME
:自訂評估指標的名稱。PROJECT_ID
:您的專案 ID。REGION
:要部署函式的區域。
建立設定
Vertex AI 提示最佳化工具設定會指定要為提示最佳化工作設定的參數。
請使用下列任一方式建立設定:
筆記本
如要透過筆記本執行 Vertex AI 提示詞最佳化工具,請按照下列步驟建立設定:
在 Colab Enterprise 中,開啟 Vertex AI 提示最佳化工具筆記本。
在「設定專案設定」部分,完成下列步驟:
- 在「PROJECT_ID」PROJECT_ID欄位中,輸入專案 ID。
- 在「LOCATION」欄位中,輸入要執行 Vertex AI 提示最佳化工具的位置。
- 在「OUTPUT_PATH」OUTPUT_PATH欄位中,輸入 Cloud Storage 值區的 URI,Vertex AI 提示最佳化工具會將最佳化系統指令和/或少量樣本寫入該值區。例如:
gs://bucket-name/output-path
。 - 在「INPUT_PATH」INPUT_PATH欄位中,輸入 Cloud Storage 值區中範例提示的 URI。例如:
gs://bucket-name/sample-prompts.jsonl
。
在「設定最佳化設定」部分,完成下列步驟:
- 在「TARGET_MODEL」TARGET_MODEL欄位中,輸入要最佳化提示的模型。
- 在 OPTIMIZATION_MODE 中,輸入要使用的最佳化模式。必須是
instruction
、demonstration
或instruction_and_demo
。 - 在 EVAL_METRIC 欄位中,輸入要用來最佳化提示的評估指標。
- 選用:在「SOURCE_MODEL」SOURCE_MODEL欄位中,輸入先前用於系統指令和提示的 Google 模型。設定
source_model
參數後,Vertex AI 提示最佳化工具會在來源模型上執行範例提示,為您生成基準真相回應,以取得需要基準真相回應的評估指標。如果您先前未透過 Google 模型執行提示,或未達到目標結果,請改為在提示中加入真實回應。詳情請參閱本文的「建立提示和系統指令」一節。
選用:在「設定進階最佳化設定」部分,您還可以在設定中加入任何選用參數。
- 在「NUM_INST_OPTIMIZATION_STEPS」NUM_INST_OPTIMIZATION_STEPS欄位中,輸入 Vertex AI 提示最佳化工具在指令最佳化模式中使用的疊代次數。這個值越大,執行時間就越長,兩者呈線性關係。必須是介於
10
和20
之間的整數。如果未設定,預設值為10
。 - 在 NUM_TEMPLATES_PER_STEP 欄位中,輸入 Vertex AI 提示最佳化工具生成及評估的系統指令數量。適用於「
instruction
」和「instruction_and_demo
」最佳化模式。必須是介於1
和4
之間的整數。如果未設定,預設值為2
。 - 在「NUM_DEMO_OPTIMIZATION_STEPS」NUM_DEMO_OPTIMIZATION_STEPS欄位中,輸入 Vertex AI 提示最佳化工具評估的示範數量。適用於「
demonstration
」和「instruction_and_demo
」最佳化模式。 必須是介於10
和30
之間的整數。如未設定,預設值為10
。 - 在「NUM_DEMO_PER_PROMPT」NUM_DEMO_PER_PROMPT欄位中,輸入每個提示產生的示範數量。必須是介於
3
和6
之間的整數。如未設定,預設值為3
。 - 在「TARGET_MODEL_QPS」(目標模型 QPS)TARGET_MODEL_QPS 欄位中,輸入 Vertex AI 提示最佳化工具傳送至目標模型的每秒查詢次數 (QPS)。這個值越大,執行時間就越短,兩者呈線性關係。必須是
3.0
以上的浮點數,但小於目標模型上的 QPS 配額。如未設定,預設值為3.0
。 - 在「SOURCE_MODEL_QPS」SOURCE_MODEL_QPS欄位中,輸入 Vertex AI 提示最佳化工具傳送至來源模型的每秒查詢次數 (QPS)。必須是
3.0
以上的浮點數,但不得超過來源模型上的每秒查詢次數配額。如果未設定,預設值為3.0
。 - 在「EVAL_QPS」EVAL_QPS欄位中,輸入 Vertex AI 提示最佳化工具傳送至評估模型 (
gemini-1.5-pro
) 的每秒查詢次數 (QPS)。- 如果是以模型為準的指標,則必須是
3.0
以上的浮點數,但不得超過gemini-1.5-pro
的配額。如未設定,預設值為3.0
。 - 如果是自訂指標,則必須是
3.0
以上的浮點數。這項設定會決定 Vertex AI 提示最佳化工具呼叫自訂指標 Cloud Run 函式的速率。
- 如果是以模型為準的指標,則必須是
- 如要使用多個評估指標,請按照下列步驟操作:
- 在 EVAL_METRIC_1 欄位中,輸入要使用的評估指標。
- 在「EVAL_METRIC_1_WEIGHT」EVAL_METRIC_1_WEIGHT欄位中,輸入您希望 Vertex AI 提示最佳化工具在執行最佳化時使用的權重。
- 在 EVAL_METRIC_2 欄位中,輸入要使用的評估指標。
- 在 EVAL_METRIC_2_WEIGHT 欄位中,輸入您希望 Vertex AI 提示最佳化工具在執行最佳化時使用的權重。
- 在 EVAL_METRIC_3 欄位中,視需要輸入要使用的評估指標。
- 在「EVAL_METRIC_3_WEIGHT」EVAL_METRIC_3_WEIGHT欄位中,視需要輸入您希望 Vertex AI 提示最佳化工具在執行最佳化時使用的權重。
- 在「METRIC_AGGREGATION_TYPE」METRIC_AGGREGATION_TYPE欄位中,輸入您希望 Vertex AI 提示最佳化工具在執行最佳化時使用的權重。
- 在「PLACEHOLDER_TO_VALUE」PLACEHOLDER_TO_VALUE欄位中,輸入要取代系統指令中任何變數的資訊。Vertex AI 提示最佳化工具不會最佳化這個標記中的資訊。
- 在「RESPONSE_MIME_TYPE」RESPONSE_MIME_TYPE欄位中,輸入目標模型使用的 MIME 回應類型。必須是
text/plain
或application/json
。如未設定,預設值為text/plain
。 - 在「TARGET_LANGUAGE」TARGET_LANGUAGE欄位中,輸入系統指令的語言。如未設定,預設值為英文。
SDK
如要透過 SDK 執行 Vertex AI 提示最佳化工具,請按照下列步驟建立 JSON 檔案,並加入要用於最佳化提示的參數:
建立 JSON 檔案,內含用於最佳化提示的參數。每個設定檔都需要下列參數:
{ "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" }
更改下列內容:
PROJECT_ID
:您的專案 ID。SYSTEM_INSTRUCTION_PATH
:Cloud Storage 值區中系統指令的 URI。例如:gs://bucket-name/system-instruction.txt
。PROMPT_TEMPLATE
:Cloud Storage 值區中提示範本的 URI。例如:gs://bucket-name/prompt-template.txt
TARGET_MODEL
:您要最佳化提示的模型。EVALUATION_METRIC_PARAMETERS
:您指定的參數取決於使用的評估指標數量,以及指標是標準還是自訂:單一標準指標
如果您使用單一標準評估指標,請使用下列參數:
"eval_metric": "EVALUATION_METRIC",
將
EVALUATION_METRIC
替換為要用來改善提示的指標。單一自訂指標
如果您使用單一自訂評估指標,請使用下列參數:
"eval_metric": "custom_metric", "custom_metric_name": "CUSTOM_METRIC_NAME", "custom_metric_cloud_function_name": "FUNCTION_NAME",
更改下列內容:
CUSTOM_METRIC_NAME
:指標名稱,由與final_score
相對應的鍵定義。例如:custom_accuracy
。FUNCTION_NAME
:先前部署的 Cloud Run 函式名稱。
多個標準指標
如果您使用多項標準評估指標,請使用下列參數:
"eval_metrics_types": [EVALUATION_METRIC_LIST], "eval_metrics_weights": [EVAL_METRICS_WEIGHTS], "aggregation_type": "METRIC_AGGREGATION_TYPE",
更改下列內容:
EVALUATION_METRIC_LIST
:評估指標清單。必須是陣列。例如:"bleu", "summarization_quality"
。EVAL_METRICS_WEIGHTS
:各項指標的權重。必須是陣列。METRIC_AGGREGATION_TYPE
:用於評估指標的匯總類型。必須是weighted_sum
或weighted_average
。如果未設定,預設值為weighted_sum
。
多個標準和自訂指標
如果您使用多項評估指標,包括單一自訂指標和一或多項標準指標,請使用下列參數:
"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",
更改下列內容:
EVALUATION_METRIC_LIST
:標準評估指標清單。必須是陣列。例如:"bleu", "summarization_quality"
。EVAL_METRICS_WEIGHTS
:各項指標的權重。必須是陣列。METRIC_AGGREGATION_TYPE
:用於評估指標的匯總類型。必須是weighted_sum
或weighted_average
。如果未設定,預設值為weighted_sum
。CUSTOM_METRIC_NAME
:指標名稱,由對應final_score
的鍵定義。例如:custom_accuracy
。FUNCTION_NAME
:先前部署的 Cloud Run 函式名稱。
OPTIMIZATION_MODE
:最佳化模式。必須為instruction
、demonstration
或instruction_and_demo
。SAMPLE_PROMPT_URI
:Cloud Storage 值區中範例提示的 URI。例如:gs://bucket-name/sample-prompts.jsonl
。OUTPUT_URI
:Cloud Storage 值區的 URI,您希望 Vertex AI 提示最佳化工具將最佳化系統指令和/或少量樣本寫入該值區。例如:gs://bucket-name/output-path
。
您也可以在設定檔中加入任何選用參數。
選用參數分為 5 類:
- 最佳化程序參數。這些參數可控制整體最佳化程序,包括程序持續時間和執行的最佳化疊代次數,直接影響最佳化品質。
- 模型選取和位置參數。這些參數會指定 Vertex AI 提示最佳化工具使用的模型,以及使用這些模型的位置。
- 延遲 (QPS) 參數。這些參數會控管每秒查詢次數,進而影響最佳化程序的執行速度。
- 其他。其他可控制提示結構和內容的參數。
查看選用參數
"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
更改下列內容:
最佳化程序參數:
NUM_INST_OPTIMIZATION_STEPS
:Vertex AI 提示最佳化工具在指令最佳化模式中使用的疊代次數。這個值越大,執行時間就越長,兩者呈線性關係。必須是介於10
和20
之間的整數。如未設定,預設值為10
。NUM_TEMPLATES_PER_STEP
:Vertex AI 提示最佳化工具產生及評估的系統指令數量。適用於「instruction
」和「instruction_and_demo
」最佳化模式。必須是介於1
和4
之間的整數。如果未設定,預設值為2
。NUM_DEMO_OPTIMIZATION_STEPS
:Vertex AI 提示最佳化工具評估的示範數量。適用於「demonstration
」和「instruction_and_demo
」最佳化模式。必須是介於10
和30
之間的整數。如果未設定,預設值為10
。NUM_DEMO_PER_PROMPT
:每個提示產生的示範數量。必須是介於3
和6
之間的整數。如未設定,預設值為3
。
模型選取和位置參數:
延遲時間 (QPS) 參數:
TARGET_MODEL_QPS
:Vertex AI 提示最佳化工具傳送至目標模型的每秒查詢數 (QPS)。增加這個值時,執行時間會線性減少。必須是3.0
以上的浮點數,但不得超過目標模型上的 QPS 配額。如未設定,預設值為3.0
。- :Vertex AI 提示最佳化工具傳送至評估模型的每秒查詢次數 (QPS),
gemini-1.5-pro
。EVAL_QPS
- 如果是以模型為準的指標,則必須是
3.0
以上的浮點數,但不得超過gemini-1.5-pro
的配額。如未設定,預設值為3.0
。 - 如果是自訂指標,則必須是
3.0
以上的浮點數。這項設定會決定 Vertex AI 提示最佳化工具呼叫自訂指標 Cloud Run 函式的速率。
- 如果是以模型為準的指標,則必須是
SOURCE_MODEL_QPS
:Vertex AI 提示最佳化工具傳送至來源模型的每秒查詢次數 (QPS)。必須是3.0
以上的浮點數,但不得超過來源模型上的每秒查詢次數配額。如果未設定,預設值為3.0
。
其他參數:
RESPONSE_MIME_TYPE
:目標模型使用的 MIME 回應類型。必須是text/plain
或application/json
。如未設定,預設值為text/plain
。TARGET_LANGUAGE
:系統指令的語言。如未設定,預設值為英文。PLACEHOLDER_TO_CONTENT
:取代系統指令中任何變數的資訊。Vertex AI 提示最佳化工具不會最佳化這個標記中的資訊。DATA_LIMIT
:用於驗證的資料量。執行時間會隨著這個值線性增加。必須是介於5
和100
之間的整數。如未設定,預設值為100
。
執行提示最佳化工具
使用下列其中一個選項執行 Vertex AI 提示最佳化工具:
筆記本
透過筆記本執行 Vertex AI 提示最佳化工具,方法如下:
在 Colab Enterprise 中開啟 Vertex AI 提示最佳化工具筆記本。
在「執行提示最佳化工具」部分,按一下 play_circle「執行儲存格」。
Vertex AI 提示最佳化工具會開始執行。
REST
使用任何要求資料之前,請先替換以下項目:
- LOCATION:您要執行 Vertex AI 提示最佳化工具的位置。
- PROJECT_ID:您的專案 ID。
- :Vertex AI 提示最佳化工具作業的名稱。JOB_NAME
- PATH_TO_CONFIG:Cloud Storage 值區中設定檔的 URI。
例如:
gs://bucket-name/configuration.json
。
HTTP 方法和網址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs
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""] } } ] } }
如要傳送要求,請選擇以下其中一個選項:
curl
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
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
將要求主體儲存在名為 request.json
的檔案中,然後執行下列指令:
$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
回應內容如下所示:
Python
在試用這個範例之前,請先按照Python使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Python API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
分析結果並進行疊代
執行 Vertex AI 提示最佳化工具後,請使用下列任一選項查看作業進度:
筆記本
如要透過筆記本查看 Vertex AI 提示最佳化工具的結果,請按照下列步驟操作:
在「檢查結果」部分,執行下列操作:
在「RESULT_PATH」RESULT_PATH欄位中,新增您設定 Vertex AI 提示最佳化工具寫入結果的 Cloud Storage 值區 URI。例如:
gs://bucket-name/output-path
。按一下「執行儲存格」圖示 play_circle。
主控台
在 Google Cloud 控制台的 Vertex AI 專區中,前往「訓練管道」頁面。
按一下「自訂工作」分頁標籤。Vertex AI 提示最佳化工具的自訂訓練工作會顯示在清單中,並附上狀態。
作業完成後,請按照下列步驟查看最佳化結果:
在 Google Cloud 控制台,前往「Cloud Storage bucket」頁面:
按一下 Cloud Storage bucket 的名稱。
前往與您用來評估提示的最佳化模式同名的資料夾,即
instruction
或demonstration
。如果使用instruction_and_demo
模式,兩個資料夾都會顯示。instruction
資料夾包含系統指令最佳化結果,demonstration
資料夾則包含demonstration
最佳化結果和最佳化系統指令。這個資料夾包含下列檔案:
config.json
:Vertex AI 提示最佳化工具使用的完整設定。templates.json
:Vertex AI 提示最佳化工具產生的每組系統指令和/或少量樣本,以及評估分數。eval_results.json
:每個範例提示的目標模型回覆,適用於每組產生的系統指令和/或少量樣本,以及評估分數。optimized_results.json
:效能最佳的系統指令和/或少量樣本,以及評估分數。
如要查看最佳化系統指令,請參閱
optimized_results.json
檔案。
後續步驟
- 試用 Vertex AI 提示最佳化工具 SDK 筆記本。
- 瞭解負責任的 AI 最佳做法和 Vertex AI 的安全篩選器。
- 進一步瞭解提示策略。
- 在提示庫中探索提示範例。