Rumah >Peranti teknologi >AI >Graphrag Dari Teori ke Pelaksanaan - Analytics Vidhya

Graphrag Dari Teori ke Pelaksanaan - Analytics Vidhya

Christopher Nolan
Christopher Nolanasal
2025-03-17 11:17:09729semak imbas

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.

Objektif pembelajaran

  • Memahami apa graphrag dan meneroka kepentingan graphrag dan bagaimana ia bertambah baik apabila model kain naif tradisional.
  • Dapatkan pemahaman yang lebih mendalam tentang graphrag Microsoft, terutamanya penerapan graf pengetahuan, pengesanan komuniti, dan struktur hierarki. Ketahui bagaimana fungsi carian global dan tempatan beroperasi dalam sistem ini.
  • Mengambil bahagian dalam pelaksanaan Python Hands-on Perpustakaan Graphrag Microsoft untuk mendapatkan pemahaman praktikal tentang aliran kerja dan integrasinya.
  • Bandingkan dan kontras output yang dihasilkan oleh graphrag dan kaedah RAG tradisional untuk menyerlahkan penambahbaikan dan perbezaan.
  • Kenal pasti cabaran utama yang dihadapi oleh Graphrag, termasuk proses intensif sumber dan keperluan pengoptimuman dalam aplikasi berskala besar.

Artikel ini diterbitkan sebagai sebahagian daripada Blogathon Sains Data.

Jadual Kandungan

  • Objektif pembelajaran
  • Apa itu Graphrag?
  • Mengapa graphrag atas kain tradisional/naif?
  • Batasan RAG yang ditangani oleh Graphrag
  • Bagaimana graphrag Microsoft berfungsi?
    • Fasa pengindeksan
    • Fasa pertanyaan
  • Pelaksanaan Python Microsoft's Graphrag
    • Langkah1: Membuat Persekitaran Maya Python dan Pemasangan Perpustakaan
    • Langkah2: Penjanaan Tetapan.YAML Fail
    • Langkah3: Menjalankan saluran paip pengindeksan
    • Langkah4: Menjalankan pertanyaan
    • Carian tempatan
  • Cabaran Graphrag
  • Kesimpulan
    • Takeaways utama
  • Soalan yang sering ditanya

Apa itu Graphrag?

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.

Mengapa graphrag atas kain tradisional/naif?

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.

Batasan RAG yang ditangani oleh Graphrag

Sekarang kita akan melihat batasan RAG yang dialamatkan oleh Graphrag:

  • Dengan memanfaatkan interkoneksi antara entiti, Graphrag menyempurnakan keupayaannya untuk menentukan dan mengambil data yang relevan dengan ketepatan yang lebih tinggi.
  • Melalui penggunaan graf pengetahuan, Graphrag menawarkan pemahaman yang lebih terperinci dan bernuansa mengenai pertanyaan, membantu penjanaan tindak balas yang lebih tepat.
  • Dengan mendasari responsnya dalam data berstruktur, faktual, Graphrag dengan ketara mengurangkan peluang menghasilkan maklumat yang salah atau dibuat.

Bagaimana graphrag Microsoft berfungsi?

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

Fasa pengindeksan terdiri daripada langkah -langkah berikut:

  • Teks input split ke dalam ketulan yang lebih kecil dan terkawal.
  • Ekstrak entiti dan hubungan dari setiap bahagian.
  • Meringkaskan entiti dan hubungan ke dalam format berstruktur.
  • Membina graf pengetahuan dengan nod sebagai entiti dan tepi sebagai hubungan.
  • Kenal pasti komuniti dalam graf pengetahuan menggunakan algoritma.
  • Meringkaskan entiti dan hubungan individu dalam komuniti yang lebih kecil.
  • Buat ringkasan peringkat tinggi untuk komuniti agregat secara hierarki.

Fasa pertanyaan

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.

Pelaksanaan Python Microsoft's Graphrag

Marilah kita melihat pelaksanaan Python graphrag Microsoft dalam langkah -langkah terperinci di bawah:

Langkah1: Membuat Persekitaran Maya Python dan Pemasangan Perpustakaan

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

