जब कोई प्रश्न तालिका के अंदर एक पंक्ति को लक्षित करता है, तो पूरी तालिका पुनर्प्राप्त करने से जनरेशन मॉडल को 39 अप्रासंगिक पंक्तियाँ फ़िल्टर करनी पड़ती हैं। प्रश्न से मेल खाने वाली इकाई एक पंक्ति है, पूरा आयत नहीं। यह लेख एक पंक्ति-स्तरीय अनुक्रमणिका बनाता है जो प्रत्येक डेटा पंक्ति को उसके स्वयं के पुनर्प्राप्ति योग्य खंड में बदल देती है, ताकि “वाहन चोरी के लिए कैप क्या है?” जैसी क्वेरी ठीक उसी पंक्ति को उसके कॉलम हेडर के साथ लौटाए।
serialize_table_rows फ़ंक्शन पार्सर के line_df को स्कैन करता है, लगातार पाइप लाइनों को तालिकाओं में समूहित करता है, विभाजक के ऊपर हेडर पंक्ति पढ़ता है, और प्रत्येक डेटा पंक्ति के लिए एक आउटपुट पंक्ति जारी करता है। प्रत्येक खंड को col: val | col: val के रूप में क्रमबद्ध किया जाता है, जिसे LLM सहज रूप से पढ़ता है और जो बिना किसी बदलाव के मौजूदा कीवर्ड और एम्बेडिंग रिट्रीवर के साथ संयोजित होता है।
पंक्ति-स्तरीय अनुक्रमणिका एक दूसरा स्केल है, प्रतिस्थापन नहीं। एक डिस्पैचर लक्षित खोजों को पंक्ति-स्तरीय अनुक्रमणिका पर रूट करता है, संश्लेषण प्रश्न उसी तालिका की सभी पंक्तियों पर सक्रिय होते हैं (साझा table_id के माध्यम से पहचाने गए), और मिश्रित क्वेरी दोनों को जोड़ती हैं। जो डाउनस्ट्रीम रिट्रीवर कभी पंक्ति-स्तरीय अनुक्रमण सक्षम नहीं करते, वे अपरिवर्तित काम करते रहते हैं, जबकि जो करते हैं वे दूसरे फ्रेम को स्पष्ट रूप से पढ़ते हैं।
चलाने योग्य कोड doc-intel/notebooks-vol1 में उपलब्ध है, जो Attention पेपर की तालिका 1 पर serialize_table_rows का प्रदर्शन करता है और पूरी तालिका के बजाय एक पंक्ति लौटाता है।
स्रोत: Towards Data Science · HeadlinesBriefing द्वारा सारांशित