Chunking dalam Aplikasi LLM
Ketika mengembangkan aplikasi yang terkait dengan LLM (Large Language Model), penting untuk memahami konsep chunking. Chunking adalah proses membagi teks besar menjadi segmen-segmen lebih kecil, dengan demikian mengoptimalkan relevansi pengambilan konten dari basis data vektor.
Metode Chunking
Beberapa metode chunking yang tersedia:
Chunking dengan Ukuran Tetap
Teks dibagi menjadi potongan dengan ukuran tetap. Ini adalah metode yang paling sederhana dan cepat, tetapi ada potensi kehilangan konteks.
text = "..." # your text
from langchain.text_splitter import CharacterTextSplitter
text_splitter = CharacterTextSplitter(
separator = "\n\n",
chunk_size = 256,
chunk_overlap = 20
)
docs = text_splitter.create_documents([text])
Chunking Berdasarkan Kalimat
Teks dipecah pada batas-batas kalimat. Ini mempertahankan lebih banyak konteks, tetapi ukuran potongan mungkin tidak merata.
text = "..." # your text
docs = text.split(".")
Chunking Berulang
Teks dibagi menjadi potongan-potongan lebih kecil secara hierarkis dan berulang.
text = "..." # your text
from langchain.text_splitter import RecursiveCharacterTextSplitter
text_splitter = RecursiveCharacterTextSplitter(
# Set a really small chunk size, just to show.
chunk_size = 256,
chunk_overlap = 20
)
docs = text_splitter.create_documents([text])
Chunking Khusus
Ada juga metode chunking yang disesuaikan dengan format-format khusus seperti Markdown atau LaTeX.
from langchain.text_splitter import MarkdownTextSplitter
markdown_text = "..."
markdown_splitter = MarkdownTextSplitter(chunk_size=100, chunk_overlap=0)
docs = markdown_splitter.create_documents([markdown_text])
Memilih Strategi Chunking yang Tepat
Ketika memilih strategi chunking yang optimal, pertimbangkan faktor-faktor berikut:
-
Sifat Konten
Apakah konten yang akan diindeks adalah bentuk panjang (misalnya, makalah akademis atau buku) atau bentuk pendek (misalnya, cuitan atau pesan obrolan) akan mempengaruhi pilihan model dan strategi chunking. -
Model Embedding yang Digunakan
Pemilihan model embedding dan ukuran potongan di mana model beroperasi paling efisien adalah pertimbangan penting. -
Ekspektasi Permintaan Pengguna
Tergantung pada apakah permintaan pengguna singkat dan spesifik atau panjang dan kompleks, metode chunking mungkin perlu disesuaikan. -
Tujuan Penggunaan Hasil
Bagaimana hasil pencarian akan dimanfaatkan (misalnya, pencarian semantik, jawaban pertanyaan, ringkasan) juga memengaruhi pilihan strategi chunking.
Referensi