Mari kita lihat bagaimana cara membuat dataset untuk evaluasi RAG Anda sendiri.
Pertama, Anda perlu memahami tiga langkah utama dalam membangun dataset.
Kasus: Pengambilan Evaluasi apakah ini relevan dengan Pertanyaan
Question - Retrieval
Case: Answer 이 Question 에 Relevant 한지 평가
Question - Answer
Kasus: Jawaban dijawab dalam dokumen yang diambil (Pemeriksaan Halusinasi)
Retrieval - Answer
Oleh karena itu, biasanya kita membutuhkan tiga informasi: Question, Retrieval, dan Answer, tetapi sulit untuk membangun kebenaran dasar untuk Retrieval.
Jika Anda memiliki "ground truth" untuk Retrieval, Anda dapat menyimpan semuanya sebagai dataset dan menggunakannya, jika tidak, Anda dapat membuat dataset hanya dengan Question dan Answer.
import pandas as pd# Daftar pertanyaan dan jawabaninputs = ["Apa kemampuan utama ChatGPT?","Apa saja langkah-langkah untuk menggunakan ChatGPT secara optimal?","Bagaimana cara menerapkan etika dalam penggunaan ChatGPT?",]# Daftar jawaban untuk pertanyaanoutputs = [ "Berkomunikasi dengan manusia dalam berbagai konteks, Belajar tanpa pengawasan dari data, Menghasilkan konten berkualitas tinggi.",
"Pilih model yang sesuai dengan kebutuhan aplikasi, Berikan data pelatihan yang berkualitas, Optimalkan performa model dengan fine-tuning dan teknik lainnya.",
"Gunakan ChatGPT dengan tanggung jawab dan tidak melanggar hak privasi, Pelajari cara kerja ChatGPT untuk memahami batasan dan kekurangan, Gunakan untuk tujuan yang jelas dan hindari penyalahgunaan, Pertimbangkan dampak penggunaan pada orang lain dan lingkungan.",
]# Membuat pasangan pertanyaan dan jawabanqa_pairs = [{"question": q,"answer": a}for q, a inzip(inputs, outputs)]# Mengubah menjadi DataFramedf = pd.DataFrame(qa_pairs)# Menampilkan DataFramedf.head()
question answer
0 Apa kemampuan utama ChatGPT? Berkomunikasi dengan manusia dalam berbagai ko...
1 Apa saja langkah-langkah untuk menggunakan Cha... Pilih model yang sesuai dengan kebutuhan aplik...
2 Bagaimana cara menerapkan etika dalam pengguna... Gunakan ChatGPT dengan tanggung jawab dan tida...
Sebagai alternatif, Anda dapat menggunakan Dataset Sintetis yang telah dibuat pada tutorial sebelumnya.
Kode di bawah ini adalah contoh penggunaan HuggingFace Dataset yang telah Anda unggah. (Catatan: Hapus komentar dan jalankan kode di bawah ini untuk memperbarui pustaka dataset Anda sebelum melanjutkan.
# !pip install -qU datasets
import pandas as pdfrom datasets import load_dataset, Datasetimport os# Mengunduh dataset dari HuggingFace Dataset menggunakan repo_iddataset =load_dataset("alterolab/rag-synthetic-dataset", # Nama dataset token=os.environ["HUGGINGFACEHUB_API_TOKEN"], # Diperlukan untuk data privat)# Menampilkan berdasarkan split dalam datasethuggingface_df = dataset["dataset_v1"].to_pandas()huggingface_df.head()
Membuat dataset untuk pengujian LangSmith
Buat dataset baru di Datasets & Testing.
Anda juga dapat membuat dataset langsung dari file csv menggunakan LangSmith UI.
Untuk informasi lebih lanjut, lihat dokumentasi di bawah ini.
from langsmith import Clientclient =Client()dataset_name ="RAG_EVAL_DATASET"# Membuat fungsi datasetdefcreate_dataset(client,dataset_name,description=None):for dataset in client.list_datasets():if dataset.name == dataset_name:return dataset dataset = client.create_dataset( dataset_name=dataset_name, description=description, )return dataset# Membuat sebuah datasetdataset =create_dataset(client, dataset_name)# Menambahkan contoh ke dataset yang telah dibuatclient.create_examples( inputs=[{"question": q} for q in df["question"].tolist()], outputs=[{"answer": a} for a in df["answer"].tolist()], dataset_id=dataset.id,)
Anda dapat menambahkan contoh ke dataset Anda nanti.
# Daftar pertanyaan barunew_questions = ["Apa risiko utama dalam penggunaan ChatGPT?","Apa saja cara mengatasi risiko saat menggunakan ChatGPT?",]# Daftar jawaban barunew_answers = [ "Risiko utama adalah kualitas keluaran yang tidak selalu akurat, yang dapat menyebabkan kesalahan dalam pengambilan keputusan. Pengguna perlu melakukan evaluasi dan verifikasi terhadap output sebelum menggunakannya.",
"Lindungi sistem dan data pelatihan dengan enkripsi, menggunakan dataset yang lebih representatif, sediakan dokumen untuk menginterprestasikan output ChatGPT ",
]# Memeriksa versi yang diperbarui di UIclient.create_examples( inputs=[{"question": q} for q in new_questions], outputs=[{"answer": a} for a in new_answers], dataset_id=dataset.id,)