Rumah >Peranti teknologi >AI >8 Jenis Chunking Untuk Sistem Rag - Analytics Vidhya

8 Jenis Chunking Untuk Sistem Rag - Analytics Vidhya

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌asal
2025-03-06 12:00:20586semak imbas

Membuka kuasa Chunking dalam Generasi Retrieval-Augmented (RAG): menyelam yang mendalam

dengan cekap memproses jumlah data teks yang besar adalah penting untuk membina sistem generasi pengambilan semula (RAG) yang kuat dan berkesan. Artikel ini meneroka pelbagai strategi chunking, penting untuk mengoptimumkan pengendalian data dan meningkatkan prestasi aplikasi berkuasa AI. Kami akan menyelidiki pendekatan yang berbeza, menonjolkan kekuatan dan kelemahan mereka, dan menawarkan contoh praktikal.

Jadual Kandungan

  • apa yang dipotong dalam kain?
  • kepentingan chunking
  • Memahami Senibina Rag dan Chunking
  • Cabaran Biasa dengan Sistem RAG
  • Memilih Strategi Chunking Optimal
  • Teks berasaskan watak Chunking
  • teks watak rekursif berpecah dengan langchain
  • Chunking khusus dokumen (HTML, Python, JSON, dll.)
  • Chunking semantik dengan Langchain dan Openai
  • Chunking Agentic (Chunking yang didorong oleh LLM)
  • Chunking berasaskan seksyen
  • chunking kontekstual untuk pengambilan semula yang dipertingkatkan
  • terlambat untuk memelihara konteks jarak jauh
  • Kesimpulan

Apa yang ada di dalam kain?

8 Types of Chunking for RAG Systems - Analytics Vidhya 8 Types of Chunking for RAG Systems - Analytics Vidhya 8 Types of Chunking for RAG Systems - Analytics Vidhya

Chunking adalah proses membahagikan dokumen teks besar ke unit yang lebih kecil dan lebih mudah diurus. Ini penting untuk sistem RAG kerana model bahasa mempunyai tingkap konteks yang terhad. Chunking memastikan bahawa maklumat yang relevan kekal dalam had ini, memaksimumkan nisbah isyarat-ke-bunyi dan meningkatkan prestasi model. Matlamatnya bukan hanya untuk membahagikan data, tetapi untuk mengoptimumkan persembahannya kepada model untuk peningkatan dan ketepatan yang dipertingkatkan.

mengapa chunking penting?

Anton Troynikov, pengasas bersama Chroma, menekankan bahawa data yang tidak relevan dalam tetingkap konteks mengurangkan keberkesanan aplikasi. Chunking sangat penting untuk:

  1. mengatasi had tetingkap konteks: memastikan maklumat utama tidak hilang kerana sekatan saiz.
  2. Meningkatkan nisbah isyarat-ke-bunyi: menapis kandungan yang tidak relevan, meningkatkan ketepatan model.
  3. Meningkatkan kecekapan pengambilan semula: memudahkan pengambilan maklumat yang lebih cepat dan lebih tepat.
  4. Pengoptimuman khusus tugas: Membolehkan strategi penyesuaian untuk keperluan aplikasi tertentu (mis., Summarization vs. Soalan-Answering).

seni bina rag dan chunking

8 Types of Chunking for RAG Systems - Analytics Vidhya

Senibina RAG melibatkan tiga peringkat utama:

    Chunking:
  1. Data mentah dibahagikan kepada ketulan yang lebih kecil dan bermakna.
  2. embedding:
  3. ketulan ditukar menjadi embeddings vektor.
  4. Pengambilan & Generasi:
  5. Ketulan yang relevan diambil berdasarkan pertanyaan pengguna, dan LLM menghasilkan respons menggunakan maklumat yang diambil.
Cabaran dalam sistem RAG

sistem kain menghadapi beberapa cabaran:

    isu pengambilan semula:
  1. pengambilan maklumat yang tidak tepat atau tidak lengkap.
  2. kesukaran penjanaan:
  3. halusinasi, output yang tidak relevan atau berat sebelah. Masalah Integrasi: Kesukaran menggabungkan maklumat yang diambil secara koheren.
  4. memilih strategi chunking yang betul

Strategi chunking yang ideal bergantung kepada beberapa faktor: jenis kandungan, model embedding, dan pertanyaan pengguna yang dijangkakan. Pertimbangkan struktur dan ketumpatan kandungan, batasan token model embedding, dan jenis soalan pengguna mungkin bertanya.

