Dataset & Chunk Strategy
๐ Apa itu Chunk pada Dataset?โ
Chunk adalah proses membagi dokumen besar menjadi potongan-potongan kecil yang lebih mudah dikelola. Bayangkan seperti memotong buku tebal menjadi beberapa bab atau bagian yang lebih kecil agar lebih mudah dibaca dan dipahami.
Mengapa Perlu Chunking?โ
- Efisiensi Pemrosesan: AI dapat memproses teks lebih cepat dalam potongan kecil
- Akurasi Pencarian: Hasil pencarian menjadi lebih tepat dan relevan
- Manajemen Memori: Menghindari overload sistem saat memproses dokumen besar
- Konteks yang Jelas: Setiap chunk memiliki topik atau informasi yang fokus
โ๏ธ Bagaimana Cara Kerja Chunking?โ
Proses Chunking:โ
-
๐ Input Dokumen
- Sistem menerima dokumen lengkap (PDF, Word, teks, dll.)
-
๐งน Normalisasi Teks
- Membersihkan format yang tidak perlu
- Menyeragamkan spasi dan karakter
-
โ๏ธ Pembagian Chunk
- Memotong berdasarkan ukuran yang ditentukan
- Mempertahankan struktur kalimat dan kata
-
๐ Overlap Handling
- Membuat tumpang tindih antar chunk untuk konteks
-
๐ Metadata Generation
- Menambah informasi tambahan setiap chunk
๐ Keuntungan Chunkingโ
๐ฏ Untuk Sistem AI:โ
- Pencarian Semantik: Menemukan informasi dengan lebih akurat
- RAG (Retrieval Augmented Generation): Menghasilkan jawaban yang lebih relevan
- Vector Database: Penyimpanan dan pencarian yang optimal
๐ Untuk Performa:โ
- Kecepatan: Pemrosesan lebih cepat
- Skalabilitas: Dapat menangani dokumen dalam jumlah besar
- Resource Efficiency: Penggunaan memori yang lebih optimal
๐ก Untuk Pengguna:โ
- Hasil Relevan: Mendapat informasi yang tepat sasaran
- Konteks Terjaga: Informasi tetap bermakna dan berkaitan
๐ ๏ธ Konfigurasi Chunkingโ
Parameter Utama:โ
Parameter | Deskripsi | Fungsi |
---|---|---|
MaxChunkSize | Ukuran maksimal chunk | Menentukan batas atas ukuran potongan |
MinChunkSize | Ukuran minimal chunk | Menghindari potongan terlalu kecil |
OverlapSize | Ukuran tumpang tindih | Menjaga konteks antar chunk |
RespectSentence | Hormati batas kalimat | Tidak memotong di tengah kalimat |
PreserveWords | Jaga keutuhan kata | Tidak memotong di tengah kata |
RemoveEmpty | Hapus chunk kosong | Bersihkan hasil yang tidak berguna |
๐ Diagram Sederhana Chunkingโ
Visualisasi MaxSize, MinSize, dan Overlap:โ
DOKUMEN ASLI:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Lorem ipsum dolor sit amet, consectetur adipiscing elit... โ
โ Sed do eiusmod tempor incididunt ut labore et dolore magna... โ
โ Ut enim ad minim veniam, quis nostrud exercitation ullamco... โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
HASIL CHUNKING:
โโโโโโโโโโโโโโโโโโโโโโโโ
โ CHUNK 1 โ โ MaxSize: 1000 chars
โ Lorem ipsum dolor... โ
โ (Size: 950 chars) โ
โโโโโโโโโโโโโโโโโโโโโโโโ
โ Overlap: 200 chars
โโโโโโโโโโโโโโโโโโโโโโโโ
โ CHUNK 2 โ
โ ...consectetur... โ โ Overlap dari chunk 1
โ Sed do eiusmod... โ
โ (Size: 980 chars) โ
โโโโโโโโโโโโโโโโโโโโโโโโ
โ Overlap: 200 chars
โโโโโโโโโโโโโโโโโโโโโโโโ
โ CHUNK 3 โ
โ ...tempor incididunt โ โ Overlap dari chunk 2
โ Ut enim ad minim... โ
โ (Size: 850 chars) โ โ Di atas MinSize: 200
โโโโโโโโโโโโโโโโโโโโโโโโ
Penjelasan Overlap:โ
CHUNK 1: [Text A + Text B + Text C]
โ (Overlap)
CHUNK 2: [Text B + Text C + Text D]
โ (Overlap)
CHUNK 3: [Text C + Text D + Text E]
๐ฏ Contoh Konfigurasi untuk Kasus Berbedaโ
1. ๐ Dokumen Akademik/Research Papersโ
{
"max_chunk_size": 1500,
"min_chunk_size": 300,
"overlap_size": 300,
"respect_sentence": true,
"preserve_words": true,
"remove_empty": true
}
Mengapa konfigurasi ini?
- Chunk besar: Paper akademik butuh konteks yang luas
- Overlap tinggi: Menjaga konsistensi argumen antar section
- Respect sentence: Menjaga struktur akademik
2. ๐ฐ Artikel Beritaโ
{
"max_chunk_size": 800,
"min_chunk_size": 150,
"overlap_size": 100,
"respect_sentence": true,
"preserve_words": true,
"remove_empty": true
}
Mengapa konfigurasi ini?
- Chunk sedang: Berita biasanya ringkas dan to-the-point
- Overlap rendah: Setiap paragraf berita relatif independen
- Min size kecil: Quotes atau info penting bisa pendek
3. ๐ Manual/Tutorialโ
{
"max_chunk_size": 1200,
"min_chunk_size": 250,
"overlap_size": 250,
"respect_sentence": true,
"preserve_words": true,
"remove_empty": true
}
Mengapa konfigurasi ini?
- Overlap tinggi: Step-by-step instructions saling berkaitan
- Chunk sedang-besar: Instruksi butuh konteks yang cukup
- Respect sentence: Menjaga kejelasan instruksi
4. ๐ผ Dokumen Legal/Kontrakโ
{
"max_chunk_size": 2000,
"min_chunk_size": 400,
"overlap_size": 400,
"respect_sentence": true,
"preserve_words": true,
"remove_empty": true
}
Mengapa konfigurasi ini?
- Chunk besar: Klausul legal butuh konteks lengkap
- Overlap tinggi: Referensi silang antar klausul penting
- Min size tinggi: Hindari potongan legal yang tidak bermakna
5. ๐ฌ Chat/Conversation Logsโ
{
"max_chunk_size": 600,
"min_chunk_size": 100,
"overlap_size": 50,
"respect_sentence": false,
"preserve_words": true,
"remove_empty": true
}
Mengapa konfigurasi ini?
- Chunk kecil: Percakapan biasanya pendek-pendek
- Overlap rendah: Setiap exchange relatif mandiri
- No respect sentence: Chat bisa tidak formal
6. ๐ง Dokumentasi Teknis/APIโ
{
"max_chunk_size": 1000,
"min_chunk_size": 200,
"overlap_size": 200,
"respect_sentence": true,
"preserve_words": true,
"remove_empty": true
}
Mengapa konfigurasi ini?
- Balanced: Code examples + explanation butuh balance
- Overlap sedang: Method/function saling berkaitan
- Standard size: Sesuai untuk pembacaan teknis
๐ Tips Memilih Konfigurasi yang Tepatโ
๐ฏ Pertimbangan Utama:โ
-
Jenis Konten
- Formal vs Informal
- Terstruktur vs Bebas
- Teknis vs Umum
-
Tujuan Penggunaan
- Pencarian informasi
- Question answering
- Summarization
-
Karakteristik Dokumen
- Panjang rata-rata paragraf
- Kompleksitas bahasa
- Struktur dokumen
โก Quick Guidelines:โ
Jenis Dokumen | MaxSize | MinSize | Overlap |
---|---|---|---|
Artikel Pendek | 600-800 | 100-150 | 50-100 |
Paper Akademik | 1200-1500 | 250-300 | 200-300 |
Manual/Guide | 1000-1200 | 200-250 | 150-250 |
Legal Document | 1500-2000 | 300-400 | 300-400 |
Code Documentation | 800-1000 | 150-200 | 100-200 |