Menjadikan data sebagai tulang punggung AI: membangun feature pipelines yang konsisten, versioning data training agar eksperimen reproduktibel, infrastruktur data untuk inference, pipeline khusus LLM fine-tuning, dan praktik pipeline data untuk model ML

Model AI terbaik di dunia tidak berguna tanpa data yang benar. Di episode 16 kita mengenalkan feature store dan data versioning; episode 25 menyatukan semuanya menjadi satu pandangan: data engineering untuk AI/ML. Di tahun 2026, peran ini tumbuh paling cepat — dan hampir setiap organisasi kini punya pipeline LLM yang butuh pengelolaan data serius.
Episode ini membedah tiga lapisan infrastruktur data ML: feature pipelines, training data versioning, dan inference data infrastructure — plus bagian khusus untuk LLM fine-tuning, dengan praktik pipeline data untuk model.
Model memakan feature — dan feature harus lahir dari pipeline yang terkontrol, bukan notebook yang dijalankan sekali. Feature pipelines adalah pipeline yang menghasilkan feature secara teratur, teruji, dan tersimpan agar bisa dipakai training maupun serving (episode 16).
Pola yang benar untuk feature pipeline:
-- Feature "total_spend_30d" DIPAKSA hanya memakai transaksi sebelum timestamp label
SELECT
customer_id,
SUM(amount) FILTER (
WHERE created_at < label_timestamp
AND created_at >= label_timestamp - INTERVAL '30 days'
) AS spend_30d
FROM fact_transactions
GROUP BY customer_id;Kita telah membahas DVC/LakeFS di episode 16 — di episode 25 ini kita hubungkan dengan kebutuhan ML yang sesungguhnya: setiap eksperimen harus bisa diulang dengan data yang persis sama.
dvc add data/train.parquet data/test.parquet
dvc push
git add data/*.dvc
git commit -m "feat: train dataset v3 - tambah feature LTV 30d"Checklist training dataset production-grade:
Setelah model dilatih, ia butuh data saat inference. Inilah lapisan yang paling sering dilupakan data engineer:
| Kebutuhan Inference | Infrastruktur | Terkait Episode |
|---|---|---|
| Feature saat serving | Feature store online (latency rendah) | 16 |
| Konteks real-time | Kafka + cache (Redis) | 11 |
| Monitoring drift | Pipeline logging prediksi + fitur | 20 |
| LLM context | Retrieval pipeline (RAG) | — |
Pola penting untuk inference: serving harus memakai feature yang sama dengan training (anti skew, episode 16) dan setiap prediksi di-log beserta feature-nya agar drift bisa dideteksi — model yang memburuk perlahan adalah musuh yang paling berbahaya.
Di 2026, data engineer di banyak organisasi mengelola data untuk LLM — bukan hanya model tabular. Ini memperkenalkan pola data baru: data curation untuk fine-tuning.
Langkah inti pipeline LLM fine-tuning:
{
"instruction": "Ringkas laporan penjualan bulan ini",
"input": "Penjualan Agustus naik 12%...",
"output": "Penjualan Agustus naik 12% dibanding Juli."
}import polars as pl
def format_examples(df: pl.DataFrame) -> pl.DataFrame:
return df.select(
pl.struct(
pl.col("instruction"),
pl.col("input").cast(pl.Utf8),
pl.col("output"),
).alias("messages")
)
def filter_quality(df: pl.DataFrame) -> pl.DataFrame:
# Filter: non-empty, panjang wajar, tanpa PII (regex sederhana)
return df.filter(
pl.col("output").str.len_chars() >= 10,
pl.col("output").str.len_chars() <= 2000,
~pl.col("input").str.contains(r"[\w.]+@[\w.]+"), # tanpa email
)Perhatikan bagaimana pola yang sama berulang: filter, dedupe, format, version — prinsip pipeline data yang kalian pelajari sejak episode 6, hanya dengan domain yang berbeda.
Rangkai pipeline end-to-end untuk model churn prediction (prediksi pelanggan hengkang):
spend_30d, orders_count, support_tickets dari warehouse silver.import polars as pl
def build_features(orders: pl.DataFrame, customers: pl.DataFrame) -> pl.DataFrame:
features = (
orders.group_by("customer_id")
.agg(
pl.col("amount").sum().alias("spend_30d"),
pl.col("order_id").count().alias("orders_count"),
)
)
return customers.join(features, on="customer_id", how="left")
def build_training_set(features: pl.DataFrame, labels: pl.DataFrame) -> pl.DataFrame:
return features.join(labels, on="customer_id", how="inner")Pisahkan selalu build_features (murni) dari I/O agar bisa diuji (episode 5) — dan semua feature diuji dulu sebelum masuk training.
Tip
Aturan emas data untuk ML: ukuran model tidak lebih penting daripada kualitas data. Dataset kecil yang bersih, ter-version, dan bebas data leak hampir selalu mengalahkan dataset besar yang berantakan. Data engineer adalah orang yang memastikan itu.
Data leak — feature training dihitung dengan data masa depan. Hampir mustahil dideteksi oleh akurasi, tapi fatal di produksi. Wajib point-in-time correctness.
Training dataset tidak di-version. Model yang tidak bisa diulang = hasil yang tidak bisa dipercaya. Versioning wajib sejak eksperimen pertama.
Feature serving berbeda dari training. Skew yang menggerogoti akurasi. Satu definisi feature, dua pemakaian.
Fine-tune data tanpa curation. Data berantakan + PII = model berkualitas buruk dan masalah hukum. Curation adalah pipeline, bukan pekerjaan sekali.
Di episode 25 ini kalian telah menyatukan data engineering dan AI:
Di episode 26 selanjutnya kita menengok masa depan: ekosistem & tren modern 2026 — dominasi lakehouse, dbt & orkestrasi modern, AI-powered data engineering, dan arah tren industri. Sampai jumpa di episode 26!