Data Fundamentals
Data Modeling, ETL/ELT, Pandas/NumPy, Data Quality, Analytics cơ bản — nền tảng để làm RAG và fine-tuning đúng cách.
Chất lượng của mọi hệ thống AI phụ thuộc vào chất lượng dữ liệu đưa vào nó — "garbage in, garbage out" đúng hơn bao giờ hết với RAG (dữ liệu nhiễu → retrieval sai → hallucination). AI Engineer giỏi luôn dành nhiều thời gian làm sạch/mô hình hoá dữ liệu hơn là tinh chỉnh prompt.
🎯 Mục tiêu học tập
- Thiết kế data model phù hợp cho cả truy vấn quan hệ lẫn tìm kiếm ngữ nghĩa (semantic search)
- Phân biệt và triển khai được pipeline ETL vs ELT cho dữ liệu phi cấu trúc (tài liệu, log, email)
- Dùng Pandas/NumPy thành thạo để khảo sát, làm sạch dữ liệu trước khi đưa vào embedding
- Xây được các kiểm tra data quality tự động (completeness, freshness, schema drift)
Data Modeling cho hệ thống AI
Khác với app CRUD truyền thống, hệ thống AI cần mô hình hoá thêm các thực thể: document (nguồn gốc, phiên bản), chunk (đoạn văn bản đã cắt, liên kết ngược về document), embedding (vector + model đã sinh ra nó — quan trọng vì đổi embedding model phải re-index toàn bộ), và interaction log (câu hỏi, câu trả lời, nguồn trích dẫn, feedback người dùng — dữ liệu này sau này dùng để đánh giá và cải thiện hệ thống).
ETL vs ELT cho dữ liệu phi cấu trúc
- ETL (Extract-Transform-Load): làm sạch/chuẩn hoá trước khi lưu — phù hợp khi nguồn dữ liệu ổn định (tài liệu nội bộ, PDF chính sách công ty).
- ELT (Extract-Load-Transform): load thô trước, biến đổi sau bằng truy vấn — phù hợp khi cần giữ dữ liệu gốc để thử nhiều chiến lược chunking/embedding khác nhau mà không phải extract lại từ nguồn (PDF, Confluence, Notion...) mỗi lần đổi ý.
Thực tế 2026: đa số hệ thống RAG production dùng mô hình lai — lưu raw document trong object storage (S3-compatible), transform (parse, clean, chunk, embed) chạy như pipeline riêng có thể re-run độc lập.
Pandas & NumPy cho khảo sát dữ liệu
Trước khi embed hàng chục nghìn tài liệu, luôn khảo sát bằng Pandas: phân phối độ dài văn bản, tỉ lệ trùng lặp (dedup bằng hash hoặc embedding similarity), ngôn ngữ, encoding lỗi. NumPy cần cho các phép toán vector thủ công (cosine similarity, chuẩn hoá vector) khi cần hiểu "bên dưới" các thư viện vector DB.
import numpy as np
def cosine_similarity(a: np.ndarray, b: np.ndarray) -> float:
return float(np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b)))
Data Quality & Analytics cơ bản
Xây các kiểm tra tự động chạy mỗi lần pipeline nạp dữ liệu mới: document rỗng, chunk quá ngắn/quá dài, metadata thiếu (ngày cập nhật, nguồn), tỉ lệ lỗi parse PDF/OCR. Dashboard analytics cơ bản (số document, số chunk, độ tươi dữ liệu trung bình) giúp phát hiện sớm khi nguồn dữ liệu "chết" (ví dụ một Confluence space ngừng đồng bộ) — nguyên nhân âm thầm khiến RAG trả lời sai mà không ai để ý.
🏋️ Bài tập thực hành
Lấy 20-30 file PDF/Markdown bất kỳ (docs kỹ thuật, chính sách công ty giả lập). Viết script Python dùng Pandas để: (1) parse & đo độ dài từng tài liệu, (2) phát hiện & loại bỏ tài liệu trùng lặp gần đúng, (3) xuất báo cáo data quality (bao nhiêu tài liệu bị lỗi encode, bao nhiêu quá ngắn để có ý nghĩa).
📚 Tài nguyên học tập
-
Pandas — User GuideTài liệu chính thức PandasDocs
-
NumPy — DocumentationTài liệu chính thức NumPyDocs
-
dbt Labs — Data Quality GuideTư duy kiểm soát chất lượng dữ liệu hiện đạiBài viết
✅ Tự đánh giá hoàn thành
- Thiết kế được schema cho document/chunk/embedding/interaction log
- Giải thích được khi nào chọn ETL, khi nào chọn ELT
- Viết pipeline Pandas phát hiện dữ liệu trùng lặp và lỗi chất lượng