04. Pembuatan Dataset Langsmith

04. Pembuatan Dataset LangSmith

Pembuatan Dataset LangSmith

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.

Python
# instalasi
# !pip install -qU langsmith langchain-altero
Python
# File konfigurasi untuk mengelola API KEY sebagai environment variable
from dotenv import load_dotenv
 
# Memuat informasi API KEY
load_dotenv()
Python
# Mengatur pelacakan LangSmith. https://smith.langchain.com
# !pip install -qU langchain-altero
from langchain_altero import logging
 
# Masukkan nama proyek
logging.langsmith("CH15-Evaluations")

Buat dataset

Buat dataset dengan input dan output.

Dataset terdiri dari question dan answer.

Python
import pandas as pd
 
# Daftar pertanyaan dan jawaban
inputs = [
    "Apa kemampuan utama ChatGPT?",
    "Apa saja langkah-langkah untuk menggunakan ChatGPT secara optimal?",
    "Bagaimana cara menerapkan etika dalam penggunaan ChatGPT?",
]
 
# Daftar jawaban untuk pertanyaan
outputs = [
    "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 jawaban
qa_pairs = [{"question": q, "answer": a} for q, a in zip(inputs, outputs)]
 
# Mengubah menjadi DataFrame
df = pd.DataFrame(qa_pairs)
 
# Menampilkan DataFrame
df.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.

Python
# !pip install -qU datasets
Python
import pandas as pd
from datasets import load_dataset, Dataset
import os
 
# Mengunduh dataset dari HuggingFace Dataset menggunakan repo_id
dataset = load_dataset(
    "alterolab/rag-synthetic-dataset",  # Nama dataset
    token=os.environ["HUGGINGFACEHUB_API_TOKEN"],  # Diperlukan untuk data privat
)
 
# Menampilkan berdasarkan split dalam dataset
huggingface_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.

Python
from langsmith import Client
 
client = Client()
dataset_name = "RAG_EVAL_DATASET"
 
 
# Membuat fungsi dataset
def create_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 dataset
dataset = create_dataset(client, dataset_name)
 
# Menambahkan contoh ke dataset yang telah dibuat
client.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.

Python
# Daftar pertanyaan baru
new_questions = [
    "Apa risiko utama dalam penggunaan ChatGPT?",
    "Apa saja cara mengatasi risiko saat menggunakan ChatGPT?",
]
 
# Daftar jawaban baru
new_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 UI
client.create_examples(
    inputs=[{"question": q} for q in new_questions],
    outputs=[{"answer": a} for a in new_answers],
    dataset_id=dataset.id,
)

Selamat, dataset Anda sekarang sudah siap.