12 पॉइंट द्वारा xguru 2024-07-03 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • LLM की शक्तिशाली क्षमताओं का उपयोग करके असंरचित टेक्स्ट से अर्थपूर्ण संरचित डेटा निकालने के लिए डिज़ाइन की गई डेटा पाइपलाइन और ट्रांसफ़ॉर्मेशन टूल्स का एक सेट
  • ग्राफ-आधारित दृष्टिकोण जो पहले कभी न देखे गए डेटा सेट पर प्रश्नोत्तर को संभव बनाता है
  • फ़रवरी में पेश किया गया यह टूल अब open source के रूप में जारी किया गया है, जिससे अधिक संरचित information retrieval और व्यापक response generation संभव होता है

मुख्य विशेषताएँ

  • बड़े भाषा मॉडल (LLM) का उपयोग करके टेक्स्ट दस्तावेज़ों के संग्रह से समृद्ध knowledge graph को स्वचालित रूप से निकालता है
  • यह graph-based data index उपयोगकर्ता क्वेरी से पहले डेटा की semantic structure को दर्शा सकता है
  • उच्च घनत्व से जुड़े नोड्स की "community" को hierarchical तरीके से पहचानकर ग्राफ को कई स्तरों में विभाजित करता है, उच्च-स्तरीय विषयों से लेकर निम्न-स्तरीय विषयों तक
  • LLM का उपयोग करके इन प्रत्येक community का सारांश बनाने पर dataset का hierarchical summary तैयार होता है, जिससे कौन-से प्रश्न पूछने चाहिए यह पहले से जाने बिना भी dataset को समझा जा सकता है
  • प्रत्येक community, संबंधित entity और relationship को समझाने वाले community summary की आधारशिला का काम करती है

पूरे dataset से जुड़े प्रश्नों के उत्तर देने के फायदे

  • ऐसे "community summary" vector search पर आधारित naive RAG approach की उस कमी को कैसे दूर कर सकते हैं, जहाँ global प्रश्नों (पूरे dataset से जुड़े प्रश्नों) का उत्तर देना कठिन होता है?
  • उदाहरण के लिए, "dataset के मुख्य विषय क्या हैं?" जैसे प्रश्नों पर naive RAG अक्सर भ्रामक उत्तर देता है
  • global प्रश्नों का उत्तर देने के लिए सभी input text पर विचार करना ज़रूरी है
  • community summary, global data context की सभी प्रासंगिक सामग्री को बनाए रखने वाले map-reduce approach का उपयोग करके ऐसे global प्रश्नों का उत्तर दे सकते हैं:
    1. community reports को LLM context window के आकार तक समूहित करना
    2. प्रत्येक समूह पर प्रश्न map करके community answer बनाना
    3. सभी प्रासंगिक community answers को reduce करके अंतिम global answer तैयार करना

मूल्यांकन और परिणाम

  • इस approach की तुलना naive RAG और hierarchical source text summary से करने के लिए LLM GPT-4 का उपयोग करके विभिन्न activity-centered sense-making प्रश्न बनाए गए
  • तैयार उत्तरों के लिए 3 मूल्यांकन मापदंड चुने गए: comprehensiveness (सभी पहलुओं को विस्तार से कवर करना), diversity (विभिन्न दृष्टिकोण देना), empowerment (सूचित निर्णय लेने में सहायता)
  • GraphRAG ने naive RAG की तुलना में comprehensiveness और diversity में बेहतर प्रदर्शन दिखाया (~70-80% win rate)
  • साथ ही, GraphRAG ने मध्यम-स्तर और निम्न-स्तर के community summary का उपयोग करते समय source text summary की तुलना में कम token cost पर बेहतर प्रदर्शन दिखाया (प्रति क्वेरी ~20-70% token उपयोग)
  • सबसे उच्च-स्तरीय community के मामले में इसने hierarchical source text summary के मुकाबले प्रतिस्पर्धी प्रदर्शन दिखाया, जबकि token cost बहुत कम रही (प्रति क्वेरी ~2-3% token उपयोग)

