Menyiapkan set data evaluasi

Untuk layanan evaluasi AI Generatif, set data evaluasi biasanya terdiri dari respons model yang ingin Anda evaluasi, data input yang digunakan untuk membuat respons, dan mungkin respons kebenaran dasar.

Skema set data evaluasi

Untuk kasus penggunaan metrik berbasis model yang umum, set data Anda harus memberikan informasi berikut:

Jenis input Konten kolom input
perintah Input pengguna untuk model atau aplikasi AI Generatif. Dalam beberapa kasus, ini bersifat opsional.
respons Respons inferensi LLM Anda akan dievaluasi.
baseline_model_response (diperlukan oleh metrik berpasangan) Respons inferensi LLM dasar pengukuran yang digunakan untuk membandingkan respons LLM Anda dalam evaluasi berpasangan

Jika Anda menggunakan modul Evaluasi AI Generatif dari Vertex AI SDK untuk Python, layanan evaluasi AI Generatif dapat otomatis membuat response dan baseline_model_response dengan model yang Anda tentukan.

Untuk kasus penggunaan evaluasi lainnya, Anda mungkin perlu memberikan informasi selengkapnya:

Multi-giliran atau chat

Jenis input Konten kolom input
sejarah Histori percakapan antara pengguna dan model sebelum giliran saat ini.
perintah Input pengguna untuk model atau aplikasi AI Generatif pada giliran saat ini.
respons Respons inferensi LLM Anda yang akan dievaluasi, yang didasarkan pada histori dan perintah belok saat ini.
baseline_model_response (diperlukan oleh metrik berpasangan) Respons inferensi LLM dasar pengukuran yang digunakan untuk membandingkan respons LLM Anda dalam evaluasi berpasangan, yang didasarkan pada histori dan perintah giliran saat ini.

Metrik berbasis komputasi

Set data Anda harus memberikan respons dari model bahasa besar dan referensi untuk dibandingkan.

Jenis input Konten kolom input
respons Respons inferensi LLM Anda akan dievaluasi.
referensi Kebenaran dasar untuk membandingkan respons LLM Anda.

Metrik terjemahan

Set data Anda harus memberikan respons dari model. Bergantung pada kasus penggunaan, Anda juga perlu memberikan referensi untuk dibandingkan, input dalam bahasa sumber, atau kombinasi keduanya.

Jenis input Konten kolom input
sumber Teks sumber yang dalam bahasa asli yang digunakan untuk menerjemahkan prediksi.
respons Respons inferensi LLM Anda akan dievaluasi.
referensi Kebenaran dasar untuk membandingkan respons LLM Anda. Ini dalam bahasa yang sama dengan respons.

Bergantung pada kasus penggunaan, Anda juga dapat membagi perintah pengguna input menjadi bagian-bagian terperinci, seperti instruction dan context, dan menyusunnya untuk inferensi dengan menyediakan template perintah. Anda juga dapat memberikan informasi referensi atau ground truth jika diperlukan:

Jenis input Konten kolom input
petunjuk Bagian dari perintah input pengguna. Ini mengacu pada petunjuk inferensi yang dikirim ke LLM Anda. Misalnya: "Rangkum teks berikut" adalah petunjuk.
konteks Input pengguna untuk model atau aplikasi AI Generatif pada giliran saat ini.
referensi Kebenaran dasar untuk membandingkan respons LLM Anda.

Input yang diperlukan untuk set data evaluasi harus konsisten dengan metrik Anda. Untuk mengetahui detail selengkapnya tentang cara menyesuaikan metrik, lihat Menentukan metrik evaluasi dan Menjalankan evaluasi. Untuk mengetahui detail selengkapnya tentang cara menyertakan data referensi dalam metrik berbasis model, lihat Menyesuaikan template perintah metrik dengan data input Anda.

Mengimpor set data evaluasi

Anda dapat mengimpor set data dalam format berikut:

  • File JSONL atau CSV yang disimpan di Cloud Storage

  • Tabel BigQuery

  • Pandas DataFrame

Contoh set data evaluasi

Bagian ini menunjukkan contoh set data menggunakan format Pandas Dataframe. Perhatikan bahwa hanya beberapa kumpulan data yang ditampilkan di sini sebagai contoh, dan set data evaluasi biasanya memiliki 100 titik data atau lebih. Untuk praktik terbaik saat menyiapkan set data, lihat bagian Praktik terbaik.

Metrik berbasis model pointwise

Berikut adalah kasus ringkasan untuk menunjukkan contoh set data untuk metrik berbasis model pointwise:

