Pengoptimal perintah few-shot

Pengoptimal prompt beberapa contoh membantu Anda menyempurnakan petunjuk sistem dengan menganalisis contoh saat respons model tidak memenuhi ekspektasi. Anda memberikan contoh spesifik tentang prompt, respons model, dan masukan tentang respons tersebut, dan pengoptimal akan meningkatkan petunjuk sistem. Anda dapat memberikan masukan dengan salah satu dari dua cara: rubrik dan evaluasi berbasis rubrik atau respons target.

Pengoptimalan beberapa contoh mengharuskan Anda memberikan contoh dalam Pandas DataFrame dan tersedia melalui Agent Platform 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: Prompt 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 prompt, Anda dapat menggunakan pengoptimalan berbasis respons target. Pengoptimal membandingkan output model dengan output ideal dan menyesuaikan petunjuk untuk menjembatani kesenjangan.

DataFrame Anda harus menyertakan tiga kolom ini:

  • prompt: Petunjuk pengguna asli.
  • model_response: Output model saat ini yang perlu ditingkatkan.
  • target_response: Respons ideal yang Anda inginkan untuk 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)