Langkah2: Penjanaan Tetapan.YAML Fail

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.

Graphrag Dari Teori ke Pelaksanaan - Analytics Vidhya

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.

Graphrag Dari Teori ke Pelaksanaan - Analytics Vidhya

Langkah3: Menjalankan saluran paip pengindeksan

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.

Folder Prompts

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.

Graphrag Dari Teori ke Pelaksanaan - Analytics Vidhya

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.

Embeddings disimpan di lancedb

Di samping itu, LancedB digunakan untuk menyimpan data Embeddings untuk setiap teks.

Fail parket untuk data grafik

Folder output menyimpan banyak fail parket yang sepadan dengan graf dan data yang berkaitan, seperti yang ditunjukkan dalam gambar di bawah.

Graphrag Dari Teori ke Pelaksanaan - Analytics Vidhya

Langkah4: Menjalankan pertanyaan

Untuk menjalankan pertanyaan global seperti "tema teratas dokumen", kami boleh menjalankan arahan berikut dari terminal dalam folder Graphrag.

Carian global

 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:

Graphrag Dari Teori ke Pelaksanaan - Analytics Vidhya

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.

Carian tempatan

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

Graphrag Dari Teori ke Pelaksanaan - Analytics Vidhya

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.

Cabaran Graphrag

Terdapat cabaran tertentu yang perjuangan Graphrag, yang disenaraikan di bawah:

  • Pelbagai Panggilan LLM: Oleh kerana panggilan LLM berbilang yang dibuat dalam proses, graphrag boleh mahal dan lambat. Oleh itu, pengoptimuman kos adalah penting untuk memastikan skalabiliti.
  • Penggunaan sumber yang tinggi: Membina dan menanyakan graf pengetahuan melibatkan sumber pengiraan yang signifikan, terutamanya apabila berskala untuk dataset yang besar. Memproses graf yang besar dengan banyak nod dan tepi memerlukan pengoptimuman yang teliti untuk mengelakkan kesesakan prestasi.
  • Kerumitan dalam clustering semantik: Mengenal pasti kluster yang bermakna menggunakan algoritma seperti Leiden boleh mencabar, terutamanya untuk dataset dengan entiti yang bersambung. Kelompok yang tidak dikenali boleh menyebabkan ringkasan komuniti yang berpecah -belah atau terlalu luas
  • Mengendalikan Format Data Beragam: Graphrag bergantung pada input berstruktur untuk mengekstrak hubungan yang bermakna. Data tidak berstruktur, tidak konsisten, atau bising dapat merumitkan proses pengekstrakan dan grafik

Kesimpulan

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.

Takeaways utama

  • Graphrag meningkatkan RAG dengan menganjurkan teks mentah ke dalam graf pengetahuan hierarki, membolehkan tindak balas yang tepat dan konteks.
  • Ia menggunakan ringkasan komuniti untuk analisis luas dan sambungan grafik untuk pertanyaan khusus, mendalam.
  • Graphrag mengatasi batasan dalam pemahaman dan pemikiran konteks dengan memanfaatkan interkoneksi entiti dan data berstruktur.
  • Perpustakaan Graphrag Microsoft menyokong aplikasi praktikal dengan alat untuk penciptaan graf pengetahuan dan pertanyaan.
  • Walaupun ketepatannya, Graphrag menghadapi rintangan seperti intensiti sumber, kerumitan kluster semantik, dan mengendalikan data yang tidak berstruktur.
  • Dengan memberi respons dalam pengetahuan berstruktur, graphrag mengurangkan ketidaktepatan yang biasa berlaku dalam sistem RAG tradisional.
  • Sesuai untuk pertanyaan kompleks yang memerlukan penalaran yang saling berkaitan, seperti analisis tematik atau pandangan khusus entiti.

Soalan yang sering ditanya

Q1. Mengapa Graphrag lebih disukai daripada kain tradisional untuk pertanyaan kompleks?

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.

Q4. Apakah cabaran yang dihadapi Graphrag?

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!

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
Artikel sebelumnya:Komen Multiline di PythonArtikel seterusnya:Komen Multiline di Python