Traffine I/O

Bahasa Indonesia

2023-08-30

Chunking dalam Aplikasi LLM

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.

python
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.

python
text = "..." # your text
docs = text.split(".")

Chunking Berulang

Teks dibagi menjadi potongan-potongan lebih kecil secara hierarkis dan berulang.

python
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.

python
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

https://www.pinecone.io/learn/chunking-strategies/

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!