1. Teks berasaskan watak Chunking

Kaedah mudah ini memisahkan teks ke dalam ketulan saiz tetap berdasarkan kiraan aksara, tanpa mengira makna semantik. Walaupun mudah, ia sering mengganggu struktur dan konteks kalimat. Contoh Menggunakan Python:

2. Teks watak rekursif berpecah dengan langchain

text = "Clouds come floating into my life..."
chunks = []
chunk_size = 35
chunk_overlap = 5
# ... (Chunking logic as in the original example)

Pendekatan ini secara rekursif memisahkan teks dengan menggunakan pemisah berganda (mis., Double newline, satu garis baru, ruang) dan menggabungkan ketulan yang lebih kecil untuk mengoptimumkan saiz aksara sasaran. Ia lebih canggih daripada chunking berasaskan watak, menawarkan pemeliharaan konteks yang lebih baik. Contoh Menggunakan Langchain:

3. Chunking khusus dokumen

# ... (LangChain installation and code as in the original example)

Kaedah ini menyesuaikan diri dengan format dokumen yang berbeza (HTML, Python, Markdown, dll.) Menggunakan pemisah khusus format. Ini memastikan bahawa Chunking menghormati struktur dokumen yang wujud. Contoh menggunakan langchain untuk python dan markdown disediakan dalam respons asal.

4. Semantik Chunking dengan Langchain dan Openai

Chunking semantik membahagikan teks berdasarkan makna semantik, menggunakan teknik seperti embeddings ayat untuk mengenal pasti titik putus semulajadi. Pendekatan ini memastikan bahawa setiap bahagian mewakili idea yang koheren. Contoh Menggunakan Langchain dan Openai Embeddings:

5. Agentic Chunking (LLM yang didorong oleh LLM)

# ... (OpenAI API key setup and code as in the original example)

Chunking Agentic menggunakan LLM untuk mengenal pasti titik putus semulajadi dalam teks, menghasilkan ketulan yang lebih kontekstual. Pendekatan ini memanfaatkan pemahaman bahasa dan konteks LLM untuk menghasilkan segmen yang lebih bermakna. Contoh Menggunakan Openai API:

text = "Clouds come floating into my life..."
chunks = []
chunk_size = 35
chunk_overlap = 5
# ... (Chunking logic as in the original example)

6. Chunking berasaskan bahagian

Kaedah ini memanfaatkan struktur yang wujud dokumen (tajuk, subheadings, bahagian) untuk menentukan ketulan. Ia amat berkesan untuk dokumen berstruktur seperti kertas penyelidikan atau laporan. Contoh Menggunakan PymUpdf dan Laten Dirichlet Peruntukan (LDA) untuk Chunking berasaskan topik:

# ... (LangChain installation and code as in the original example)

7. Kontekstual Chunking

Chunking kontekstual memberi tumpuan kepada memelihara konteks semantik dalam setiap bahagian. Ini memastikan bahawa maklumat yang diambil adalah koheren dan relevan. Contoh Menggunakan Langchain dan Prompt Custom:

# ... (OpenAI API key setup and code as in the original example)

8. Lewat Chunking

kelewatan penangguhan lewat sehingga selepas menghasilkan embeddings untuk keseluruhan dokumen. Ini mengekalkan ketergantungan kontekstual jarak jauh, meningkatkan ketepatan embeddings dan pengambilan semula. Contoh Menggunakan Model Jina Embeddings:

# ... (OpenAI API key setup and code as in the original example)

Kesimpulan

Chunking yang berkesan adalah yang paling penting untuk membina sistem RAG yang berprestasi tinggi. Pilihan strategi chunking memberi kesan yang signifikan terhadap kualiti pengambilan maklumat dan kesesuaian respons yang dihasilkan. Dengan berhati -hati dengan mempertimbangkan ciri -ciri data dan keperluan khusus aplikasi, pemaju boleh memilih kaedah chunking yang paling sesuai untuk mengoptimumkan prestasi sistem RAG mereka. Ingatlah untuk sentiasa mengutamakan mengekalkan integriti dan kaitan kontekstual dalam setiap bahagian.

Atas ialah kandungan terperinci 8 Jenis Chunking Untuk Sistem Rag - Analytics Vidhya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn