本文档介绍了如何使用 Vertex AI 提示优化器通过改进一组提示的系统指令来自动优化提示效果。
Vertex AI 提示优化器可帮助您快速大规模改进提示,而无需手动重写系统指令或各个提示。如果您想将针对一个模型编写的系统指令和提示用于另一个模型,则此优化器特别有用。
Vertex AI 提示优化器可根据指定的评估指标评估模型对示例提示的回答,从而帮助改进提示。如需使用 Vertex AI 提示优化器,您必须拥有以下各项:
- 一组示例提示
- 所有示例提示都使用的系统指令
- 引用了示例提示的提示模板
提示优化示例
例如,如需针对一组提示优化系统指令,以便参考上下文信息来回答有关烹饪的问题,您可以使用 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 |
---|---|
What are some techniques for cooking red meat and pork that maximize flavor and tenderness while minimizing the formation of unhealthy compounds? | Red meat and pork should be cooked to an internal temperature of 145 degrees fahrenheit (63 degrees celsius) to ensure safety. Marinating meat in acidic ingredients like lemon juice or vinegar can help tenderize it by breaking down tough muscle fibers. High-heat cooking methods like grilling and pan-searing can create delicious browning and caramelization, but it's important to avoid charring, which can produce harmful compounds. |
What are some creative ways to add flavor and nutrition to protein shakes without using added sugars or artificial ingredients? | Adding leafy greens like spinach or kale is a great way to boost the nutritional value of your shake without drastically altering the flavor. Using unsweetened almond milk or coconut water instead of regular milk can add a subtle sweetness and a boost of healthy fats or electrolytes, respectively. Did you know that over-blending your shake can actually heat it up? To keep things cool and refreshing, blend for shorter bursts and give your blender a break if needed. |
优化的工作原理
准备好输入内容后,您可以选择优化模式、评估指标和目标模型。
- 优化模式:指定 Vertex AI 提示优化器是否优化系统指令和/或选择要作为少样本示例添加到系统指令中的示例提示。
- 评估指标:Vertex AI 提示优化器用于优化系统指令和/或选择示例提示的指标。
- 目标模型:Vertex AI 提示优化器优化系统指令和/或选择示例提示以与其结合使用的 Google 模型。
当您运行 Vertex AI 提示优化器时,它会根据您的选择优化系统指令,方法是运行自定义训练作业,即迭代评估示例提示并重写系统指令,以找到可为目标模型生成最佳评估得分的版本。
在作业结束时,Vertex AI 提示优化器会输出经过优化的系统指令及其评估得分。
优化的系统指令
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 提示优化器支持自定义评估指标,还支持以下评估指标:
指标类型 | 使用场景 | 指标 | 说明 |
---|---|---|---|
基于模型 | 摘要 | summarization_quality |
描述模型基于一段给定的参考文本回答问题的能力。 |
问答 | question_answering_correctness * |
描述模型正确回答问题的能力。 | |
question_answering_quality |
描述模型基于一段给定的参考文本回答问题的能力。 | ||
连贯性 | 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 User (
roles/aiplatform.user
) -
Storage Object Admin (
roles/storage.objectAdmin
) -
Artifact Registry Reader (
roles/artifactregistry.reader
)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您的管理员也可以通过自定义角色或其他预定义角色为 Compute Engine 默认服务账号授予所需的权限。
-
Vertex AI User (
下表包括需要每分钟查询次数 (QPM) 配额的模型,以及每个模型的建议 QPM。如果 QPM 配额低于建议的配额,Vertex AI 提示优化器的运行速度可能会低于预期。如果您为 Vertex AI 提示优化器配置的 QPM 高于您有权使用的 QPM,则作业会失败。如果您没有足够的配额来运行 Vertex AI 提示优化器,可以申请增加配额。
型号 说明 最低 QPM 配额 建议的 QPM 配额 目标模型 您要为其优化提示的模型。 200 QPM 500+ QPM gemini-1.5-pro-001
Vertex AI 提示优化器用于重写和评估提示的模型。 200 QPM 500+ QPM
优化提示
您可以通过运行 Vertex AI 提示优化器笔记本或使用 Vertex AI API 来优化提示。如需优化提示,请选择您要使用哪种方法来运行 Vertex AI 提示优化器,然后完成以下部分中详细介绍的步骤:
创建提示模板和系统指令
提示模板通过可替换的变量定义所有提示的格式。使用提示模板优化提示时,变量会被替换为提示数据集中的数据。
提示模板变量必须满足以下要求:
- 变量必须用花括号括起来
- 变量名称不得包含空格
表示多模态输入的变量必须在变量后面包含
MIME_TYPE
字符串:@@@MIME_TYPE
使用以下方法之一创建提示模板和系统指令:
笔记本
如果您想通过笔记本运行 Vertex AI 提示优化器,请通过执行以下操作来创建系统指令和提示模板:
在 Colab Enterprise 中,打开 Vertex AI 问题优化器笔记本。
在创建提示模板和系统说明部分,执行以下操作:
在 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 存储桶。
选择评估指标
Vertex AI 提示优化器使用评估指标来优化系统指令和选择示例提示。
从支持的评估指标中选择一个评估指标,或自行定义自定义评估指标。当标准指标不适合您的应用时,自定义指标会很有用。您可以使用多个指标来优化提示。但是,Vertex AI 提示优化器一次仅支持一个自定义指标。例如,您可以使用自定义指标和 bleu
指标运行 Vertex AI 提示优化器,也可以使用 bleu
、rouge
和 summarization_quality
指标运行 Vertex AI 提示优化器,但您不能同时使用多个自定义指标运行 Vertex AI 提示优化器。
请通过执行以下操作来创建自定义指标:
创建名为
requirements.txt
的文本文件。在
requirements.txt
文件中,为自定义评估指标函数定义所需的库。所有函数都需要functions-framework
软件包。例如,用于计算 ROUGE-L 的自定义指标的
requirements.txt
文件如下所示:functions-framework==3.* rouge-score
创建一个名为
main.py
的 Python 文件。在
main.py
文件中,编写自定义评估函数。该函数必须接受以下各项:- HTTP POST 请求
- JSON 输入,其中包含
response
(即 LLM 的输出)和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 提示优化器是否优化系统指令和/或选择要作为少样本示例添加到系统指令中的示例提示。
- 评估指标:Vertex AI 提示优化器用于优化系统指令和/或选择示例提示的指标。
- 目标模型:Vertex AI 提示优化器优化系统指令和/或选择示例提示以与其结合使用的 Google 模型。
使用以下选项之一创建配置:
笔记本
如果您想通过笔记本运行 Vertex AI 提示优化器,请执行以下操作来创建配置:
在 Colab Enterprise 中,打开 Vertex AI 问题优化器笔记本。
在配置项目设置部分中,执行以下操作:
- 在 PROJECT_ID 字段中,输入您的项目 ID。
- 在 LOCATION 字段中,输入您要在其中运行 Vertex AI 提示优化器的位置。
- 在 OUTPUT_PATH 字段中,输入您希望 Vertex AI 提示优化器将优化后的系统指令和/或少样本示例写入到的 Cloud Storage 存储桶的 URI。例如
gs://bucket-name/output-path
。 - 在 INPUT_PATH 字段中,输入 Cloud Storage 存储桶中的示例提示的 URI。例如
gs://bucket-name/sample-prompts.jsonl
。
在配置优化设置部分,执行以下操作:
- 在 TARGET_MODEL 字段中,输入您要优化提示以与其结合使用的模型。
- 在 OPTIMIZATION_MODE 中,输入要使用的优化模式。必须是
instruction
、demonstration
或instruction_and_demo
之一。 - 在 EVAL_METRIC 字段中,输入您要针对其优化问题的评估指标。
- 可选:在 SOURCE_MODEL 字段中,输入系统指令和提示之前与其结合使用的 Google 模型。设置
source_model
参数后,Vertex AI 提示优化器会在来源模型上运行示例提示,以便针对需要标准答案的评估指标为您生成标准答案。如果您之前未使用 Google 模型运行提示,或者未获得目标结果,请改为向提示添加标准答案。如需了解详情,请参阅本文档中的创建提示和系统指令部分。
可选:在配置高级优化设置部分中,您还可以在配置中添加任何可选参数。
- 在 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
。 - 在 TARGET_MODEL_QPS 字段中,输入 Vertex AI 提示优化器发送到目标模型的每秒查询次数 (QPS)。随着此值的增大,运行时会线性缩短。必须为
3.0
或更大的浮点数,但小于对目标模型设置的 QPS 配额。如果未设置,则默认值为3.0
。 - 在 SOURCE_MODEL_QPS 字段中,输入 Vertex AI 提示优化器发送到来源模型的每秒查询次数 (QPS)。必须为
3.0
或更大的浮点数,但小于对来源模型设置的 QPS 配额。如果未设置,则默认值为3.0
。 - 在 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 字段中,输入您希望 Vertex AI 提示优化器在运行优化时使用的权重。
- 在 EVAL_METRIC_2 字段中,输入您要使用的评估指标。
- 在 EVAL_METRIC_2_WEIGHT 字段中,输入您希望 Vertex AI 提示优化器在运行优化时使用的权重。
- 在 EVAL_METRIC_3 字段中,视需要输入您要使用的评估指标。
- 在 EVAL_METRIC_3_WEIGHT 字段中,视需要输入值
- 在 METRIC_AGGREGATION_TYPE 字段中,输入您希望 Vertex AI 提示优化器在运行优化时使用的权重。
- 在 PLACEHOLDER_TO_VALUE 字段中,输入用于替换系统指令中的任何变量的信息。Vertex AI 提示优化器不会优化此标志中包含的信息。
- 在 RESPONSE_MIME_TYPE 字段中,输入目标模型使用的 MIME 回答类型。必须是
text/plain
或application/json
之一。如果未设置,则默认值为text/plain
。 - 在 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
:您希望 Vertex AI 提示优化器将优化后的系统指令和/或少样本示例写入到的 Cloud Storage 存储桶的 URI。 例如gs://bucket-name/output-path
。
您还可以在配置文件中添加任何可选参数。
可选参数分为 5 类:
- 优化过程参数。这些参数用于控制整体优化过程,包括优化过程的时长和运行的优化迭代次数,这会直接影响优化质量。
- 模型选择和位置参数。这些参数用于指定 Vertex AI 提示优化器使用的模型以及在其中使用这些模型的位置。
- 延迟时间 (QPS) 参数。这些参数用于控制 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
。
模型选择和位置参数:
TARGET_MODEL_LOCATION
:您要在其中运行目标模型的位置。如果未设置,则默认值为us-central1
。SOURCE_MODEL
:系统指令和提示之前与其结合使用的 Google 模型。设置source_model
参数后,Vertex AI 会在来源模型上运行示例提示,以便针对需要标准答案的评估指标为您生成标准答案。如果您之前未使用 Google 模型运行提示,或者未获得目标结果,请改为向提示添加标准答案。如需了解详情,请参阅本文档中的创建提示和系统指令部分。SOURCE_MODEL_LOCATION
:您要在其中运行来源模型的位置。如果未设置,则默认值为us-central1
。
延迟时间 (QPS) 参数:
TARGET_MODEL_QPS
:Vertex AI 提示优化器向目标模型发送的每秒查询次数 (QPS)。随着此值的增加,运行时会线性缩短。必须为3.0
或更大的浮点数,但小于对目标模型设置的 QPS 配额。如果未设置,则默认值为3.0
。EVAL_QPS
:Vertex AI 提示优化器发送到评估模型gemini-1.5-pro
的每秒查询次数 (QPS)。- 对于基于模型的指标,必须为一个介于
3.0
和gemini-1.5-pro
配额之间的浮点数。如果未设置,则默认值为3.0
。 - 对于自定义指标,必须为大于或等于
3.0
的浮点数。这会确定 Vertex AI 提示优化器调用自定义指标 Cloud Run 函数的速率。
- 对于基于模型的指标,必须为一个介于
SOURCE_MODEL_QPS
:Vertex AI 提示优化器发送到来源模型的每秒查询次数 (QPS)。必须为3.0
或更大的浮点数,但小于对来源模型设置的 QPS 配额。如果未设置,则默认值为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。
- JOB_NAME:Vertex AI 提示优化器作业的名称。
- 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
在尝试此示例之前,请按照《Vertex AI 快速入门:使用客户端库》中的 Python 设置说明执行操作。 如需了解详情,请参阅 Vertex AI Python API 参考文档。
如需向 Vertex AI 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
分析结果并进行迭代
运行 Vertex AI 提示优化器后,请使用以下选项之一查看作业的进度:
笔记本
如果您想通过笔记本查看 Vertex AI 提示优化器的结果,请执行以下操作:
在检查结果部分,执行以下操作:
在 RESULT_PATH 字段中,添加您对 Vertex AI 提示优化器进行配置以将结果写入到的 Cloud Storage 存储桶的 URI。例如
gs://bucket-name/output-path
。点击 play_circle 运行单元。
控制台
在 Google Cloud 控制台的 Vertex AI 部分中,转到训练流水线页面。
点击自定义作业标签页。Vertex AI 提示优化器的自定义训练作业及其状态会显示在列表中。
作业完成后,请通过执行以下操作查看优化结果:
在 Google Cloud 控制台中,前往 Cloud Storage 存储桶页面:
点击 Cloud Storage 存储桶的名称。
前往与您用于评估问题的优化模式(
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 笔记本。
- 了解 Responsible AI 最佳实践和 Vertex AI 的安全过滤条件。
- 详细了解提示策略。
- 在提示库中浏览更多提示示例。