Pengoptimal prompt few-shot membantu Anda menyempurnakan petunjuk sistem dengan menganalisis contoh saat respons model tidak memenuhi harapan. Anda memberikan contoh spesifik perintah, respons model, dan masukan tentang respons tersebut, dan pengoptimal meningkatkan kualitas petunjuk sistem. Anda dapat memberikan masukan dengan dua cara: rubrik dan evaluasi berbasis rubrik atau respons target.
Pengoptimalan sedikit contoh mengharuskan Anda memberikan contoh dalam Pandas DataFrame dan tersedia melalui Vertex AI SDK.
Mengoptimalkan menggunakan evaluasi berbasis rubrik
Metode ini ditujukan untuk skenario saat Anda memiliki rubrik (juga dikenal sebagai kriteria penilaian) untuk setiap contoh dan catatan apakah model memenuhi kriteria tersebut. DataFrame Anda harus berisi empat kolom berikut:
prompt: Perintah pengguna asli.model_response: Output sebenarnya yang dihasilkan oleh model.rubrics: Daftar kriteria spesifik untuk contoh tersebut, sebagai representasi string dari daftar string.rubrics_evaluations: Daftar boolean yang menunjukkan apakah setiap rubrik terpenuhi, sebagai representasi string dari daftar boolean.
Rubrik dapat konsisten di semua baris atau disesuaikan dengan setiap contoh.
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)
Mengoptimalkan menggunakan respons target
Jika Anda tidak memiliki rubrik tertentu, tetapi memiliki respons ideal atau "standar emas" untuk setiap perintah, Anda dapat menggunakan pengoptimalan berbasis respons target. Pengoptimal membandingkan output model dengan output ideal dan menyesuaikan instruksi untuk menjembatani kesenjangan tersebut.
DataFrame Anda harus menyertakan tiga kolom berikut:
prompt: Petunjuk pengguna asli.model_response: Output model saat ini yang perlu ditingkatkan.target_response: Respons ideal yang Anda inginkan dihasilkan oleh model.
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)