शोध अंतर्दृष्टि और आगे की दिशा

  • प्रारंभिक शोध चक्र के माध्यम से यह सिद्ध हुआ कि LLM असंरचित टेक्स्ट input से समृद्ध knowledge graph सफलतापूर्वक निकाल सकता है
  • ऐसे graph, नए प्रकार के global queries को सपोर्ट कर सकते हैं, जहाँ naive RAG उपयुक्त response नहीं दे पाता और hierarchical source text summary बहुत महँगा पड़ता है
  • वर्तमान में graph index बनाने की upfront cost को बनाए रखते हुए इन लागतों को कम करने के विभिन्न तरीकों की खोज की जा रही है
  • problem domain के अनुसार LLM extraction prompts को स्वचालित रूप से समायोजित करने पर हाल का काम इस बात का उदाहरण है कि इन prompts को customize करने, entity types को enumerate करने और few-shot examples बनाने के लिए आवश्यक शुरुआती काम को कैसे कम किया जा सकता है
  • GraphRAG और solution accelerator को सार्वजनिक रूप से उपलब्ध कराकर लक्ष्य यह है कि graph-based RAG approach उन उपयोगकर्ताओं और use cases के लिए अधिक सुलभ बने, जहाँ डेटा को समग्र रूप से समझना महत्वपूर्ण है

1 टिप्पणियां

 
xguru 2024-07-04
Hacker News टिप्पणियाँ
  • Microsoft का GraphRAG प्रोजेक्ट नवीनतम extraction libraries के बिना भी knowledge graph बनाने का तरीका इस्तेमाल करता है

    • संभव है कि इसका कारण यह हो कि GPT-4 जैसे models खास format instructions का अच्छी तरह पालन करते हैं
    • examples देकर मनचाहा schema follow कराया जाता है
  • Microsoft ने GraphRAG को open source किया, इस बात से बहुत खुशी है

    • GraphRAG और Llama3 को MacBook पर आज़माने की योजना है
    • लगता है कि यह tool game changer साबित हो सकता है
  • GraphRAG Method के बारे में अधिक जानकारी खोज रहे लोगों के लिए एक link साझा किया गया है

  • GraphRAG प्रोजेक्ट दिखाता है कि vector databases जटिल search queries के लिए एक complete RAG solution दे सकते हैं

    • सटीक knowledge graph बनाने के लिए सिर्फ text को LLM में लोड करना काफ़ी नहीं है
    • इसके लिए GraphRAG-SDK लिखकर एक reliable ontology बनाई गई है
  • knowledge graph पारंपरिक semantic search की जगह नहीं लेते, लेकिन RAG करते समय नई capabilities देते हैं

    • लंबा context explore किया जा सकता है, या अलग-अलग context को एकसमान और कुशल तरीके से explore किया जा सकता है
    • LLM का उपयोग करके graph generation में जो कोशिशें कीं, उनके नतीजे पर्याप्त नहीं थे
    • इसे आज़माने की उत्सुकता है
  • अगर paper को सही समझा है, तो indexing के समय LLM को कई बार चलाकर entity extraction और graph index बनाया जाता है

    • graph को कई बार चलाकर clusters बनाए जाते हैं
    • query के समय सभी clusters चलाए जाते हैं, हर cluster से answer generate किया जाता है और उसे score दिया जाता है
    • सबसे कम score वाले answer को छोड़कर बाकी सभी answers पर चलाकर एक "global answer" बनाया जाता है
    • ऐसी compute requirements बड़े datasets के लिए असहनीय स्तर तक पहुँच सकती हैं
  • graph और LLM का उपयोग करके कई छोटे projects पर काम किया है, और यह पुष्टि हुई है कि यह approach काम करती है

    • समझ आया कि prompt engineering और multiple passes के ज़रिए इसे हल किया जा सकता है
    • इसे आज़माने के बाद अगर नतीजे अच्छे रहे, तो Python environment से बाहर निकलने की कोशिश करेंगे
  • यह LlamaIndex के Knowledge Graph RAG Query engine से जुड़ा है या नहीं, इसे लेकर जिज्ञासा है

  • Russia-Ukraine war को example के तौर पर चुनना दिलचस्प लगा

    • यह military data analysis contracts को लक्ष्य बनाकर किया गया एक जानबूझकर चयन हो सकता है
  • paper पढ़ने के बाद इस project को आज़माने की इच्छा हुई

    • खुद implement करने की कोशिश की थी, लेकिन लगा था कि code कुछ हफ्तों बाद आएगा
    • धैर्य का फल मिला