যখন একটি প্রশ্ন টেবিলের ভিতরে একটি নির্দিষ্ট সারিকে লক্ষ্য করে, তখন পুরো টেবিল পুনরুদ্ধার করলে জেনারেশন মডেলকে ৩৯টি অপ্রাসঙ্গিক সারি ফিল্টার করতে হয়। প্রশ্নের সাথে মেলে এমন একক হলো একটি সারি, পুরো আয়তক্ষেত্র নয়। এই নিবন্ধটি একটি সারি-স্তরের সূচক তৈরি করে যা প্রতিটি ডেটা সারিকে তার নিজস্ব পুনরুদ্ধারযোগ্য চাঙ্কে রূপান্তরিত করে, যাতে “গাড়ি চুরির জন্য ক্যাপ কত?” এর মতো একটি কোয়েরি ঠিক সেই সারিটি তার কলাম হেডারসহ ফেরত দেয়।
serialize_table_rows ফাংশন পার্সারের line_df স্ক্যান করে, টানা পাইপ লাইনগুলিকে টেবিলে গ্রুপ করে, বিভাজকের উপরের হেডার সারি পড়ে এবং প্রতিটি ডেটা লাইনের জন্য একটি আউটপুট সারি তৈরি করে। প্রতিটি চাঙ্ক col: val | col: val আকারে সিরিয়ালাইজ করা হয়, যা একটি LLM স্বাভাবিকভাবে পড়ে এবং যা কোনো পরিবর্তন ছাড়াই বিদ্যমান কীওয়ার্ড ও এমবেডিং রিট্রিভারের সাথে সংযুক্ত হয়।
সারি-স্তরের সূচক একটি দ্বিতীয় স্কেল, প্রতিস্থাপন নয়। একটি ডিসপ্যাচার লক্ষ্যবদ্ধ অনুসন্ধানগুলিকে সারি-স্তরের সূচকে রুট করে, সংশ্লেষণ প্রশ্নগুলি একই টেবিলের সব সারিতে সক্রিয় হয় (শেয়ার্ড table_id-এর মাধ্যমে সনাক্ত), এবং মিশ্র কোয়েরি দুটিকেই একত্রিত করে। যেসব ডাউনস্ট্রিম রিট্রিভার কখনও সারি-স্তরের ইনডেক্সিং সক্ষম করে না, তারা অপরিবর্তিতভাবে কাজ চালিয়ে যায়, আর যারা করে তারা স্পষ্টভাবে দ্বিতীয় ফ্রেমটি পড়ে।
চালানোর যোগ্য কোড doc-intel/notebooks-vol1-এ উপলব্ধ, যা Attention পেপারের টেবিল ১-এ serialize_table_rows প্রদর্শন করে এবং পুরো টেবিলের বদলে একটি সারি ফেরত দেয়।
উৎস: Towards Data Science · সারাংশ: HeadlinesBriefing