少量樣本提示詞最佳化工具會分析模型回覆未達預期的範例,協助您修正系統指令。您提供提示詞、模型回覆和回覆意見回饋的具體範例,最佳化工具就會改善系統指令。您可以透過兩種方式提供意見回饋:評分標準和評分標準評估,或目標回覆。
如要使用少量樣本最佳化功能,您必須在 Pandas DataFrame 中提供範例,並透過 Agent Platform SDK 存取這項功能。
使用評量表評估結果進行最佳化
這個方法適用於您為每個範例提供評分標準 (也稱為評分條件),並記錄模型是否符合這些條件的情況。DataFrame 必須包含下列四個資料欄:
prompt:原始使用者提示。model_response:模型生成的實際輸出內容。rubrics:該範例的特定條件清單,以字串清單的字串表示法呈現。rubrics_evaluations:布林值清單,以布林值清單的字串表示形式,指出是否符合各項評量標準。
評量表可套用至所有資料列,也可針對每個範例量身打造。
import pandas as pd
import vertexai
from vertexai import types
PROJECT_NAME = "YOUR_PROJECT_NAME"
LOCATION = "YOUR_LOCATION" # e.g. "us-central1"
client = vertexai.Client(project=PROJECT_NAME, location=LOCATION)
system_instructions = "You are an AI assistant skilled in analyzing articles. Your task is to extract key arguments, evaluate evidence quality, identify potential biases, and summarize core findings into a concise, actionable, and objective report. Make sure the response is less than 50 words"
df = pd.DataFrame(
[
{
"prompt": "prompt1",
"model_response": "response1",
"rubrics": "['Response is in English', 'Under 50 words']",
"rubrics_evaluations": "[True, True]",
},
{
"prompt": "prompt2",
"model_response": "response2",
"rubrics": "['Response is in English', 'Under 50 words']",
"rubrics_evaluations": "[True, False]",
},
]
)
config = vertexai.types.OptimizeConfig(
optimization_target=vertexai.types.OptimizeTarget.OPTIMIZATION_TARGET_FEW_SHOT_RUBRICS,
examples_dataframe=df,
)
response = client.prompts.optimize(prompt=system_instructions, config=config)
print(response.parsed_response.suggested_prompt)
使用目標回覆進行最佳化
如果您沒有特定評量表,但每個提示都有理想或「黃金標準」的回覆,則可以使用以目標回覆為準的最佳化功能。最佳化工具會比較模型輸出內容與理想輸出內容,並調整指令來彌補差距。
DataFrame 必須包含下列三欄:
prompt:原始使用者指令。model_response:目前需要改進的模型輸出內容。target_response:您希望模型產生的理想回應。
import pandas as pd
import vertexai
from vertexai import types
PROJECT_NAME = "PROJECT"
LOCATION = "YOUR_LOCATION" # e.g. "us-central1"
client = vertexai.Client(project=YOUR_PROJECT_NAME, location=LOCATION)
system_instructions = "You are an AI assistant skilled in analyzing articles. Your task is to extract key arguments, evaluate evidence quality, identify potential biases, and summarize core findings into a concise, actionable, and objective report. Make sure the response is less than 50 words"
df = pd.DataFrame(
{
"prompt": ["prompt1", "prompt2"],
"model_response": ["response1", "response2"],
"target_response": ["target1", "target2"],
}
)
config = vertexai.types.OptimizeConfig(
optimization_target=vertexai.types.OptimizeTarget.OPTIMIZATION_TARGET_FEW_SHOT_TARGET_RESPONSE,
examples_dataframe=df,
)
response = client.prompts.optimize(
prompt=system_instructions,
config=config,
)
print(response.parsed_response.suggested_prompt)