Jalankan evaluasi cepat

Anda dapat menggunakan Vertex AI SDK untuk Python guna mengevaluasi model bahasa generatif Anda secara terprogram.

Menginstal Vertex AI SDK

Untuk menginstal evaluasi cepat dari Vertex AI SDK untuk Python, jalankan perintah berikut:

pip install --upgrade google-cloud-aiplatform[rapid_evaluation]

Untuk mengetahui informasi selengkapnya, lihat Menginstal Vertex AI SDK untuk Python.

Mengautentikasi Vertex AI SDK

Setelah menginstal Vertex AI SDK untuk Python, Anda perlu melakukan autentikasi. Topik berikut menjelaskan cara melakukan autentikasi dengan Vertex AI SDK jika Anda bekerja secara lokal dan jika bekerja di Colaboratory:

  • Jika Anda mengembangkan aplikasi secara lokal, siapkan Kredensial Default Aplikasi (ADC) di lingkungan lokal Anda:

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
      
    2. Buat kredensial autentikasi lokal untuk Akun Google Anda:

      gcloud auth application-default login
      

      Layar login akan ditampilkan. Setelah login, kredensial Anda akan disimpan dalam file kredensial lokal yang digunakan oleh ADC. Untuk mengetahui informasi selengkapnya tentang cara bekerja dengan ADC di lingkungan lokal, lihat Lingkungan pengembangan lokal.

  • Jika Anda bekerja di Colaboratory, jalankan perintah berikut di sel Colab untuk melakukan autentikasi:

    from google.colab import auth
    auth.authenticate_user()
    

    Perintah ini akan membuka jendela tempat Anda dapat menyelesaikan autentikasi.

Lihat Referensi SDK evaluasi cepat untuk mempelajari SDK evaluasi cepat lebih lanjut.

Membuat tugas evaluasi

Karena evaluasi sebagian besar didasarkan pada tugas dengan model AI generatif, evaluasi online memperkenalkan abstraksi tugas evaluasi untuk memfasilitasi kasus penggunaan evaluasi. Guna mendapatkan perbandingan yang adil untuk model generatif, Anda dapat menjalankan evaluasi untuk model dan template perintah terhadap set data evaluasi serta metrik terkaitnya berulang kali. Class EvalTask dirancang untuk mendukung paradigma evaluasi baru ini. Selain itu, EvalTask memungkinkan Anda berintegrasi secara lancar dengan Vertex AI Experiment, yang dapat membantu melacak setelan dan hasil untuk setiap evaluasi yang dijalankan. Eksperimen Vertex AI dapat membantu mengelola dan menafsirkan hasil evaluasi, sehingga Anda dapat mengambil tindakan dalam waktu yang lebih singkat. Contoh berikut menunjukkan cara membuat instance class EvalTask dan menjalankan evaluasi:

from vertexai.preview.evaluation import EvalTask

eval_task = EvalTask(
  dataset=DATASET,
  metrics=["bleu", "rouge_l_sum"],
  experiment=EXPERIMENT_NAME
)

Parameter metrics menerima daftar metrik, yang memungkinkan evaluasi bersamaan beberapa metrik dalam satu panggilan evaluasi.

Persiapan set data evaluasi

Set data diteruskan ke instance EvalTask sebagai DataFrame pandas, dengan setiap baris mewakili contoh evaluasi terpisah (disebut instance), dan setiap kolom mewakili parameter input metrik. Lihat metrics untuk input yang diharapkan oleh setiap metrik. Kami menyediakan beberapa contoh pembuatan set data evaluasi untuk berbagai tugas evaluasi.

Evaluasi ringkasan

Buat {i>dataset<i} untuk perangkuman poin-poin dengan metrik berikut:

  • summarization_quality
  • groundedness
  • fulfillment
  • summarization_helpfulness
  • summarization_verbosity

Dengan mempertimbangkan parameter input metrik yang diperlukan, Anda harus menyertakan kolom berikut dalam set data evaluasi kami:

  • instruction
  • context
  • response

Dalam contoh ini, kita memiliki dua instance ringkasan. Buat kolom instruction dan context sebagai input, yang diperlukan oleh evaluasi tugas ringkasan:

instructions = [
  # example 1
  "Summarize the text in one sentence.",
  # example 2
  "Summarize the text such that a five-year-old can understand.",
]

