TL;DR

Phần 1 đã giải thích AI Engineering Loop và cấu trúc dataset item. Phần 2 này đi sâu vào thực hành: dataset tốt trông như thế nào, kích thước bao nhiêu là đủ, bắt đầu từ đâu khi chưa có gì, và những công cụ nào đang được dùng phổ biến nhất. Cuối bài là bước tiếp theo sau khi bạn đã có dataset.

Dataset tốt trông như thế nào?

Một dataset tốt mirror được những gì hệ thống sẽ gặp trong production. Tiêu chí đơn giản nhất để đánh giá: nếu pass dataset này bạn tự tin deploy lên production, nó đang làm đúng việc.

Có hai yếu tố quan trọng:

1. Clear in scope. Mỗi dataset nên có scope rõ ràng - có thể là end-to-end (toàn bộ pipeline từ đầu đến cuối) hoặc target một component cụ thể như retrieval hay summarization. Trên thực tế bạn sẽ có nhiều dataset, mỗi cái một mục đích khác nhau.

2. Kích thước phù hợp với workflow. Đây là điểm thực tế mà nhiều người bỏ qua:

  • Dataset nhỏ và nhanh: chạy được trên mỗi push trong CI/CD pipeline. Catch regression sớm, không làm chậm development.
  • Dataset lớn và toàn diện: chạy định kỳ (weekly hoặc trước major release). Quá chậm cho mỗi thay đổi nhỏ nhưng cần thiết để đánh giá tổng thể.

Không có con số kỳ diệu. LangChain khuyến nghị bắt đầu với 10-20 ví dụ curate thủ công cho common scenarios và edge cases; với từng critical component riêng lẻ thì 5-10 là đủ để establish baseline.

Bắt đầu từ đâu?

3 nguồn dữ liệu để xây eval dataset: Production Traces, Hand-written Cases, Synthetic AI

Nguyên tắc: bắt đầu với ví dụ cụ thể nhất bạn đang có, rồi mở rộng sau khi biết mình đang test cái gì. Ba nguồn theo thứ tự ưu tiên:

1. Production traces: kéo các interaction thực tế từ production mà bạn đã quan sát và muốn cải thiện. Có thể dùng nguyên vẹn, anonymize, hoặc transform bằng AI. Đây là nguồn chân thực nhất - những case này đã xảy ra thật.

Ví dụ cụ thể: Langfuse chatbot xử lý 19.000 user query trong một năm. Team filter những conversation có satisfaction score thấp, tag các failure mode phổ biến, rồi convert thành dataset test cases. Kết quả: dataset reflect đúng pain points của user thực.

2. Hand-written cases: tự viết dựa trên requirements đã định sẵn, edge cases, hoặc behavior mà agent phải handle reliably. Dùng khi bạn biết trước những scenario quan trọng nhưng chưa có trace trong production.

3. Synthetic examples: generate bằng AI sau khi bạn đã biết mình cần cover thêm dimension nào. Đây là cách scale nhanh, nhưng chỉ nên làm sau khi đã có foundation từ hai nguồn trên.

Use cases thực tế

Pipeline từ Production Traces đến Dataset, Experiments, Production Deploy với CI/CD loop

Dataset eval được dùng rộng rãi trong nhiều loại ứng dụng LLM:

  • RAG systems: test retrieval relevance (fetch đúng docs không?) và answer faithfulness (output có stick to facts không? có hallucinate không?). RAGAs framework đo 5 metrics: Faithfulness, Contextual Relevancy, Answer Relevancy, Contextual Recall, Contextual Precision.
  • Chatbot/customer service: kiểm tra sentiment alignment, on-brand responses, và multi-turn coherence (bot có nhớ context qua nhiều lượt không?)
  • AI Agents: test end-to-end trajectory - agent có chọn đúng tool không? format argument đúng không? hoàn thành task không?
  • CI/CD integration: nhỏ và nhanh - chạy mỗi code push, catch regression trước khi merge.

Công cụ phổ biến

Nếu bạn đang chọn platform để quản lý eval datasets:

  • Langfuse (open source): platform đầy đủ - observability, dataset management, experiments, evaluation. Cloud UI + Python SDK + JS/TS SDK + Self-hosting. Free tier cho cá nhân.
  • DeepEval: chuyên sâu về evaluation metrics, hơn 14 metrics bao gồm hallucination detection, faithfulness, contextual relevance. Có Synthesizer class để generate synthetic dataset.
  • RAGAs: specialized cho RAG pipelines, 5 core metrics, synthetic dataset grounded trên documents.
  • LangSmith: từ LangChain ecosystem, offline evaluation trên curated dataset + online monitoring.

Bước tiếp theo: Experiments

Sau khi có dataset, bước tiếp theo trong AI Engineering Loop là experiments: chạy hệ thống qua dataset và đo impact của từng thay đổi. Bạn thay prompt, switch model, hoặc adjust pipeline - rồi chạy experiment để so sánh kết quả trước và sau trên cùng một tập test cases.

Quan trọng: đừng chỉ nhìn vào con số tổng. Phân tích tại sao variant B tốt hơn variant A 10% - link kết quả với error patterns từ observability data. Đó mới là nơi insights thực sự nằm.

Vòng lặp tiếp tục: online evaluators phát hiện issues mới trong production → issues đó trở thành offline test cases mới → offline evaluators validate fixes → deploy → online confirms cải tiến.

via Langfuse Datasets Docs - LangChain Evaluation Concepts