prompts = [
    # Example 1
    (
        "Summarize the text in one sentence: As part of a comprehensive"
        " initiative to tackle urban congestion and foster sustainable urban"
        " living, a major city has revealed ambitious plans for an extensive"
        " overhaul of its public transportation system. The project aims not"
        " only to improve the efficiency and reliability of public transit but"
        " also to reduce the city's carbon footprint and promote eco-friendly"
        " commuting options. City officials anticipate that this strategic"
        " investment will enhance accessibility for residents and visitors"
        " alike, ushering in a new era of efficient, environmentally conscious"
        " urban transportation."
    ),
    # Example 2
    (
        "Summarize the text such that a five-year-old can understand: A team of"
        " archaeologists has unearthed ancient artifacts shedding light on a"
        " previously unknown civilization. The findings challenge existing"
        " historical narratives and provide valuable insights into human"
        " history."
    ),
]

responses = [
    # Example 1
    (
        "A major city is revamping its public transportation system to fight"
        " congestion, reduce emissions, and make getting around greener and"
        " easier."
    ),
    # Example 2
    (
        "Some people who dig for old things found some very special tools and"
        " objects that tell us about people who lived a long, long time ago!"
        " What they found is like a new puzzle piece that helps us understand"
        " how people used to live."
    ),
]

eval_dataset = pd.DataFrame({
    "prompt": prompts,
    "response": responses,
})

Metrik berbasis model berpasangan

Contoh berikut menunjukkan kasus menjawab pertanyaan buku terbuka untuk menunjukkan contoh set data untuk metrik berbasis model berpasangan.

prompts = [
    # Example 1
    (
        "Based on the context provided, what is the hardest material? Context:"
        " Some might think that steel is the hardest material, or even"
        " titanium. However, diamond is actually the hardest material."
    ),
    # Example 2
    (
        "Based on the context provided, who directed The Godfather? Context:"
        " Mario Puzo and Francis Ford Coppola co-wrote the screenplay for The"
        " Godfather, and the latter directed it as well."
    ),
]

responses = [
    # Example 1
    "Diamond is the hardest material. It is harder than steel or titanium.",
    # Example 2
    "Francis Ford Coppola directed The Godfather.",
]

baseline_model_responses = [
    # Example 1
    "Steel is the hardest material.",
    # Example 2
    "John Smith.",
]

eval_dataset = pd.DataFrame(
  {
    "prompt":  prompts,
    "response":  responses,
    "baseline_model_response": baseline_model_responses,
  }
)

Metrik berbasis komputasi

Untuk metrik berbasis komputasi, reference sering kali diperlukan.

eval_dataset = pd.DataFrame({
  "response": ["The Roman Senate was filled with exuberance due to Pompey's defeat in Asia."],
  "reference": ["The Roman Senate was filled with exuberance due to successes against Catiline."],
})

Metrik penggunaan alat (panggilan fungsi)

Contoh berikut menunjukkan data input untuk metrik penggunaan alat berbasis komputasi:

json_responses = ["""{
    "content": "",
    "tool_calls":[{
      "name":"get_movie_info",
      "arguments": {"movie":"Mission Impossible", "time": "today 7:30PM"}
    }]
  }"""]

json_references = ["""{
    "content": "",
    "tool_calls":[{
      "name":"book_tickets",
      "arguments":{"movie":"Mission Impossible", "time": "today 7:30PM"}
      }]
  }"""]

eval_dataset = pd.DataFrame({
    "response": json_responses,
    "reference": json_references,
})

Kasus penggunaan terjemahan

Contoh berikut menunjukkan data input untuk metrik terjemahan:

  source = [
      "Dem Feuer konnte Einhalt geboten werden",
      "Schulen und Kindergärten wurden eröffnet.",
  ]

  response = [
      "The fire could be stopped",
      "Schools and kindergartens were open",
  ]

  reference = [
      "They were able to control the fire.",
      "Schools and kindergartens opened",
  ]

  eval_dataset = pd.DataFrame({
      "source": source,
      "response": response,
      "reference": reference,
  })

Praktik terbaik

Ikuti praktik terbaik berikut saat menentukan set data evaluasi:

  • Berikan contoh yang mewakili jenis input, yang diproses oleh model Anda dalam produksi.
  • Set data Anda harus menyertakan minimal satu contoh evaluasi. Sebaiknya gunakan sekitar 100 contoh untuk memastikan metrik gabungan berkualitas tinggi dan hasil yang signifikan secara statistik. Ukuran ini membantu menetapkan tingkat keyakinan yang lebih tinggi dalam hasil evaluasi gabungan, meminimalkan pengaruh outlier, dan memastikan bahwa metrik performa mencerminkan kemampuan sebenarnya dari model di berbagai skenario. Tingkat peningkatan kualitas metrik gabungan cenderung menurun jika lebih dari 400 contoh diberikan.

Langkah selanjutnya