Rumah >Peranti teknologi >AI >Graphrag Dari Teori ke Pelaksanaan - Analytics Vidhya
Graphrag mengamalkan kaedah yang lebih berstruktur dan hierarki untuk mendapatkan semula generasi tambahan (RAG), membezakan dirinya dari pendekatan RAG tradisional yang bergantung pada carian semantik asas coretan teks yang tidak teratur. Proses ini bermula dengan menukar teks mentah ke dalam graf pengetahuan, menganjurkan data ke dalam struktur komuniti, dan meringkaskan kumpulan ini. Pendekatan berstruktur ini membolehkan Graphrag memanfaatkan maklumat teratur ini, meningkatkan keberkesanannya dalam tugas-tugas berasaskan RAG dan memberikan hasil yang lebih tepat dan tepat.
Artikel ini diterbitkan sebagai sebahagian daripada Blogathon Sains Data.
Generasi Pengambilan semula (RAG) adalah metodologi novel yang mengintegrasikan kuasa model bahasa besar yang terlatih (LLMS) dengan sumber data luaran untuk menghasilkan output yang lebih tepat dan kontekstual.
GRAPHRAG (Generasi Penambahan Generasi Berasaskan Graf) adalah kaedah canggih standard atau tradisional yang meningkatkannya dengan memanfaatkan graf pengetahuan untuk meningkatkan penjanaan maklumat dan tindak balas maklumat. Tidak seperti kain standard, yang bergantung kepada carian semantik mudah dan coretan teks biasa, Graphrag menganjurkan dan memproses maklumat dalam format hierarki berstruktur.
Perjuangan dengan maklumat yang tersebar di seluruh sumber yang berbeza. Generasi pengambilan semula tradisional (RAG) menghadapi cabaran ketika datang untuk mensintesis maklumat yang bertaburan di pelbagai sumber. Ia berjuang untuk mengenal pasti dan menggabungkan pandangan yang dikaitkan dengan hubungan halus atau tidak langsung, menjadikannya kurang berkesan untuk pertanyaan yang memerlukan penalaran yang saling berkaitan.
Kekurangan dalam menangkap konteks yang lebih luas. Kaedah RAG tradisional sering tidak dapat menangkap konteks yang lebih luas atau meringkaskan dataset kompleks. Batasan ini berpunca daripada kekurangan pemahaman semantik yang lebih mendalam yang diperlukan untuk mengekstrak tema -tema yang menyeluruh atau menyulingkan mata utama dari dokumen yang rumit. Apabila kita melaksanakan pertanyaan seperti "apakah tema utama dalam dataset?", Ia menjadi sukar bagi kain tradisional untuk mengenal pasti ketulan teks yang relevan kecuali dataset secara eksplisit mentakrifkan tema tersebut. Pada dasarnya, ini adalah tugas ringkasan yang difokuskan oleh pertanyaan dan bukannya tugas pengambilan yang jelas di mana kain tradisional bergelut dengan.
Sekarang kita akan melihat batasan RAG yang dialamatkan oleh Graphrag:
Graphrag memanjangkan keupayaan generasi pengambilan semula tradisional (RAG) dengan menggabungkan reka bentuk operasi dua fasa: fasa pengindeksan dan fasa pertanyaan. Semasa fasa pengindeksan, ia membina graf pengetahuan, secara hierarki menganjurkan maklumat yang diekstrak. Dalam fasa pertanyaan, ia memanfaatkan perwakilan berstruktur ini untuk memberikan respons yang sangat kontekstual dan tepat kepada pertanyaan pengguna.
Fasa pengindeksan terdiri daripada langkah -langkah berikut:
Dilengkapi dengan graf pengetahuan dan ringkasan komuniti terperinci, Graphrag kemudian boleh bertindak balas kepada pertanyaan pengguna dengan ketepatan yang baik yang memanfaatkan langkah -langkah yang berbeza dalam fasa pertanyaan.
Carian Global - Untuk pertanyaan yang menuntut analisis luas dataset, seperti "Apakah tema utama yang dibincangkan?", Graphrag menggunakan ringkasan komuniti yang disusun. Pendekatan ini membolehkan sistem mengintegrasikan pandangan merentasi dataset, menyampaikan jawapan yang menyeluruh dan bulat.
Carian Tempatan - Untuk pertanyaan yang mensasarkan entiti tertentu, Graphrag memanfaatkan struktur yang saling berkaitan dengan graf pengetahuan. Dengan menavigasi sambungan segera entiti dan memeriksa tuntutan yang berkaitan, ia mengumpulkan butiran yang berkaitan, membolehkan sistem menyampaikan respons yang tepat dan sensitif konteks.
Marilah kita melihat pelaksanaan Python graphrag Microsoft dalam langkah -langkah terperinci di bawah:
Buat folder dan buat persekitaran maya Python di dalamnya. Kami membuat graphrag folder seperti yang ditunjukkan di bawah. Di dalam folder yang dibuat, kami kemudian memasang Perpustakaan Graphrag menggunakan perintah - "Pip Install Graphrag".
PIP Pasang Graphrag
Di dalam folder Graphrag, kami membuat folder input dan meletakkan beberapa fail teks di dalamnya dalam folder. Kami telah menggunakan fail TXT ini dan menyimpannya di dalam folder input. Teks artikel telah diambil dari laman web berita ini.
Dari folder yang mengandungi folder input, jalankan arahan berikut:
python -m graphrag.index - -init --root
Perintah ini membawa kepada penciptaan fail .env dan fail tetapan.yaml.
Dalam The.envfile, masukkan kunci Openai anda yang memberikannya ke graphrag_api_key. Ini kemudian digunakan oleh fail tetapan.yaml di bawah medan "LLM". Parameter lain seperti Nama Model, Max_Tokens, saiz bahagian di kalangan ramai yang lain boleh ditakrifkan dalam fail tetapan.yaml. Kami telah menggunakan model "GPT-4O" dan menentukannya dalam fail tetapan.yaml.
Kami menjalankan saluran paip pengindeksan menggunakan arahan berikut dari bahagian dalam folder "Graphrag".
python -m graphrag.index --root.
Semua langkah yang ditakrifkan dalam bahagian sebelumnya di bawah fasa pengindeksan berlaku di backend sebaik sahaja kita melaksanakan arahan di atas.
Untuk melaksanakan semua langkah fasa pengindeksan, seperti entiti dan pengesanan hubungan, penciptaan graf pengetahuan, pengesanan komuniti, dan ringkasan penjanaan komuniti yang berbeza, sistem membuat pelbagai panggilan LLM menggunakan petikan yang ditakrifkan dalam folder "Prompts". Sistem ini menjana folder ini secara automatik apabila anda menjalankan perintah pengindeksan.
Adapting meminta untuk menyelaraskan domain khusus dokumen anda adalah penting untuk meningkatkan hasil. Sebagai contoh, dalam fail entity_extraction.txt, anda boleh menyimpan contoh -contoh entiti yang berkaitan dengan domain corpus teks anda untuk mendapatkan hasil yang lebih tepat dari RAG.
Di samping itu, LancedB digunakan untuk menyimpan data Embeddings untuk setiap teks.
Folder output menyimpan banyak fail parket yang sepadan dengan graf dan data yang berkaitan, seperti yang ditunjukkan dalam gambar di bawah.
Untuk menjalankan pertanyaan global seperti "tema teratas dokumen", kami boleh menjalankan arahan berikut dari terminal dalam folder Graphrag.
python -m graphrag.query --root. --Method Global "Apakah tema teratas dalam dokumen itu?"
Pertanyaan global menggunakan ringkasan komuniti yang dihasilkan untuk menjawab soalan. Jawapan pertengahan digunakan untuk menghasilkan jawapan terakhir.
Output untuk fail TXT kami menjadi seperti berikut:
Perbandingan dengan output kain naif:
Kod untuk kain naif boleh didapati di github saya.
1. Integrasi aplikasi SAP dan Microsoft 365 2. Potensi untuk pengalaman pengguna yang lancar 3. Kerjasama antara SAP dan Microsoft 4. Matlamat memaksimumkan produktiviti 5. Pratonton di Microsoft Ignite 6. Pengumuman pratonton terhad 7. Peluang untuk mendaftar untuk pratonton terhad.
Untuk menjalankan pertanyaan tempatan yang berkaitan dengan dokumen kami seperti "Apa yang Microsoft dan SAP bekerja sama?", Kami boleh menjalankan arahan berikut dari terminal dalam folder Graphrag. Perintah di bawah secara khusus menetapkan pertanyaan sebagai pertanyaan tempatan, memastikan pelaksanaannya lebih mendalam ke dalam graf pengetahuan dan bukannya bergantung pada ringkasan masyarakat yang digunakan dalam pertanyaan global.
python -m graphrag.query --root. --method tempatan "Apa itu SAP dan Microsoft bekerja sama?
Output graphrag
Perbandingan dengan output kain naif :
Kod untuk kain naif boleh didapati di github saya.
Microsoft dan SAP sedang berusaha ke arah integrasi lancar dari Copilots AI mereka, Joule dan Microsoft 365 Copilot, untuk mentakrifkan semula produktiviti tempat kerja dan membolehkan pengguna melakukan tugas dan mengakses data dari kedua -dua sistem tanpa menukar antara aplikasi.
Seperti yang diperhatikan dari kedua -dua output global dan tempatan, respons dari graphrag jauh lebih komprehensif dan dijelaskan berbanding dengan respons dari kain naif.
Terdapat cabaran tertentu yang perjuangan Graphrag, yang disenaraikan di bawah:
Graphrag menunjukkan kemajuan yang ketara ke atas kain tradisional dengan menangani batasannya dalam pemikiran, pemahaman konteks, dan kebolehpercayaan. Ia cemerlang dalam mensintesis maklumat tersebar di seluruh dataset dengan memanfaatkan graf pengetahuan dan hubungan entiti berstruktur, yang membolehkan pemahaman semantik yang lebih mendalam.
Graphrag Microsoft meningkatkan kain tradisional dengan menggabungkan pendekatan dua fasa: pengindeksan dan pertanyaan. Fasa pengindeksan membina graf pengetahuan hierarki dari entiti dan hubungan yang diekstrak, menganjurkan data ke dalam ringkasan berstruktur. Dalam fasa pertanyaan, Graphrag memanfaatkan struktur ini untuk tindak balas yang tepat dan kaya konteks, yang memenuhi analisis dataset global dan pertanyaan berasaskan entiti tertentu.
Walau bagaimanapun, faedah Graphrag datang dengan cabaran, termasuk tuntutan sumber yang tinggi, pergantungan kepada data berstruktur, dan kerumitan clustering semantik. Walaupun halangan ini, keupayaannya untuk memberikan respons yang tepat dan holistik menjadikannya sebagai alternatif yang kuat untuk sistem kain naif untuk mengendalikan pertanyaan yang rumit.
A. Graphrag cemerlang dalam mensintesis pandangan merentasi sumber yang bertaburan dengan memanfaatkan interkoneksi antara entiti, tidak seperti kain tradisional, yang berjuang dengan mengenal pasti hubungan halus.
S2. Bagaimanakah Graphrag membuat graf pengetahuan semasa fasa pengindeksan?A. Ia memproses ketulan teks untuk mengekstrak entiti dan hubungan, menganjurkannya secara hierarki menggunakan algoritma seperti Leiden, dan membina graf pengetahuan di mana nod mewakili entiti dan tepi menunjukkan hubungan.
Q3. Apakah dua kaedah carian utama dalam fasa pertanyaan Graphrag? Carian Global: Menggunakan ringkasan komuniti untuk analisis yang luas, menjawab pertanyaan seperti "Apakah tema utama yang dibincangkan?".
Carian Tempatan: memberi tumpuan kepada entiti tertentu dengan meneroka sambungan langsung mereka dalam graf pengetahuan.
A. Graphrag menemui isu -isu seperti kos pengiraan yang tinggi disebabkan oleh pelbagai panggilan LLM, kesukaran dalam clustering semantik, dan komplikasi dengan memproses data tidak berstruktur atau bising.
S5. Bagaimanakah graphrag meningkatkan pemahaman konteks dalam penjanaan tindak balas?A. Dengan mendasari responsnya dalam graf pengetahuan hierarki dan ringkasan berasaskan komuniti, Graphrag memberikan pemahaman semantik yang lebih mendalam dan jawapan yang kaya secara kontekstual.
Media yang ditunjukkan dalam artikel ini tidak dimiliki oleh Analytics Vidhya dan digunakan atas budi bicara penulis.
Atas ialah kandungan terperinci Graphrag Dari Teori ke Pelaksanaan - Analytics Vidhya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!