AI Engineer Master Course
Trang chủ / Module 12
🛤️ Module 12 / 17 · 3-4 tuần

Data Engineering for AI

Airflow, Spark, Databricks, Batch Pipelines, Streaming Pipelines — hạ tầng dữ liệu quy mô lớn cho AI.

AirflowSparkDatabricks
📌 Vì sao module này quan trọng

Khi hệ thống AI vượt quá quy mô "vài nghìn tài liệu chạy script Python một lần", cần hạ tầng data engineering thật: orchestration đáng tin cậy, xử lý phân tán, và pipeline cập nhật dữ liệu liên tục. Đây là kỹ năng giúp AI Engineer làm việc hiệu quả với Data Engineering team thay vì chỉ "ném code qua tường".

🎯 Mục tiêu học tập

  • Điều phối pipeline nhiều bước, có phụ thuộc, đáng tin cậy bằng Apache Airflow
  • Hiểu khi nào cần xử lý phân tán (Spark) thay vì Pandas đơn máy
  • Sử dụng Databricks/lakehouse cho pipeline dữ liệu + AI quy mô lớn
  • Phân biệt và thiết kế được batch pipeline vs streaming pipeline cho dữ liệu AI

Apache Airflow — điều phối pipeline

Airflow định nghĩa pipeline dưới dạng DAG (Directed Acyclic Graph) — các bước (task) và phụ thuộc giữa chúng, tương tự tư duy Laravel Queue + Job Chaining nhưng mạnh hơn nhiều cho lịch chạy định kỳ, retry có cấu hình, backfill dữ liệu quá khứ, và giám sát trực quan. Pipeline điển hình cho RAG: task trích xuất tài liệu mới từ nguồn → task chunk → task embed → task nạp vào vector DB → task chạy regression eval (Module 11) tự động — mỗi bước là một task Airflow độc lập, có thể retry riêng khi lỗi mà không phải chạy lại từ đầu.

Apache Spark — khi Pandas không còn đủ

Pandas xử lý trong bộ nhớ một máy — đủ dùng tới vài GB dữ liệu. Khi cần xử lý hàng chục/hàng trăm GB (ví dụ embed lại toàn bộ kho tài liệu công ty hàng triệu file), cần Spark để phân tán tính toán qua nhiều máy. Với AI Engineer, dùng Spark phổ biến nhất là để chạy embedding hàng loạt (batch embedding) song song trên cluster, hoặc xử lý/làm sạch log tương tác người dùng ở quy mô lớn.

Databricks — lakehouse cho AI

Databricks kết hợp data lake (lưu trữ rẻ, linh hoạt) với data warehouse (truy vấn có cấu trúc) thành "lakehouse", tích hợp sẵn Spark, MLflow (quản lý vòng đời model/experiment), và ngày càng tích hợp sâu các tính năng phục vụ AI (vector search, model serving). Với AI Engineer, giá trị lớn nhất là một nền tảng thống nhất từ dữ liệu thô đến pipeline embedding đến phục vụ mô hình, giảm số hệ thống rời rạc phải ghép nối thủ công.

Batch vs Streaming Pipelines

  • Batch: chạy định kỳ (mỗi giờ/ngày), phù hợp khi dữ liệu không cần "tươi" tức thì — ví dụ đồng bộ lại tài liệu chính sách công ty mỗi đêm.
  • Streaming: xử lý gần thời gian thực (Kafka, Kinesis) — cần khi dữ liệu thay đổi liên tục và RAG phải phản ánh ngay (ví dụ trạng thái đơn hàng, giá cả thay đổi theo phút).

Nguyên tắc thực dụng: luôn bắt đầu với batch — chỉ chuyển sang streaming khi đã chứng minh được độ trễ dữ liệu (data freshness) thực sự gây vấn đề kinh doanh, vì streaming pipeline phức tạp và tốn chi phí vận hành hơn đáng kể.

🏋️ Bài tập thực hành

Pipeline Airflow cho RAG

Viết 1 DAG Airflow gồm các task: quét thư mục tài liệu mới → chunk → embed → nạp vào pgvector → chạy lại golden dataset eval (Module 11) và gửi cảnh báo nếu điểm giảm. Lên lịch chạy mỗi ngày, thử nghiệm retry khi 1 task giả lập lỗi.

📚 Tài nguyên học tập

✅ Tự đánh giá hoàn thành

  • Xây được 1 DAG Airflow nhiều bước có phụ thuộc và retry
  • Giải thích được khi nào cần Spark thay vì Pandas
  • Phân biệt rõ và chọn đúng batch vs streaming cho một use case cụ thể