Sebagai bagian dari pengalaman Retrieval Augmented Generation (RAG) di Vertex AI Search, Anda dapat memeriksa perujukan untuk menentukan seberapa kuat perujukan sebuah teks (yang disebut kandidat jawaban) dalam sekumpulan teks referensi (yang disebut fakta).
Check Grounding API menampilkan skor dukungan keseluruhan 0 hingga 1, yang menunjukkan seberapa besar kandidat jawaban setuju dengan fakta yang diberikan. Respons juga menyertakan kutipan untuk fakta yang mendukung setiap klaim dalam kandidat jawaban.
Perujukan sempurna mengharuskan setiap klaim dalam kandidat jawaban harus didukung oleh satu atau beberapa fakta yang diberikan. Dengan kata lain, klaim tersebut sepenuhnya diperlukan oleh fakta. Jika klaim hanya sebagian yang tercakup, klaim tersebut tidak dianggap memiliki dasar. Misalnya, klaim "Google didirikan oleh Larry Page dan Sergey Brin pada tahun 1975" hanya sebagian benar—nama pendirinya benar, tetapi tanggalnya salah—dan dengan demikian, seluruh klaim dianggap tidak berdasar. Dalam versi API perujukan ini, kalimat dianggap sebagai satu klaim.
Anda dapat menggunakan API pemeriksaan perujukan untuk memeriksa teks apa pun. Respons dapat berupa deskripsi yang dibuat oleh manusia atau respons yang dibuat oleh mesin. Kasus penggunaan umum adalah memeriksa respons yang dihasilkan LLM berdasarkan sekumpulan fakta tertentu. API perujukan dirancang agar cepat, dengan latensi kurang dari 500 md. Kecepatan ini memungkinkan chatbot memanggil API pemeriksaan perujukan selama setiap inferensi, tanpa menyebabkan perlambatan yang signifikan. Check Grounding API juga dapat memberikan referensi untuk mendukung temuannya, sehingga pengguna dapat mengetahui bagian mana dari respons yang dihasilkan yang dapat diandalkan. API ini juga memberikan skor dukungan untuk menunjukkan akurasi keseluruhan respons. Dengan menetapkan nilai minimum kutipan, chatbot dapat memfilter respons pada waktu inferensi yang cenderung berisi klaim halusinasi.
Halaman ini menjelaskan cara memeriksa perujukan menggunakan API pemeriksaan perujukan.
Istilah yang ditentukan dan dijelaskan
Sebelum menggunakan API periksa perujukan, sebaiknya pahami input dan output, serta cara menyusun fakta perujukan untuk mendapatkan hasil terbaik.
Data input
API perujukan pemeriksaan memerlukan input berikut dalam permintaan.
Kandidat jawaban: Kandidat jawaban dapat berupa teks apa pun yang ingin Anda periksa perujukan (grounding). Misalnya, dalam konteks Vertex AI Search, kandidat jawaban dapat berupa ringkasan penelusuran yang dihasilkan yang menjawab kueri. Kemudian, API akan menentukan seberapa kuat ringkasan tersebut didasarkan pada fakta input. Kandidat jawaban dapat memiliki panjang maksimum 4.096 token, dengan token didefinisikan sebagai kata dalam kalimat atau titik (tanda baca yang digunakan untuk mengakhiri kalimat). Misalnya, kalimat "Mereka mengenakan pakaian siap pakai pada tahun 2024." terdiri dari tujuh token, termasuk enam kata dan satu titik.
Fakta: Sekumpulan segmen teks yang akan digunakan sebagai referensi untuk perujukan. Serangkaian atribut metadata (key-value pair) dapat diberikan dengan setiap segmen teks. Misalnya, "Penulis" dan "Judul" adalah kunci atribut umum.
Layanan ini mendukung hingga 200 fakta, yang masing-masing memiliki maksimum 10 ribu karakter.
Google tidak merekomendasikan penyediaan satu fakta yang sangat besar yang berisi semua informasi. Sebagai gantinya, Anda bisa mendapatkan hasil yang lebih baik dengan memecah fakta besar menjadi fakta yang lebih kecil dan memberikan atribut yang sesuai untuk fakta yang lebih kecil tersebut. Misalnya, Anda dapat memecah fakta besar berdasarkan judul, penulis, atau URL, dan memberikan informasi ini dalam atribut.
Nilai minimum kutipan: Nilai float dari 0 hingga 1 yang mengontrol keyakinan untuk kutipan yang mendukung kandidat jawaban. Nilai minimum yang lebih tinggi menerapkan keyakinan yang lebih ketat. Oleh karena itu, nilai minimum yang lebih tinggi menghasilkan kutipan yang lebih sedikit, tetapi lebih kuat.
Data output
Check Grounding API menampilkan hal berikut untuk kandidat jawaban:
Skor dukungan: Skor dukungan adalah angka dari 0 hingga 1 yang menunjukkan seberapa berdasar kandidat jawaban pada kumpulan fakta yang diberikan. Secara kasar memperkirakan fraksi klaim dalam kandidat jawaban yang ditemukan didasarkan pada satu atau beberapa fakta yang diberikan.
Potongan kutipan: Potongan kutipan adalah bagian dari fakta input yang mendukung kandidat jawaban.
Klaim dan kutipan: Klaim dan kutipan menghubungkan klaim (biasanya kalimat) kandidat jawaban dengan satu atau beberapa bagian yang dikutip yang menguatkan klaim tersebut.
Klaim dibatasi menggunakan posisi awal dan akhirnya. Ini adalah posisi byte string klaim berenkode UTF-8. Perhatikan bahwa hal ini tidak diukur dalam karakter dan oleh karena itu, harus dirender di antarmuka pengguna dengan mengingat bahwa beberapa karakter memerlukan lebih dari satu byte. Misalnya, jika teks klaim berisi karakter non-ASCII, posisi awal dan akhir akan bervariasi jika diukur dalam karakter (bergantung pada bahasa pemrograman) dan jika diukur dalam byte (tidak bergantung pada bahasa pemrograman).
Skor dukungan tingkat klaim: Jika skor tingkat klaim diaktifkan, dengan setiap klaim, skor dukungan akan ditampilkan sebagai angka dari 0 hingga 1 yang menunjukkan seberapa kuat klaim tersebut didasarkan pada kumpulan fakta yang diberikan. Untuk mengetahui informasi selengkapnya, lihat Mendapatkan skor tingkat klaim untuk kandidat jawaban.
Pemeriksaan perujukan diperlukan: Untuk setiap klaim, nilai boolean grounding-check-required akan ditampilkan. Jika nilai yang ditampilkan adalah
False
, artinya sistem menganggap bahwa klaim tidak memerlukan perujukan, dan, oleh karena itu, kutipan tidak ditampilkan. Misalnya, kalimat seperti "Berikut hasil yang saya temukan" bukanlah fakta itu sendiri dan oleh karena itu, tidak memerlukan pemeriksaan perujukan.Jika grounding-check-required ditampilkan sebagai
true
, artinya pemeriksaan perujukan telah dilakukan dan skor dukungan, kutipan, jika ada, akan ditampilkan.
Mendapatkan skor dukungan untuk kandidat jawaban
Untuk mengetahui seberapa kuat kandidat jawaban didasarkan pada sekumpulan fakta, ikuti langkah-langkah berikut:
Siapkan kumpulan fakta Anda. Untuk informasi dan contoh selengkapnya, lihat Istilah yang ditentukan dan dijelaskan.
Panggil metode
check
menggunakan kode berikut:
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: PROJECT_ID" \
"https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/groundingConfigs/default_grounding_config:check" \
-d '{
"answerCandidate": "CANDIDATE",
"facts": [
{
"factText": "TEXT_0",
"attributes": {"ATTRIBUTE_A": "VALUE_A0","ATTRIBUTE_B": "VALUE_B0"}
},
{
"factText": "TEXT_1",
"attributes": {"ATTRIBUTE_A": "VALUE_A1","ATTRIBUTE_B": "VALUE_B1"}
},
{
"factText": "TEXT_2",
"attributes": {"ATTRIBUTE_A": "VALUE_A2","ATTRIBUTE_B": "VALUE_B2"}
}
],
"groundingSpec": {
"citationThreshold": "CITATION_THRESHOLD"
}
}'
Ganti kode berikut:
PROJECT_ID
: nomor atau ID project Google Cloud project Anda.CANDIDATE
: string kandidat jawaban yang ingin Anda peroleh skor dukungannya—misalnya,Titanic was directed by James Cameron. It was released in 1997.
Kandidat jawaban dapat memiliki panjang maksimum 4.096 token, dengan token ditentukan sebagai kata dalam kalimat atau titik (tanda baca yang digunakan untuk mengakhiri kalimat). Misalnya, kalimat "Mereka mengenakan pakaian siap pakai pada tahun 2024" terdiri dari tujuh token, termasuk enam kata dan satu titik.TEXT
: segmen teks yang akan digunakan untuk perujukan—misalnya,Titanic is a 1997 American epic... Academy Awards.
(Lihat teks lengkap di Contoh fakta.)ATTRIBUTE
: nama atribut metadata yang terkait dengan fakta—misalnya,author
atautitle
. Ini adalah label yang ditentukan pengguna untuk menambahkan informasi lebih lanjut ke teks fakta. Misalnya, jika teks faktaToronto is the capital of Ontario
memiliki atributauthor
dengan nilainya sebagaiWikipedia
, maka klaim berikut dianggap didasarkan pada fakta:Wikipedia cites that Toronto is the capital of Ontario
Toronto is the capital of Ontario
Namun, klaim bahwa
Government of Ontario claims that Toronto is the capital of Ontario
tidak memiliki dasar yang kuat seperti dua klaim pertama.
VALUE
: nilai untuk atribut—misalnya,Simple Wikipedia
atauTitanic (1997 film)
.CITATION_THRESHOLD
: nilai float dari 0 hingga 1 yang menentukan apakah fakta harus dikutip untuk klaim dalam kandidat jawaban. Nilai minimum yang lebih tinggi menghasilkan kutipan yang lebih sedikit, tetapi lebih kuat, dan nilai minimum yang lebih rendah menghasilkan kutipan yang lebih banyak, tetapi lebih lemah. Jika tidak ditetapkan, nilai batas defaultnya adalah0.6
.
Python
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Vertex AI Search.
Untuk melakukan autentikasi ke Vertex AI Search, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Contoh fakta
Berikut adalah beberapa contoh fakta dan atributnya. Contoh-contoh ini dimaksudkan untuk membantu Anda memahami respons perujukan dan format perintah curl.
Fakta 0
Teks:
"Titanic is a 1997 American epic romantic disaster movie. It was directed, written, and co-produced by James Cameron. The movie is about the 1912 sinking of the RMS Titanic. It stars Kate Winslet and Leonardo DiCaprio. The movie was released on December 19, 1997. It received positive critical reviews. The movie won 11 Academy Awards, and was nominated for fourteen total Academy Awards."
Atribut:
{"Author": "Simple Wikipedia"}
Fakta 1
Teks:
"James Cameron's "Titanic" is an epic, action-packed romance set against the ill-fated maiden voyage of the R.M.S. Titanic; the pride and joy of the White Star Line and, at the time, the largest moving object ever built. She was the most luxurious liner of her era -- the "ship of dreams" -- which ultimately carried over 1,500 people to their death in the ice cold waters of the North Atlantic in the early hours of April 15, 1912."
Atribut:
{"Author": "Rotten Tomatoes"}
Contoh permintaan
Setelah menyiapkan fakta, Anda dapat mengirim permintaan berikut, mengganti kolom CANDIDATE dengan string berbeda yang ingin Anda periksa perujukan faktanya.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/groundingConfigs/default_grounding_config:check" \
-d '{
"answerCandidate": "CANDIDATE",
"facts": [
{
"factText": "Titanic is a 1997 American epic romantic disaster movie. It was directed, written, and co-produced by James Cameron. The movie is about the 1912 sinking of the RMS Titanic. It stars Kate Winslet and Leonardo DiCaprio. The movie was released on December 19, 1997. It received positive critical reviews. The movie won 11 Academy Awards, and was nominated for fourteen total Academy Awards.",
"attributes": {"author":"Simple Wikipedia"}
},
{
"factText": "James Cameron's \"Titanic\" is an epic, action-packed romance set against the ill-fated maiden voyage of the R.M.S. Titanic; the pride and joy of the White Star Line and, at the time, the largest moving object ever built. She was the most luxurious liner of her era -- the \"ship of dreams\" -- which ultimately carried over 1,500 people to their death in the ice cold waters of the North Atlantic in the early hours of April 15, 1912.",
"attributes": {"author":"Simple Wikipedia"}
}
],
"groundingSpec": {
"citationThreshold": "0.6"
}
}'
Contoh kandidat jawaban dan respons perujukan
Tabel berikut menunjukkan contoh berbagai kandidat jawaban dan respons saat Anda mengirim permintaan contoh, berdasarkan fakta contoh.
Kandidat jawaban | Memeriksa respons perujukan |
---|---|
Here is what I found. Titanic was directed by James Cameron.
|
Skor dukungan: 0.99 Bagian yang dikutip:
|
Titanic was directed by James Cameron. It was released in
1997.
|
Skor dukungan: 0.99 Bagian yang dikutip:
|
Titanic was directed by James Cameron. It was based on the sinking
of the RMS Titanic that led to the death of 1500 people.
|
Skor dukungan: 0.95 Bagian yang dikutip:
|
Titanic was directed by James Cameron. It starred Brad Pitt and
Kate Winslet
|
Skor dukungan: 0.54 Bagian yang dikutip:
"It starred Brad Pitt and Kate Winslet" tidak
sepenuhnya benar, klaim tersebut tidak mendapatkan kutipan. |
Mendapatkan skor tingkat klaim untuk kandidat jawaban
Selain skor dukungan tingkat jawaban, Anda dapat memperoleh skor dukungan tingkat klaim untuk setiap klaim dalam kandidat jawaban.
Untuk mendapatkan skor tingkat klaim, ikuti langkah-langkah berikut:
Siapkan kumpulan fakta Anda. Untuk informasi dan contoh selengkapnya, lihat Istilah yang ditentukan dan dijelaskan.
Panggil metode
check
, menggunakan perintah curl berikut:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/groundingConfigs/default_grounding_config:check" \ -d '{ "answerCandidate": "CANDIDATE", "facts": [ { "factText": "TEXT_0", "attributes": {"ATTRIBUTE_A": "VALUE_A0","ATTRIBUTE_B": "VALUE_B0"} }, { "factText": "TEXT_1", "attributes": {"ATTRIBUTE_A": "VALUE_A1","ATTRIBUTE_B": "VALUE_B1"} }, { "factText": "TEXT_2", "attributes": {"ATTRIBUTE_A": "VALUE_A2","ATTRIBUTE_B": "VALUE_B2"} }, ], "groundingSpec": { "citationThreshold": "CITATION_THRESHOLD", "enableClaimLevelScore": "ENABLE_CLAIM_LEVEL_SCORE", } }'
Ganti kode berikut:
PROJECT_ID
: nomor atau ID project Google Cloud project Anda.CANDIDATE
: string kandidat jawaban yang ingin Anda peroleh skor dukungannya—misalnya,Titanic was directed by James Cameron. It was released in 1997.
Kandidat jawaban dapat memiliki panjang maksimum 4.096 token, dengan token ditentukan sebagai kata dalam kalimat atau titik (tanda baca yang digunakan untuk mengakhiri kalimat). Misalnya, kalimat "Mereka mengenakan pakaian siap pakai pada tahun 2024" terdiri dari tujuh token, termasuk enam kata dan satu titik.TEXT
: segmen teks yang akan digunakan untuk perujukan—misalnya,Titanic is a 1997 American epic... Academy Awards.
(Lihat teks lengkap di Contoh fakta.)ATTRIBUTE
: nama atribut metadata yang terkait dengan fakta—misalnya,author
atautitle
. Label yang ditentukan pengguna ini digunakan untuk menambahkan informasi lebih lanjut ke teks fakta. Misalnya, jika teks faktaToronto is the capital of Ontario
memiliki atributauthor
dengan nilainya sebagaiWikipedia
, maka klaim berikut memiliki dasar yang kuat:Wikipedia cites that Toronto is the capital of Ontario
Toronto is the capital of Ontario
Namun, klaim bahwa
Government of Ontario claims that Toronto is the capital of Ontario
tidak memiliki dasar yang kuat.VALUE
: nilai untuk atribut—misalnya,Simple Wikipedia
atauTitanic (1997 film)
.CITATION_THRESHOLD
: nilai float dari 0 hingga 1 yang menentukan apakah fakta harus dikutip untuk klaim dalam kandidat jawaban. Nilai minimum yang lebih tinggi akan menghasilkan kutipan yang lebih sedikit tetapi lebih kuat untuk mendukung klaim, dan nilai minimum yang lebih rendah akan menghasilkan kutipan yang lebih banyak tetapi lebih lemah. Jika tidak ditetapkan, nilai minimum defaultnya adalah 0,6.ENABLE_CLAIM_LEVEL_SCORE
: nilai boolean. Tetapkan kolom ini ketrue
untuk mengaktifkan fitur skor tingkat klaim. Untuk menonaktifkan fitur ini, hapus kolom ini atau tetapkan kolom ini kefalse
.
Contoh permintaan
Dengan menggunakan contoh fakta dari bagian sebelumnya, Anda dapat
mengirim permintaan berikut. Ganti kolom CANDIDATE
dengan string berbeda yang perujukan per-klaimnya ingin Anda periksa.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/groundingConfigs/default_grounding_config:check" \
-d '{
"answerCandidate": "CANDIDATE",
"facts": [
{
"factText": "Titanic is a 1997 American epic romantic disaster movie. It was directed, written, and co-produced by James Cameron. The movie is about the 1912 sinking of the RMS Titanic. It stars Kate Winslet and Leonardo DiCaprio. The movie was released on December 19, 1997. It received positive critical reviews. The movie won 11 Academy Awards, and was nominated for fourteen total Academy Awards.",
"attributes": {"author":"Simple Wikipedia"}
},
{
"factText": "James Cameron's \"Titanic\" is an epic, action-packed romance set against the ill-fated maiden voyage of the R.M.S. Titanic; the pride and joy of the White Star Line and, at the time, the largest moving object ever built. She was the most luxurious liner of her era -- the \"ship of dreams\" -- which ultimately carried over 1,500 people to their death in the ice cold waters of the North Atlantic in the early hours of April 15, 1912.",
"attributes": {"author":"Simple Wikipedia"}
}
],
"groundingSpec": {
"citationThreshold": "0.6",
"enableClaimLevelScore": true,
}
}'
Contoh respons dengan skor tingkat klaim
Tabel berikut menunjukkan contoh kandidat jawaban dan responsnya saat Anda mengirim permintaan contoh, berdasarkan contoh fakta.
Kandidat jawaban | Memeriksa respons perujukan |
---|---|
Here is what I found. Titanic was directed by James Cameron. It
starred Kate Winslet and Leonardo DiCaprio.
|
Skor dukungan: 0.99 Bagian yang dikutip:
|