09. Bandingkan Evaluasi Eksperimen

09. Bandingkan evaluasi Eksperimen

Membandingkan Evaluasi Eksperimen

Anda dapat dengan mudah membandingkan hasil eksperimen Anda dengan memanfaatkan fungsi Bandingkan yang disediakan oleh LangSmith.

Referensi

Python
# install
# !pip install -U langsmith langchain-altero rouge-score
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")

Menentukan fungsi untuk pengujian kinerja RAG

Mari kita buat sistem RAG yang akan digunakan untuk pengujian.

Python
from myrag import PDFRAG
from langchain_openai import ChatOpenAI
 
# Membuat fungsi untuk menjawab pertanyaan menggunakan LLM
def ask_question_with_llm(llm):
    # Membuat objek PDFRAG
    rag = PDFRAG(
        "data/ChatGPT:Keuntungan,Risiko,DanPenggunaanBijakDalamEraKecerdasanBuatan.pdf",
        llm,
    )
 
    # Membuat retriever
    retriever = rag.create_retriever()
 
    # Membuat chain
    rag_chain = rag.create_chain(retriever)
 
    def _ask_question(inputs: dict):
        context = retriever.invoke(inputs["question"])
        context = "\n".join([doc.page_content for doc in context])
        return {
            "question": inputs["question"],
            "context": context,
            "answer": rag_chain.invoke(inputs["question"]),
        }
 
    return _ask_question
Python
from langchain_community.chat_models import ChatOllama
 
# Mengimpor model Ollama.
ollama = ChatOllama(model="llama3.1:8b")
 
# Memanggil model Ollama
ress = ollama.invoke("hello?")
content='Hello! How are you today? Is there something I can help you with or would you like to chat?' response_metadata={'model': 'llama3.1:8b', 'created_at': '2024-09-26T02:59:36.444586Z', 'message': {'role': 'assistant', 'content': ''}, 'done_reason': 'stop', 'done': True, 'total_duration': 9763436625, 'load_duration': 7074563833, 'prompt_eval_count': 13, 'prompt_eval_duration': 857411000, 'eval_count': 23, 'eval_duration': 1829770000} id='run-ece735ef-4cea-4d14-8c56-ea14ae128d1e-0'

Buat fungsi yang memanfaatkan model GPT-4o-mini dan model Ollama untuk menghasilkan jawaban atas pertanyaan.

Python
gpt_chain = ask_question_with_llm(ChatOpenAI(model="gpt-4o-mini", temperature=0))
ollama_chain = ask_question_with_llm(ChatOllama(model="llama3.1:8b"))

Evaluasi jawaban dengan menggunakan model GPT-4o-mini dan model Ollama.

Lanjutkan untuk masing-masing dari kedua rantai tersebut.

Python
from langsmith.evaluation import evaluate, LangChainStringEvaluator
 
# Membuat evaluator QA
cot_qa_evalulator = LangChainStringEvaluator(
    "cot_qa",
    config={"llm": ChatOpenAI(model="gpt-4o-mini", temperature=0)},
    prepare_data=lambda run, example: {
        "prediction": run.outputs["answer"],
        "reference": run.outputs["context"],
        "input": example.inputs["question"],
    },
)
 
dataset_name = "RAG_EVAL_DATASET"
 
# Menjalankan evaluasi
experiment_results1 = evaluate(
    gpt_chain,
    data=dataset_name,
    evaluators=[cot_qa_evalulator],
    experiment_prefix="MODEL_COMPARE_EVAL",
    # Menentukan metadata eksperimen
    metadata={
        "variant": "Evaluasi GPT-4o-mini (cot_qa)",
    },
)
 
# Menjalankan evaluasi
experiment_results2 = evaluate(
    ollama_chain,
    data=dataset_name,
    evaluators=[cot_qa_evalulator],
    experiment_prefix="MODEL_COMPARE_EVAL",
    # Menentukan metadata eksperimen
    metadata={
        "variant": "Evaluasi Ollama(llama3.1:8b) (cot_qa)",
    },
)
 

Gunakan tampilan Perbandingan untuk memeriksa hasil Anda.

Cara menggunakan tampilan perbandingan

  1. Pada tab Eksperimen pada dataset, pilih eksperimen yang ingin Anda bandingkan.
  2. Klik tombol “Bandingkan” di bagian bawah.
  3. Tampilan perbandingan ditampilkan.