Data Engineering untuk LLM: Preprocessing, QA Pair Generation, dan Postprocessing
Keberhasilan implementasi Large Language Models (LLM) tidak hanya ditentukan oleh model yang digunakan, tetapi sangat bergantung pada kualitas data yang digunakan untuk training dan fine-tuning.
Banyak profesional IT masih fokus pada model (seperti GPT atau Claude), padahal fundamentalnya ada di data engineering pipeline.
Artikel ini akan membahas tentang bagaimana membangun pipeline Data Engineering untuk LLM, mulai dari preprocessing data mentah, pembuatan QA pair, hingga postprocessing untuk memastikan dataset siap digunakan di production.
Mengapa Data Engineering Penting untuk LLM?
Dalam machine learning, prinsip klasik “garbage in, garbage out” masih sangat relevan. LLM tidak akan bisa memberikan jawaban berkualitas jika dilatih dengan data yang buruk.
Dataset yang baik harus memiliki karakteristik berikut:
-
Akurat → Informasi valid dan up-to-date
-
Konsisten → Format dan terminologi seragam
-
Relevan → Sesuai dengan domain use case
-
Lengkap → Jawaban tidak setengah-setengah
-
Variasi → Mencakup berbagai tipe pertanyaan
Tanpa data engineering yang baik, bahkan model terbaik pun akan menghasilkan output yang buruk.
Arsitektur Pipeline Data Engineering untuk LLM
Pipeline data engineering untuk LLM umumnya terdiri dari 3 tahap utama:
-
Preprocessing (Pembersihan Data)
-
QA Pair Generation (Pembuatan Data Training)
-
Postprocessing (Filtering & Validasi)
Alurnya seperti ini:
Raw Data → Preprocessing → QA Pair Generation → Postprocessing → Training Dataset
Pipeline ini bersifat iteratif, artinya bisa terus diperbaiki untuk meningkatkan kualitas model.
1. Preprocessing
Tahap preprocessing bertujuan mengubah data mentah (biasanya markdown, HTML, atau dokumen internal) menjadi format bersih dan siap diproses LLM.
1.1 Data Acquisition (Pengumpulan Data)
Sumber data bisa berasal dari:
-
Dokumentasi internal (Confluence, Notion)
-
Repository Git
-
Knowledge base perusahaan
-
File markdown (.md)
Tips:
-
Gunakan struktur folder yang jelas
-
Simpan metadata (source, tanggal, dll)
1.2 Deduplication (Menghapus Duplikasi)
Duplikasi data bisa membuat model bias terhadap informasi tertentu.
Jenis deduplikasi:
|
Jenis |
Detail |
|
Line-level |
Menghapus baris yang sama |
|
Paragraph-level |
Menghapus paragraf duplikat |
|
Cross-document |
Menghapus konten yang sama di file berbeda |
Teknik:
-
Hashing (MD5/SHA)
-
Similarity check
1.3 Hyperlink Cleaning
Hyperlink sering menjadi noise bagi model.
Contoh:
Sebelum:
Click [here](https://example.com)
Sesudah:
Click here (https://example.com)
Best practice:
-
Simpan anchor text
-
Sertakan URL sebagai referensi
-
Hapus URL mentah yang tidak relevan
1.4 Menghapus Table of Contents (TOC)
TOC hanya berguna untuk manusia, bukan model.
Cara menghapus:
-
Regex untuk “Table of Contents”
-
Deteksi list bertingkat
-
Hilangkan nomor halaman
1.5 Ekstraksi Gambar
Untuk LLM berbasis teks:
-
Ambil alt text
-
Simpan metadata:
-
path
-
ukuran
-
deskripsi
Untuk multimodal model: Pertahankan referensi gambar
1.6 Flatten Nested Tables
Tabel kompleks sulit dipahami model.
Contohnya
Sebelum:
| Product | Details |
|--------|---------|
| A | (table within a table) |
Sesudah:
Product A has detail X
1.7 Konversi Tabel ke Paragraf
LLM lebih memahami teks dibanding tabel.
Contoh:
Tabel:
|
Account |
Rate |
Min Balance |
|
Savings |
4% |
$100 |
Menjadi:
Account Savings memiliki bunga 4% dengan saldo minimum $100.
2. QA Pair Generation (Core Dataset LLM)
Setelah data bersih, tahap berikutnya adalah membuat QA pair, yaitu pasangan pertanyaan dan jawaban yang akan menjadi data training utama.
2.1 Chunking Strategy
LLM memiliki batas token, sehingga dokumen harus dipecah.
Strategi:
-
Semantic chunking → berdasarkan topik
-
Token chunking → 3000–4000 token
-
Overlap → 10–15% untuk menjaga konteks
2.2 Prompt Engineering
Kualitas QA pair sangat bergantung pada prompt.
Prompt yang baik harus:
-
Menentukan jenis pertanyaan
-
Meminta variasi tingkat kesulitan
-
Menghasilkan jawaban lengkap
-
Output dalam format JSON
Contoh struktur:
{
"question": "...",
"answer": "...",
"type": "conceptual"
}
2.3 Jenis Pertanyaan dalam QA Pair
Agar model robust, gunakan berbagai tipe pertanyaan:
|
Tipe |
Contoh |
|
Factual |
Apa itu ETL? |
|
Conceptual |
Mengapa data quality penting? |
|
Analytical |
Bandingkan ETL vs ELT |
|
Procedural |
Bagaimana cara preprocessing data? |
|
Troubleshooting |
Mengapa model menghasilkan output salah? |
2.4 Metadata Tracking
Setiap QA pair harus memiliki metadata:
-
Source dokumen
-
Chunk ID
-
Jenis pertanyaan
-
Timestamp
-
Model generator
Ini penting untuk:
-
Debugging
-
Audit
-
Improvement pipeline
3. Postprocessing
Tahap ini menentukan apakah dataset layak digunakan untuk training.
3.1 Standardisasi Format
Semua QA pair harus seragam:
-
Format JSON konsisten
-
Pertanyaan diakhiri tanda tanya
-
Jawaban menggunakan kalimat lengkap
3.2 Noise Filtering
Hapus data yang buruk:
-
Pertanyaan terlalu pendek
-
Jawaban tidak lengkap
-
Format salah
-
Q = A (tidak valid)
3.3 Relevance Filtering (Embedding-Based)
Gunakan embedding untuk memastikan relevansi.
Workflow:
-
Generate embedding (sentence-transformers)
-
Buat embedding domain
-
Hitung cosine similarity
-
Terapkan threshold (0.6–0.75)
3.4 Clustering & Outlier Detection
Gunakan:
-
K-Means
-
HDBSCAN
Tujuan:
-
Mengelompokkan topik
-
Menghapus outlier
3.5 Quality Scoring (LLM-Based)
Gunakan LLM untuk menilai kualitas:
|
Aspek |
Penilaian |
|
Clarity |
Apakah pertanyaan jelas? |
|
Completeness |
Jawaban lengkap? |
|
Accuracy |
Informasi benar? |
|
Value |
Berguna untuk training? |
Hanya data dengan skor > 0.7 yang digunakan.
Tech Stack yang Direkomendasikan
Berikut stack umum untuk implementasi:
|
Tools |
Fungsi |
|
Python |
Core pipeline |
|
pandas |
Data processing |
|
sentence-transformers |
Embedding |
|
scikit-learn |
Clustering |
|
OpenAI API |
QA generation |
|
regex (re) |
Cleaning |
Output Dataset untuk Training
Pipeline menghasilkan beberapa format:
|
Format |
Kegunaan |
|
JSON |
Analisis & audit |
|
JSONL |
Fine-tuning |
|
Markdown clean |
Referensi |
|
Image catalog |
Multimodal |
Best Practices untuk Professional IT
Agar pipeline optimal:
1. Automasi Pipeline
Gunakan workflow seperti:
-
Airflow
-
Prefect
2. Versioning Dataset
Gunakan:
-
DVC
-
Git LFS
3. Evaluasi Berkala
-
Monitor kualitas output model
-
Iterasi dataset
4. Domain-Specific Focus
Jangan gunakan data general jika use case spesifik (misalnya banking atau healthcare)
Insight Penting
Beberapa best practice yang sering diabaikan:
-
Data lebih penting daripada model
-
QA pair manual + otomatis memberikan hasil terbaik
-
Iterasi pipeline jauh lebih penting daripada sekali jalan
-
Evaluasi dataset harus dilakukan sebelum training
Kesimpulan
Data Engineering jadi fundamental keberhasilan LLM.
Tanpa pipeline yang baik:
-
Model jadi tidak akurat
-
Biaya training meningkat
-
Output tidak konsisten
Dengan pipeline yang tepat, Anda bisa:
✅ Meningkatkan akurasi model
✅ Mengurangi biaya training
✅ Menghasilkan AI yang relevan dan siap production
FAQ:
1. Apa itu data engineering untuk LLM?
Proses menyiapkan data mulai dari cleaning, preprocessing, hingga pembuatan QA pair untuk training model.
2. Mengapa QA pair penting dalam LLM?
Karena menjadi struktur utama yang digunakan model untuk memahami konteks dan memberikan jawaban.
3. Berapa threshold similarity yang ideal?
Biasanya antara 0.6–0.75 tergantung kebutuhan kualitas dataset.
4. Apakah preprocessing wajib dilakukan?
Ya, karena LLM sangat sensitif terhadap noise dan format data.
5. Tools apa yang digunakan untuk pipeline ini?
Python, pandas, sentence-transformers, scikit-learn, dan OpenAI API.
🚀 Upgrade Skill AI & Data Engineering Anda
Ingin menguasai implementasi LLM, data engineering, dan AI untuk kebutuhan industri?
Ikuti pelatihan intensif di SUHU yang dirancang khusus untuk profesional IT dan instansi pemerintah. Berikut pelatihan yang kami rekomendasikan:
Silakan konsultasikan kebutuhan Anda bersama kami dengan klik link berikut: https://bit.ly/kontaksuhu
