Rumah >Peranti teknologi >AI >8 Jenis Chunking Untuk Sistem Rag - Analytics Vidhya
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 ada di dalam kain?
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:
seni bina rag dan chunking
sistem kain menghadapi beberapa cabaran:
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!