contexts = [
  # example 1
  """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
  """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.""",
]

Jika Anda sudah menyiapkan respons LLM (peringkasan) dan ingin melakukan evaluasi bawa prediksi Anda sendiri (BYOP), Anda dapat menyusun input respons sebagai berikut:

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.",
]

Dengan input ini, kita siap untuk membuat set data evaluasi dan EvalTask.

eval_dataset = pd.DataFrame(
  {
    "instruction": instructions,
    "context":  contexts,
    "response":  responses,
  }
)

eval_task = EvalTask(
  dataset=eval_dataset,
  metrics=[
    'summarization_quality',
    'groundedness',
    'fulfillment',
    'summarization_helpfulness',
    'summarization_verbosity'
  ],
  experiment=EXPERIMENT_NAME
)

Evaluasi pembuatan teks umum

Beberapa metrik berbasis model seperti coherence, fluency, dan safety hanya memerlukan respons model untuk menilai kualitas:

eval_dataset = pd.DataFrame({
  "response": ["""The old lighthouse, perched precariously on the windswept cliff,
had borne witness to countless storms. Its once-bright beam, now dimmed by time
and the relentless sea spray, still flickered with stubborn defiance."""]
})

  eval_task = EvalTask(
  dataset=eval_dataset,
  metrics=["coherence", "fluency", "safety"],
  experiment=EXPERIMENT_NAME
)

Evaluasi Berbasis Komputasi

Metrik berbasis komputasi, seperti pencocokan persis, bleu, dan rouge, membandingkan respons terhadap referensi, sehingga memerlukan kolom respons dan referensi dalam set data evaluasi:

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."],
})

eval_task = EvalTask(
  dataset=eval_dataset,
  metrics=["exact_match", "bleu", "rouge"],
  experiment=EXPERIMENT_NAME
)

Evaluasi penggunaan alat (panggilan fungsi)

Untuk evaluasi panggilan alat (fungsi), Anda hanya perlu menyertakan respons dan referensi dalam set data evaluasi.

eval_dataset = pd.DataFrame({
  "response": ["""{
    "content": "",
    "tool_calls":[{
      "name":"get_movie_info",
      "arguments": {"movie":"Mission Impossible", "time": "today 7:30PM"}
    }]
  }"""],
  "reference": ["""{
    "content": "",
    "tool_calls":[{
      "name":"book_tickets",
      "arguments":{"movie":"Mission Impossible", "time": "today 7:30PM"}
      }]
  }"""],
})

eval_task = EvalTask(
  dataset=eval_dataset,
  metrics=["tool_call_valid", "tool_name_match", "tool_parameter_key_match",
"tool_parameter_kv_match"],
  experiment=EXPERIMENT_NAME
)

Paket metrik

Paket metrik menggabungkan metrik yang umumnya terkait untuk membantu menyederhanakan proses evaluasi. Metrik tersebut dikategorikan ke dalam empat paket berikut:

  • Tugas evaluasi: perangkuman, menjawab pertanyaan, dan pembuatan teks
  • Perspektif evaluasi: kesamaan, keamanan, dan kualitas
  • Konsistensi input: semua metrik dalam paket yang sama menggunakan input set data yang sama
  • Paradigma evaluasi: pointwise versus berpasangan

Anda dapat menggunakan paket metrik ini dalam layanan evaluasi online untuk membantu Anda mengoptimalkan alur kerja evaluasi yang disesuaikan.

Tabel ini mencantumkan detail tentang paket metrik yang tersedia:

Nama paket metrik Nama metrik Input pengguna
text_generation_similarity exact_match
bleu
rouge
referensi
prediksi
tool_call_quality tool_call_valid
tool_name_match
tool_parameter_key_match
tool_parameter_kv_match
referensi
prediksi
text_generation_quality coherence
fluency
prediction
text_generation_instruction_following fulfillment referensi
prediksi
text_generation_safety safety prediction
text_generation_factuality groundedness konteks
prediksi
summarization_pointwise_reference_free summarization_quality
summarization_helpfulness
summarization_verbosity
petunjuk
konteks
prediksi
summary_pairwise_reference_free pairwise_summarization_quality petunjuk
konteks
prediksi
qa_pointwise_reference_free question_answering_quality
question_answering_relevance
question_answering_helpfulness
petunjuk
konteks
prediksi
qa_pointwise_reference_based question_answering_correctness referensi
konteks
konteks
qa_pairwise_reference_free pairwise_question_answering_quality petunjuk
konteks
prediksi

Lihat hasil evaluasi

Setelah menentukan tugas evaluasi, jalankan tugas untuk mendapatkan hasil evaluasi, sebagai berikut:

eval_result: EvalResult = eval_task.evaluate(
  model=MODEL,
  prompt_template=PROMPT_TEMPLATE
)

Class EvalResult merepresentasikan hasil evaluasi yang dijalankan, yang mencakup metrik ringkasan dan tabel metrik dengan instance set data evaluasi serta metrik per instance yang sesuai. Tentukan class sebagai berikut:

@dataclasses.dataclass
class EvalResult:
  """Evaluation result.

  Attributes:
    summary_metrics: the summary evaluation metrics for an evaluation run.
    metrics_table: a table containing eval inputs, ground truth, and
      metrics per row.
  """
  summary_metrics: Dict[str, float]
  metrics_table: Optional[pd.DataFrame] = None

Dengan penggunaan fungsi bantuan, hasil evaluasi dapat ditampilkan di notebook Colab.

Kualitas ringkasan

Visualisasi

Anda dapat memetakan metrik ringkasan dalam radar atau diagram batang untuk menampilkan visualisasi dan membandingkan hasil dari berbagai evaluasi yang dijalankan. Visualisasi ini dapat berguna untuk mengevaluasi berbagai model dan template perintah yang berbeda.

Diagram radar

Metrik diagram batang

API evaluasi cepat

Untuk informasi tentang API evaluasi cepat, lihat API evaluasi cepat.

Memahami akun layanan

Akun layanan digunakan oleh layanan evaluasi online untuk mendapatkan prediksi dari layanan prediksi online bagi metrik evaluasi berbasis model. Akun layanan ini otomatis disediakan pada permintaan pertama ke layanan evaluasi online.

Name Deskripsi Alamat email Peran
Agen Layanan Rapid Eval Vertex AI Akun layanan yang digunakan untuk mendapatkan prediksi evaluasi berbasis model. service-PROJECT_NUMBER@gcp-sa-ENV-vertex-eval.iam.gserviceaccount.com roles/aiplatform.rapidevalServiceAgent

Izin yang terkait dengan agen layanan evaluasi cepat adalah:

Peran Izin
Agen Layanan Rapid Eval Vertex AI (roles/aiplatform.rapidevalServiceAgent) aiplatform.endpoints.predict

Langkah selanjutnya