3.17

View in English

3.17 অনুসন্ধান ও তথ্য পুনরুদ্ধার

পরিচিতি ও প্রেরণা

আগে বা পরে কেউ একটি বাক্সে কয়েকটি শব্দ টাইপ করে আশা করেন আপনার সিস্টেম সঠিক জিনিস খুঁজে পাবে। সেই বাক্স প্রতারণাপূর্ণভাবে সরল। এর পেছনে বসে কম্পিউটিংয়ের সবচেয়ে পুরোনো ও সমৃদ্ধ শৃঙ্খলার একটি: তথ্য পুনরুদ্ধার, একটি অস্পষ্ট অনুরোধ থেকে একটি বড় সংগ্রহে প্রাসঙ্গিক জিনিস খোঁজার বিজ্ঞান। অনুসন্ধান এমন ফিচার নয় যা আপনি পণ্যে দেরিতে জুড়ে দেন; এটি একটি সিস্টেম উদ্বেগ, নিজস্ব ডেটা মডেল, নিজস্ব ব্যর্থতার ধরন, নিজস্ব স্কেলিং গল্প এবং ভুল হওয়ার নিজস্ব উপায়সহ। অনুসন্ধান ভালো হলে মানুষ যা দরকার তা পায় এবং কমই লক্ষ্য করে। অনুসন্ধান খারাপ হলে তারা চলে যায়, বা আরও খারাপ, সিদ্ধান্ত নেয় তাদের চাওয়া জিনিসটি নেই।

এই অধ্যায় অনুসন্ধানকে প্রথম-শ্রেণির স্থাপত্য গণ্য করে। এটি অধ্যায় 3.4-এর ডেটা ও সংরক্ষণ সিদ্ধান্তের পাশে বসে, কারণ একটি অনুসন্ধান ইনডেক্স হলো কোয়েরির জন্য অপ্টিমাইজ করা একটি বিশেষায়িত স্টোর, যা সত্যের মালিক রেকর্ডের সিস্টেম থেকে আলাদা। এটি অধ্যায় 3.15-এর ক্যাশিং ও ডেলিভারি ধারণার ওপর ভর করে, কারণ অনুসন্ধান ফল ও পরামর্শ লেটেন্সি-সংবেদনশীল ও ক্যাশযোগ্য। এবং এটি এখন অধ্যায় 6.3-এর জেনারেটিভ কৃত্রিম বুদ্ধিমত্তা কাজের সঙ্গে ভারীভাবে ওভারল্যাপ করে, কারণ আধুনিক পুনরুদ্ধার বড় ভাষা মডেলকে ভালো উত্তর দিতে প্রয়োজনীয় প্রসঙ্গ খাওয়ায়।

বড় দলের জন্য অনুসন্ধান হলো সেই জায়গা যেখানে প্রাসঙ্গিকতা, সতেজতা ও স্কেল সংঘর্ষ করে। কোটি কোটি আইটেমের এন্টারপ্রাইজ ক্যাটালগ, জনগণের কাছে জবাবদিহিযোগ্য সরকারি রেকর্ড পোর্টাল, একটি টিকিট সমাধান করা একক নিবন্ধ খুঁজে বের করতে হওয়া সহায়তা জ্ঞানভাণ্ডার: প্রতিটি দাবি করে অনুসন্ধান যেকোনো অন্য প্রোডাকশন সিস্টেমের সমান কঠোরতায় মাপা, টিউন করা ও চালানো হোক। ঝুঁকি সুনির্দিষ্ট। যে কর কর্তৃপক্ষের অনুসন্ধান দাখিলের সময়সীমায় সঠিক ফর্ম খুঁজে পায় না, বা যে স্বাস্থ্য পোর্টাল প্রাসঙ্গিক নির্দেশনা গোলমালের নিচে চাপা দেয়, তারা তাদের ব্যবহারকারীদের এমনভাবে ব্যর্থ করে যা পেছনের প্রতিষ্ঠানের ওপর আস্থা ক্ষয় করে।

মূল নীতিসমূহ

  • অনুসন্ধান ইনডেক্সকে রেকর্ডের সিস্টেম থেকে আলাদা, উদ্ভূত স্টোর গণ্য করুন।
  • প্রাসঙ্গিকতা মাপযোগ্য গুণ, রুচির ব্যাপার নয়; তথ্য দিয়ে বিচার করুন।
  • মানুষ আসলে যেভাবে টাইপ করে তার সঙ্গে মিলান: ভুল বানানে, সংক্ষেপে ও অস্পষ্টভাবে।
  • লেক্সিক্যাল ও সেমান্টিক পুনরুদ্ধার মেলান; কোনোটিই একা প্রতিটি কোয়েরি ঢাকে না।
  • ইনডেক্সিং পাইপলাইন কেবল প্রাথমিক লোডের জন্য নয়, সতেজতার জন্য নকশা করুন।
  • বিচারের সঙ্গে অফলাইনে এবং প্রকৃত আচরণের সঙ্গে অনলাইনে মূল্যায়ন করুন, এবং দুটিই ব্যবহার করুন।
  • শার্ড ও রেপ্লিকা দিয়ে সুচিন্তিতভাবে অনুসন্ধান স্কেল করুন, এবং যেকোনো সার্ভিসের মতো পর্যবেক্ষণ করুন।

সুপারিশ

ইনভার্টেড ইনডেক্স ও বিশ্লেষণ পাইপলাইন দিয়ে শুরু করুন

ক্লাসিক অনুসন্ধানের কেন্দ্রের ইঞ্জিন হলো ইনভার্টেড ইনডেক্স: প্রতিটি পদ থেকে তা ধারণকারী ডকুমেন্টের তালিকায় একটি মানচিত্র, তার পদের তালিকা করা ডকুমেন্টের প্রতিবিম্ব। “invoice refund” চাইলে ইঞ্জিন “invoice”-এর পোস্টিং তালিকাকে “refund”-এর পোস্টিং তালিকার সঙ্গে মিলিসেকেন্ডে ছেদ করে, আপনি কত কোটি ডকুমেন্ট ধরে রাখেন তা নির্বিশেষে। এই ডেটা স্ট্রাকচারই অনুসন্ধানকে তাৎক্ষণিক মনে করায়, এবং এটি বোঝা অনুসন্ধান যা ভালো ও খারাপ করে তার বেশিরভাগ ব্যাখ্যা করে।

ইনডেক্স ততটাই ভালো যতটা ভালো পাঠ্য আপনি তাকে খাওয়ান, এবং সেটি অ্যানালাইজারের কাজ। বিশ্লেষণ ধাপে ধাপে চলে। প্রথমত, টোকেনাইজেশন পাঠ্যের স্ট্রিমকে পদে ভাগ করে, যা বিরামচিহ্ন, হাইফেন এবং চীনা ভাষার মতো শব্দ সীমানা না দেওয়া ভাষার সামনে পড়লে স্পেসে ভাগ করার চেয়ে কঠিন। তারপর নরমালাইজেশন ছোট হাতের করে, উচ্চারণ চিহ্ন সরায় ও বৈচিত্র্য গুটায়। তারপর স্টেমিং বা তার আরও নির্ভুল জ্ঞাতি লেমাটাইজেশন “running”, “ran” ও “runs” একটি সাধারণ মূলের দিকে নামায় যাতে একটির কোয়েরি অন্যগুলোর সঙ্গে মেলে। স্টপ-শব্দ সামলানো, সমার্থক শব্দ প্রসারণ ও ভাষা শনাক্তকরণ তা সম্পূর্ণ করে। যে নিয়ম আপনাকে কষ্ট থেকে বাঁচায়: ইনডেক্স-সময় বিশ্লেষণ ও কোয়েরি-সময় বিশ্লেষণ অবশ্যই একমত হতে হবে, কারণ একটি পদ খুঁজে পাওয়া যায় কেবল যদি দুই পক্ষই একইভাবে তা নরমালাইজ করে।

টিউন করার আগে প্রাসঙ্গিকতা র‍্যাঙ্কিং বুঝুন

মেলে এমন ডকুমেন্ট খুঁজে পাওয়া সহজ অর্ধেক। সেগুলো এমনভাবে সাজানো যাতে সেরাটি শীর্ষে থাকে তা কঠিন অর্ধেক, এবং একে বলা হয় র‍্যাঙ্কিং। ঐতিহ্যবাহী কাজের ঘোড়া হলো TF-IDF, term frequency গুণ inverse document frequency-র সংক্ষেপ: একটি পদ বেশি গুরুত্ব পায় যখন তা একটি ডকুমেন্টে ঘন ঘন আসে (term frequency) এবং পুরো সংগ্রহে বিরল (inverse document frequency), তাই “photosynthesis” “the”-কে ছাড়িয়ে যায়। বেশিরভাগ আধুনিক ইঞ্জিন ডিফল্ট করে Okapi BM25, একটি পরিমার্জন যা term frequency সম্পৃক্ত করে (দশম ঘটনা নবমের ওপর সামান্যই যোগ করে) এবং ডকুমেন্টের দৈর্ঘ্যের জন্য নরমালাইজ করে যাতে লম্বা ডকুমেন্ট কেবল আকারের জোরে না জেতে। আপনাকে সূত্র বের করতে হবে না, কিন্তু জানা উচিত যে একটি নব আছে, তার নীতিনিষ্ঠ ডিফল্ট আছে, এবং তা বদলালে কোন ফল প্রথমে র‍্যাঙ্ক করে তা বদলায়।

এই ক্ষেত্রের দুটি শব্দ দিয়ে গুণমান বিচার করুন। প্রিসিশন হলো ফেরত দেওয়া ফলের কত অংশ প্রাসঙ্গিক; রিকল হলো সব প্রাসঙ্গিক ফলের কত অংশ আপনি ফেরত দিয়েছেন। তারা একে অন্যের বিপরীতে বিনিময় করে। প্রতিটি সম্ভাব্য মিল ধরতে কোয়েরি ঢিলা করলে গোলমাল ঢুকে প্রিসিশন পড়ে; পরিচ্ছন্ন ফল সেটের জন্য আঁটো করলে ভালো মিল ঝরে গিয়ে রিকল পড়ে। টাইপো সহনশীলতা থেকে সমার্থক শব্দ প্রসারণ পর্যন্ত প্রতিটি প্রাসঙ্গিকতা সিদ্ধান্ত হলো আপনার ব্যবহারকারীরা সেই বক্ররেখার কোথায় থাকতে চায় তার একটি বাজি, এবং উত্তর আইনি আর্কাইভ (রিকল পছন্দ করুন, কিছু মিস করবেন না) এবং দোকানের সামনের (প্রিসিশন পছন্দ করুন, বিজয়ী দেখান) জন্য ভিন্ন।

কোয়েরি বোঝায় বিনিয়োগ করুন

ব্যবহারকারীরা আপনার ডকুমেন্ট যেভাবে লেখা সেভাবে টাইপ করে না। তারা ভুল বানান করে, সংক্ষেপ করে, আপনার কখনো ইনডেক্স না করা সমার্থক শব্দ খোঁজে, এবং চার শব্দে তিনটি অভিপ্রায় ঠাসে। কোয়েরি বোঝা হলো সেই স্তর যা এই ফাঁক সেতুবন্ধ করে, এবং এটি প্রায় অন্য যেকোনো কিছুর চেয়ে বেশি ফেরত দেয়। বাছাই করা ও খনন করা সমার্থক শব্দ যোগ করুন যাতে “laptop” “notebook” খোঁজে এবং “heart attack” “myocardial infarction” খোঁজে। এডিট দূরত্বের মাধ্যমে টাইপো সহনশীলতা যোগ করুন, দুটি স্ট্রিংয়ের মধ্যে একক-অক্ষর পরিবর্তনের সংখ্যা, যাতে “reciept” তবু receipts খোঁজে। সত্তা ও অভিপ্রায় শনাক্ত করুন যাতে “flights to Paris under $500” শব্দের থলের বদলে সঠিক ফিল্টারে রুট হয়।

সবচেয়ে কঠিন কোয়েরি সুচিন্তিতভাবে সামলান। একটি বিরল সঠিক স্ট্রিংয়ের অনুসন্ধান, যেমন একটি অর্ডার নম্বর বা একটি বিধি উদ্ধৃতি, সঠিক মিল চায় এবং কোনো চতুর প্রসারণ নয়। একটি অস্পষ্ট প্রাকৃতিক-ভাষার প্রশ্ন উল্টোটি চায়। দুটির ওপর একটি আচরণ জোর না করে এগুলো ভিন্নভাবে রুট করুন। এবং সবসময় শূন্য-ফলের কেস নকশা করুন: কোয়েরি কিছু না ফেরালে তা শিথিল করুন, বিকল্প প্রস্তাব করুন বা বিস্তৃততর মিলে ফিরে যান, কারণ একটি ফাঁকা পাতা একজন ব্যবহারকারী হারানোর দ্রুততম উপায়।

ফ্যাসেট, অটোকমপ্লিট ও কাঠামোবদ্ধ ফিল্টারিং যোগ করুন

অনুসন্ধান একটি র‍্যাঙ্ক করা তালিকার চেয়ে বেশি। ফ্যাসেটেড অনুসন্ধান ব্যবহারকারীদের কাঠামোবদ্ধ বৈশিষ্ট্য দিয়ে ফল সংকুচিত করতে দেয়: ব্র্যান্ড, মূল্য পরিসর, বিভাগ, তারিখ, ডকুমেন্ট ধরন। ফ্যাসেট একটি অভিভূত করা ফল সেটকে নির্দেশিত কথোপকথনে পরিণত করে, এবং নেভিগেশনও হয়। এগুলো নির্ভর করে আপনার ডেটা পরিচ্ছন্নভাবে বৈশিষ্ট্যযুক্ত হওয়ার ওপর, যা অনুসন্ধানের উজানের একটি ডেটা-গুণমান বিনিয়োগ, এবং এগুলো র‍্যাঙ্কিংয়ের সঙ্গে আন্তঃক্রিয়া করে, কারণ একটি ফিল্টার র‍্যাঙ্কার যে প্রার্থী সেট দেখে তা বদলায়।

অটোকমপ্লিট ও পরামর্শ কোয়েরি জমা হওয়ার আগেই তার আকার দেয়। একটি ভালো সাজেস্টার ব্যবহারকারী টাইপ করার সময় প্রকৃত, উচ্চ-মূল্যের কোয়েরি প্রস্তাব করে, বানান আগে সংশোধন করে, এবং জনপ্রিয় বা ট্রেন্ডিং অভিপ্রায় তুলে ধরে। এটি লেটেন্সি-জটিল (প্রতিটি কি-স্ট্রোক একটি অনুরোধ) এবং অধ্যায় 3.15-এর ক্যাশিং প্যাটার্ন থেকে সরাসরি উপকৃত। পরামর্শ মানুষকে আপনি ভালোভাবে সামলান এমন কোয়েরির দিকেও চালিত করে, যা নিঃশব্দে সামগ্রিক প্রাসঙ্গিকতা বাড়ায়। সাজেস্টারকে নিজস্ব র‍্যাঙ্কিংসহ নিজস্ব ছোট ইনডেক্স গণ্য করুন, ডকুমেন্ট কন্টেন্ট নয়, কোয়েরি লগে টিউন করা।

লেক্সিক্যাল ও ভেক্টর অনুসন্ধান মেলান

ক্লাসিক অনুসন্ধান শব্দ মেলায়। আপনি না বললে সে বলতে পারে না “car” ও “automobile” একই জিনিস বোঝায়, এবং আপনার ডকুমেন্ট কখনো ব্যবহার করেনি এমনভাবে বাক্য গড়া প্রশ্নে হোঁচট খায়। ভেক্টর অনুসন্ধান এটি সমাধান করে পাঠ্যকে এমবেডিং হিসেবে উপস্থাপন করে, একটি মেশিন-লার্নিং মডেলের তৈরি ঘন সংখ্যাগত ভেক্টর যাতে একই অর্থ ভেক্টর স্পেসে কাছাকাছি পড়ে। পুনরুদ্ধার তখন সেই স্পেসে নিকটতম-প্রতিবেশী অনুসন্ধান হয়, এবং কারণ সঠিক নিকটতম-প্রতিবেশী পরিসরে খুব ধীর, ইঞ্জিন আনুমানিক নিকটতম প্রতিবেশী (ANN) অ্যালগরিদম ব্যবহার করে যা নির্ভুলতার একটি ক্ষুদ্র অংশ বড় গতি লাভের বিনিময়ে দেয়। এই ধরনের সেমান্টিক অনুসন্ধান সঠিক ডকুমেন্ট খুঁজে পায় এমনকি যখন তা কোয়েরির সঙ্গে কোনো শব্দ ভাগ করে না।

কোনো পদ্ধতি সর্বত্র জেতে না। লেক্সিক্যাল অনুসন্ধান সঠিক পদ, নাম, কোড ও বিরল কীওয়ার্ডে ভালো; এটি স্বচ্ছ এবং ব্যাখ্যা করতে সস্তা। ভেক্টর অনুসন্ধান অর্থ, প্যারাফ্রেজ ও প্রাকৃতিক-ভাষার প্রশ্নে ভালো, কিন্তু একটি সঠিক শনাক্তকারী মিস করতে পারে এবং ডিবাগ করা কঠিনতর। গুরুতর সিস্টেমের জন্য শক্তিশালী ডিফল্ট হলো হাইব্রিড অনুসন্ধান: দুটিই চালান এবং ফল মেলান, প্রায়ই রেসিপ্রোকাল র‍্যাঙ্ক ফিউশনের মতো কৌশলে যা দুটি র‍্যাঙ্ক করা তালিকা তাদের স্কোর তুলনীয় হওয়ার প্রয়োজন ছাড়া মেশায়। হাইব্রিড আপনাকে কীওয়ার্ডের প্রিসিশন ও সেমান্টিকসের রিকল দেয়, এবং কোনো পক্ষ দুর্বল হলে মার্জিতভাবে অবনমিত হয়।

অনুসন্ধানকে রিট্রিভাল-অগমেন্টেড জেনারেশনের সঙ্গে যুক্ত করুন

অনুসন্ধানের দ্রুততম-বর্ধমান ভোক্তা ফলের তালিকা পড়া মানুষ নয়; এটি একটি ভাষা মডেল। রিট্রিভাল-অগমেন্টেড জেনারেশন (RAG) প্রাসঙ্গিক অংশ পুনরুদ্ধার করে এবং মডেলের প্রসঙ্গে বসিয়ে একটি জেনারেটিভ মডেলকে আপনার ডেটায় ভিত্তি দেয়, যাতে সে তার প্রশিক্ষণ স্মৃতির বদলে আপনার তথ্য থেকে উত্তর দেয়। অধ্যায় 6.3-এর জেনারেশন গুণমান সরাসরি পুনরুদ্ধার গুণমানের ওপর নির্ভর করে: মডেলকে ভুল অংশ খাওয়ান এবং সে আত্মবিশ্বাসে একটি ভুল উত্তর সংশ্লেষণ করবে। এই অধ্যায়ের সবকিছু (পাঠ্যকে অংশে খণ্ডন, সেগুলো ভালোভাবে র‍্যাঙ্ক করা, লেক্সিক্যাল ও ভেক্টর সংকেত মেলানো, ইনডেক্স সতেজ রাখা) ঠিক RAG-এর পুনরুদ্ধার অর্ধেক। আপনার প্রতিষ্ঠান বড় ভাষা মডেলের ওপর গড়লে আপনার অনুসন্ধান সিস্টেমই ভিত্তি, এবং সঠিক অংশে রিকল উন্নত করা প্রায়ই মডেল বদলানোর চেয়ে সহকারীকে বেশি সাহায্য করে।

সতেজতার জন্য একটি ইনডেক্সিং পাইপলাইন গড়ুন

একটি ইনডেক্স একটি কপি, এবং একটি কপি সরে যায়। ইনডেক্সিং পাইপলাইন সেই যন্ত্রপাতি যা অনুসন্ধান ইনডেক্সকে রেকর্ডের সিস্টেমের সঙ্গে তাল রাখে: উৎস পরিবর্তন পড়া, বিশ্লেষণ ও এমবেডিং চালানো, এবং ইনডেক্সে লেখা, আদর্শভাবে রাতের ব্যাচের বদলে স্ট্রিম হিসেবে। এটি একটি ডেটা-প্রকৌশল উদ্বেগ (অধ্যায় 7.2), এবং অধ্যায় 3.3-এর ক্রম, রিট্রাই ও আইডেমপোটেন্সি নিয়ে একই যত্ন প্রযোজ্য, কারণ একটি ক্রমহীন হালনাগাদ একটি মুছে ফেলা ডকুমেন্টকে পুনরুজ্জীবিত করতে পারে। আপনার সতেজতা লক্ষ্য সুস্পষ্টভাবে ঠিক করুন। একটি মূল্য বা ইনভেন্টরি সংখ্যা সেকেন্ডের মধ্যে অনুসন্ধানযোগ্য হতে হতে পারে; একটি আর্কাইভ করা নীতি ডকুমেন্ট ঘণ্টা পিছিয়ে থাকতে পারে। স্কিমা ও অ্যানালাইজার পরিবর্তনের জন্য পূর্ণ পুনঃইনডেক্সিং সমর্থন করুন এবং ডাউনটাইম ছাড়া চালানোর নকশা করুন, সাধারণত একটি নতুন ইনডেক্স গড়ে এবং প্রস্তুত হলে একটি অ্যালিয়াস পারমাণবিকভাবে সুইচ করে।

মতামত নয়, মূল্যায়ন দিয়ে প্রাসঙ্গিকতা টিউন করুন

প্রাসঙ্গিকতা তর্ক দাবি করে জেতা যায় না, তাই মতামত পরিমাপ দিয়ে প্রতিস্থাপন করুন। অফলাইনে একটি বিচার তালিকা গড়ুন: প্রতিনিধিত্বমূলক কোয়েরির একটি সেট, কোন ফল প্রাসঙ্গিক তার মানুষের রেটিংসহ জোড়া, এবং NDCG (normalised discounted cumulative gain)-এর মতো মেট্রিক দিয়ে আপনার র‍্যাঙ্কিং এর বিপরীতে স্কোর করুন, যা উচ্চ প্রাসঙ্গিক ফলকে শীর্ষের কাছে রাখার পুরস্কার দেয় এবং নিচে চাপা পড়াগুলোকে ছাড় দেয়। অফলাইন মূল্যায়ন আপনাকে দুটি র‍্যাঙ্কিং কনফিগারেশন কোনোটি ব্যবহারকারীকে ছোঁয়ার আগে তুলনা করতে দেয়। অনলাইনে প্রকৃত আচরণ দেখুন: ক্লিক-থ্রু হার, ক্লিক করা ফলের অবস্থান, কোয়েরি পুনর্গঠন, শূন্য-ফল হার এবং রূপান্তর। নিয়ন্ত্রিত পরীক্ষা (অধ্যায় 7.4) চালান যাতে একটি প্রাসঙ্গিকতা পরিবর্তন আন্দাজে পাঠানোর বদলে একটি হোল্ডআউটের বিপরীতে প্রমাণিত হয়। দুটিই ব্যবহার করুন, কারণ অফলাইন মেট্রিক দ্রুত কিন্তু আদর্শায়িত, আর অনলাইন মেট্রিক প্রকৃত কিন্তু ধীর ও গোলমেলে। পরিণত চক্র কোয়েরি লগ খনন করে বিচার তালিকা বাড়ায়, তাই আপনি শিখলে মূল্যায়ন উন্নত হয়।

শার্ড ও রেপ্লিকা দিয়ে স্কেল করুন, এবং সবকিছু পর্যবেক্ষণ করুন

অনুসন্ধান দুটি অক্ষ বরাবর স্কেল করে। শার্ডিং ডকুমেন্ট বিভাজন করে একটি ইনডেক্সকে মেশিন জুড়ে ভাগ করে, তাই একটি কোয়েরি প্রতিটি শার্ডে ছড়ায় এবং আংশিক ফল মার্জ হয়; এটি একটি ইনডেক্সকে একটি মেশিন যা ধরে তার বাইরে বাড়তে দেয় এবং ইনডেক্সিং লোড ছড়ায়। রেপ্লিকা প্রতিটি শার্ড কপি করে যাতে পড়ার ট্রাফিক কপি জুড়ে ছড়ায় এবং একটি নোড হারালে ডেটা হারায় না; রেপ্লিকা কোয়েরি থ্রুপুট সেবা দেয় এবং স্থিতিস্থাপকতা দেয়। বেশি শার্ড প্রতি কোয়েরির ফ্যান-আউট খরচ বাড়ায়, তাই একটি গোল সংখ্যায় নয়, আপনার ডেটার আকারে ঠিক করুন। অধ্যায় 9.2-এর অবজার্ভেবিলিটি দিয়ে অনুসন্ধান চালান: কোয়েরি লেটেন্সি পার্সেন্টাইল (গড়ের চেয়ে লেজ বেশি গুরুত্বপূর্ণ), ইনডেক্সিং ল্যাগ, ক্যাশ হিট রেট, ত্রুটির হার, এবং প্রথম-শ্রেণির সংকেত হিসেবে শূন্য-ফল হার ও ক্লিক অবস্থানের মতো প্রাসঙ্গিকতা মেট্রিক অনুসরণ করুন। যে অনুসন্ধান সিস্টেম দ্রুত কিন্তু খারাপ ফল ফেরত দেয় সে নিঃশব্দে ব্যর্থ হচ্ছে, এবং কেবল প্রাসঙ্গিকতা টেলিমেট্রি আপনাকে তা বলবে।

ট্রেড-অফ: সুবিধা ও অসুবিধা

পদ্ধতিসুবিধাঅসুবিধা
লেক্সিক্যাল (BM25) অনুসন্ধানসঠিক পদ, কোড, নাম; স্বচ্ছ; সস্তাটিউন ছাড়া সমার্থক শব্দ ও প্যারাফ্রেজে অন্ধ
ভেক্টর (সেমান্টিক) অনুসন্ধানঅর্থ ও প্রশ্ন বোঝে; শক্তিশালী রিকলসঠিক ID মিস করে; গণনায় ব্যয়বহুল; ডিবাগ করা কঠিনতর
হাইব্রিড অনুসন্ধানকীওয়ার্ডের প্রিসিশন ও সেমান্টিকসের রিকলআরও চলমান অংশ; ফিউশন টিউনিং ও পরীক্ষা লাগে
আক্রমণাত্মক টাইপো ও সমার্থক শব্দ প্রসারণউচ্চতর রিকল; প্রকৃত ব্যবহারকারীদের প্রতি ক্ষমাশীলপ্রিসিশন পড়ে; অনিয়ন্ত্রিত থাকলে গোলমেলে ফল
রিয়েল-টাইম ইনডেক্সিংসেকেন্ডের মধ্যে সতেজ ফলব্যাচের চেয়ে বেশি খরচ ও জটিলতা
বেশি শার্ডবড় ইনডেক্স; সমান্তরাল ইনডেক্সিংপ্রতি কোয়েরি উচ্চতর ফ্যান-আউট ও সমন্বয় খরচ
অফলাইন মূল্যায়ন (বিচার তালিকা)দ্রুত, পুনরাবৃত্তিযোগ্য, পুনরাবৃত্তিতে নিরাপদআদর্শায়িত; প্রকৃত ব্যবহারকারী আচরণের সঙ্গে নাও মিলতে পারে
অনলাইন মূল্যায়ন (ক্লিক মেট্রিক, টেস্ট)প্রকৃত ব্যবহারকারী ও অভিপ্রায় প্রতিফলিত করেধীর, গোলমেলে, ট্রাফিক ও পরীক্ষা শৃঙ্খলা লাগে

পুনরাবৃত্ত টানাপোড়েন প্রিসিশন বনাম রিকল, এবং তা প্রতিটি নবে লুকানো। মিল ঢিলা করুন, সমার্থক শব্দ প্রসারিত করুন এবং সেমান্টিকসের ওপর ঝুঁকুন, আপনি গোলমালের খরচে বেশি ধরেন; সব আঁটো করুন, আপনি পরিচ্ছন্ন কিন্তু জিনিস মিস করেন। কোনো সর্বজনীন সেটিং নেই, কেবল একটি নির্দিষ্ট সংগ্রহ ও শ্রোতার জন্য সঠিক সেটিং, যা পরিমাপে আবিষ্কৃত। দ্বিতীয় টানাপোড়েন সতেজতা বনাম খরচ: রিয়েল-টাইম ইনডেক্সিং ও হাইব্রিড পুনরুদ্ধার দুটিই কম্পিউট ও জটিলতা দিয়ে গুণমান কেনে। প্রতিটি সিদ্ধান্ত একটি মূল্যায়ন মেট্রিক ও ব্যবহারকারী ফলের সঙ্গে, অন্তর্দৃষ্টির সঙ্গে নয়, বেঁধে দুটিই একইভাবে সমাধান করুন, যাতে আপনি দেখতে পান একটি পরিবর্তন আসলে কী কিনল।

আপনার দলের সঙ্গে আলোচনার প্রশ্ন

  1. আজ আমরা অনুসন্ধান প্রাসঙ্গিকতা কীভাবে মাপি, এবং তা খারাপ হলে কি আমরা লক্ষ্য করতাম? অনেক দল এর উত্তর দিতে পারে না, মানে তাদের প্রাসঙ্গিকতা ডিফল্ট যা তৈরি করেছে তা-ই এবং তারা রিগ্রেশনে অন্ধ উড়ছে। আপনার বর্তমান সংকেত আনুন: কি বিচার তালিকা আছে, আপনি কি শূন্য-ফল হার ও ক্লিক অবস্থান অনুসরণ করেন, আপনি কি দুটি র‍্যাঙ্কিং কনফিগারেশন বস্তুনিষ্ঠভাবে তুলনা করতে পারতেন? “অনুসন্ধান ঠিক মনে হয়” ও “এই আমাদের একশ গ্রেড করা কোয়েরিতে NDCG, এবং এই গত মাসের প্রবণতা”-র মধ্যকার ফাঁকই আন্দাজ ও প্রকৌশলের ফাঁক। পরবর্তী পদক্ষেপ হলো একটি ছোট বিচার তালিকা গড়া এবং ক্লিক আচরণ যন্ত্রসজ্জা করা, কারণ আপনি যা মাপেন না তা টিউন করতে পারেন না, এবং আপনার অন্ধ পাঠানো প্রতিটি প্রাসঙ্গিকতা পরিবর্তন আপনি রক্ষা করতে পারেন না।

  2. লেক্সিক্যাল ও সেমান্টিক পুনরুদ্ধার প্রত্যেকে কোথায় আমাদের ব্যর্থ করে, এবং আমাদের কি হাইব্রিডে যাওয়া উচিত? বিশুদ্ধ কীওয়ার্ড অনুসন্ধান নিঃশব্দে প্যারাফ্রেজ করা প্রশ্ন ও সমার্থক শব্দে ব্যর্থ হয়, আর বিশুদ্ধ ভেক্টর অনুসন্ধান নিঃশব্দে সঠিক শনাক্তকারী ও বিরল পদে ব্যর্থ হয়, এবং বেশিরভাগ দল কখনো দুটির কেবল একটি চালিয়েছে। খারাপ ফল ফেরত দেওয়া প্রকৃত কোয়েরির একটি সেট আনুন এবং প্রতিটি কেন ব্যর্থ হয়েছে তা শ্রেণিবদ্ধ করুন: এটি কি অনুপস্থিত সমার্থক শব্দ, বানান ভুল, সেমান্টিক অমিল, নাকি অনুপস্থিত সঠিক মিল? সেই ব্যর্থতার ধরন বলে দেয় হাইব্রিড অনুসন্ধান সাহায্য করত কি না এবং প্রথমে কোথায় পরিশ্রম ব্যয় করবেন। আপনি একটি ভাষা মডেলকে খাওয়ালে এটি আরও গুরুত্বপূর্ণ, কারণ পুনরুদ্ধার ব্যর্থতা আত্মবিশ্বাসী ভুল উত্তর হয়ে ওঠে, এবং একটি জেনারেটিভ স্তর ওপরে বসলে একটি খারাপ ফলের খরচ তীব্রভাবে বাড়ে।

  3. আমাদের সতেজতা প্রয়োজন কী, এবং আমাদের ইনডেক্সিং পাইপলাইন কি আসলে তা পূরণ করে? সতেজতা সাধারণত নির্দিষ্ট করার বদলে ধরে নেওয়া হয়, তাই দলগুলো অমিল আবিষ্কার করে একটি ঘটনার সময় যখন একটি মুছে ফেলা আইটেম দেখা দিতে থাকে বা একটি মূল্য হালনাগাদ ঘণ্টা পিছিয়ে। প্রকৃত সংখ্যা আনুন: রেকর্ডের সিস্টেমে একটি পরিবর্তন থেকে সেই পরিবর্তন অনুসন্ধানযোগ্য হতে কত সময়, এবং তা আপনার ক্যাটালগের বিভিন্ন অংশের আসলে যা দরকার তার সঙ্গে কেমন? উত্তর সম্ভবত ডেটা ধরন ভেদে ভিন্ন হবে, এবং তার নাম দেওয়া স্ট্রিমিং বনাম ব্যাচ, ক্রম ও পুনঃইনডেক্সিং নিয়ে পাইপলাইন সিদ্ধান্ত বাধ্য করে। আপনার ব্যবহারকারীরা দেখতে পায় এমনভাবে বাসি একটি ইনডেক্স পুরো পণ্যের ওপর আস্থা ক্ষয় করে, এবং আপনি কখনো না মাপা সতেজতা লক্ষ্য সম্ভবত আপনি মিস করছেন।

  4. আমরা কি নিজস্ব ইঞ্জিনে অনুসন্ধান গড়ব নাকি একটি ম্যানেজড অনুসন্ধান বা ভেক্টর সেবা কিনব, এবং পরে মত বদলাতে আমাদের কত খরচ হবে? গড়া-বনাম-কেনার ডাক বছরের পর বছর আপনার খরচ কাঠামো ও নিয়ন্ত্রণের সীমা ঠিক করে, এবং বড় দল সুচিন্তিতভাবে ঠিক করার বদলে জড়তায় একটি উত্তরে ভেসে যায়। দুই দিকের প্রকৃত সংখ্যা আনুন: নিজস্ব ক্লাস্টার ও এমবেডিং পাইপলাইন চালানো ও স্কেল করার পরিচালনগত খরচ বনাম একটি ম্যানেজড সেবার প্রতি-কোয়েরি বা সাবস্ক্রিপশন খরচ, এবং প্রতিটি আপনি অন্যত্র মোতায়েন করতে পারতেন এমন মানুষের কাছ থেকে যে প্রকৌশল সময় দাবি করে। লুকানো চলক হলো লক-ইন: আপনার র‍্যাঙ্কিং, বিশ্লেষণ ও ভেক্টর স্কিমার কতটা বহনযোগ্য, এবং মূল্য বা সামর্থ্য আপনার নিচে সরলে একটি স্থানান্তর আসলে কতদিন নিত। এন্টারপ্রাইজ ও সরকারি পরিবেশে ক্রয় লিড টাইম ও প্রস্থান বাধ্যবাধকতা যোগ করুন, কারণ যে সেবা তার র‍্যাঙ্কিং আচরণ প্রকাশ বা আপনার ইনডেক্স এক্সপোর্ট করতে পারে না তা এমন নির্ভরতা যা আপনাকে গ্রহণ করতে দেওয়া নাও হতে পারে।

  5. কোয়েরি বোঝায় আমরা কতটা বিনিয়োগ করতে ইচ্ছুক, এবং ব্যর্থ কোয়েরি কে পর্যালোচনা করে? ব্যবহারকারীরা ভুল বানান করে, সংক্ষেপ করে, এবং আপনার ডকুমেন্ট কখনো ব্যবহার করেনি এমন শব্দে প্রশ্ন গড়ে, তাই একটি কাঁচা কোয়েরি ও একটি ভালো ফলের মধ্যকার ফাঁকই সেখানে যেখানে বেশিরভাগ অনুভূত অনুসন্ধান গুণমান বাস করে, তবু এটি কদাচিৎ কারও সুস্পষ্ট কাজ। আপনার শূন্য-ফল হার, শীর্ষ ব্যর্থ ও পুনর্গঠিত কোয়েরি, এবং আজ আপনার সমার্থক শব্দ, টাইপো সহনশীলতা ও অভিপ্রায় সামলানোর সৎ বিবরণ আনুন। প্রতিদ্বন্দ্বী টান প্রিসিশন বনাম রিকল: আপনি অনুমতি দেওয়া প্রতিটি সমার্থক শব্দ ও প্রতিটি একক এডিট দূরত্ব আরও প্রকৃত ব্যবহারকারী ধরে এবং আরও গোলমাল ঢোকায়, তাই সঠিক বিনিয়োগ সেটি যা আপনি মাপতে পারেন, উদার শোনায় এমনটি নয়। একটি বড় বা জনসাধারণের প্রতিষ্ঠানের জন্য ব্যর্থ কোয়েরির দীর্ঘ লেজ অপূর্ণ প্রয়োজনের মানচিত্রও, এবং একটি নির্দিষ্ট ছন্দে এটি পর্যালোচনা সহায়তা খরচকে রোডম্যাপে পরিণত করে, বিশেষত যেখানে মিস হওয়া ফর্ম বা সুবিধার একজন নাগরিকের জন্য প্রকৃত পরিণতি আছে।

  6. প্রাসঙ্গিকতা অর্থায়িত, চলমান দায়িত্ব হিসেবে কার, এবং লঞ্চের পরে মূল্যায়ন চক্র কীভাবে টিকবে? অনুসন্ধান কখনো সমাপ্ত নয়: ক্যাটালগ বদলায়, ভাষা সরে, এবং গত ত্রৈমাসিকের টিউনিং নিঃশব্দে ক্ষয় হয়, তাই জবাবদিহিযোগ্য মালিকহীন সিস্টেম ডিফল্ট যা তৈরি করে তার দিকে পিছিয়ে। সংগঠন-চিত্রের বাস্তবতা আনুন: প্রাসঙ্গিকতা কি সময় ও মেট্রিকসহ একটি নামকরা দল, নাকি সর্বশেষ যে ইনডেক্স ছুঁয়েছে তার ওপর পড়া একটি কাজ, এবং একটি বিচার তালিকা ও পরীক্ষা হার্নেস আছে কি যা একজন নতুন মানুষ তুলে নিতে পারে? টানাপোড়েন হলো প্রাসঙ্গিকতা কাজ অনাকর্ষণীয় এবং অনুসন্ধান কাজ করছে মনে হওয়ার মুহূর্তে অর্থায়ন বন্ধ করা সহজ, যা ঠিক যখন ক্ষয় শুরু হয়। এন্টারপ্রাইজ ও সরকারি প্রেক্ষাপটে মালিকানা সুনির্দিষ্ট বাধ্যবাধকতায় বাঁধুন, প্রতি-বাজার নির্ভুলতা, অভিগম্যতা, বহুভাষী কভারেজ এবং শূন্য-ফল কোয়েরির পর্যালোচনা, যাতে দায়িত্ব নিরীক্ষণযোগ্য এবং লঞ্চ দল ছড়িয়ে গেলে উধাও হয় না।

খাতভেদে দৃষ্টিভঙ্গি

স্টার্টআপ। একটি ম্যানেজড অনুসন্ধান বা ভেক্টর সেবা ধরুন এবং প্রথম দিনে BM25 ডিফল্ট পাঠান; টিউন করার মতো কোয়েরি পাওয়ার আগে নিজস্ব ক্লাস্টার দাঁড় করাবেন না। রাজস্ব বা ধরে রাখা ছোঁয়া একটি অনুসন্ধান পৃষ্ঠ বাছুন, প্রথম রিলিজ থেকে ক্লিক অবস্থান ও শূন্য-ফল হার যন্ত্রসজ্জা করুন, এবং রোডম্যাপ নয়, প্রকৃত কোয়েরি লগকে বলতে দিন কখন সমার্থক শব্দ বা সেমান্টিক স্তর যোগ করবেন। অনুসন্ধানের জন্য আপনার গড়া সেই একই পুনরুদ্ধার স্তর পরে আপনার রিট্রিভাল-অগমেন্টেড জেনারেশন ব্যাকএন্ড হয়, তাই একে একটি পাতলা ইন্টারফেসের পেছনে রাখুন।

ছোট ব্যবসা। আপনার প্রায় নিশ্চিতভাবে কোনো প্রাসঙ্গিকতা ইঞ্জিনিয়ার নেই, তাই আপনি ইতিমধ্যে চালানো প্ল্যাটফর্মে এমবেড করা অনুসন্ধান কিনুন, যেমন আপনার ই-কমার্স হোস্ট, হেল্প ডেস্ক বা কন্টেন্ট ম্যানেজমেন্ট সিস্টেম, এবং টিউনিংকে একটি প্রকল্পের বদলে হালকা পুনরাবৃত্ত কাজ গণ্য করুন। আপনার সীমিত পরিশ্রম ব্যয় করুন অনুসন্ধান যে ডেটা-গুণমান মৌলিক বিষয়ের ওপর নির্ভর করে: ফ্যাসেটের জন্য পরিচ্ছন্ন পণ্য বৈশিষ্ট্য, যুক্তিসঙ্গত শিরোনাম, এবং আপনার গ্রাহকরা আসলে যে শব্দ ব্যবহার করে তার জন্য একটি ছোট সমার্থক শব্দ তালিকা। শূন্য-ফল কোয়েরি মাসিক দেখুন, কারণ ইঞ্জিনিয়ার ছাড়াই আপনি বন্ধ করতে পারেন এমন ফাঁকের সবচেয়ে সস্তা সংকেত।

এন্টারপ্রাইজ। সমস্যা অনেক দল, ক্যাটালগ ও ভাষা জুড়ে পরিসরে প্রাসঙ্গিকতা: একটি ভাগ করা বিচার-তালিকা পদ্ধতি, প্রতি-বাজার মূল্যায়ন, এবং একটি অর্থায়িত প্রাসঙ্গিকতা ফাংশন যাতে প্রতিটি গোষ্ঠী স্ক্র্যাচ থেকে BM25 পুনঃটিউন না করে। ইনডেক্সিং পাইপলাইন, সতেজতা লক্ষ্য এবং র‍্যাঙ্কিং পরিবর্তন গেট করা পরীক্ষা শৃঙ্খলা প্রমিত করুন, এবং শার্ডিং ও প্রতিলিপি অভ্যাসে নয়, সুচিন্তিতভাবে আকার দিন। গড়া-বনাম-কেনা সুস্পষ্টভাবে ওজন করুন, কারণ একটি ম্যানেজড ভেক্টর সেবা কিছু নিয়ন্ত্রণ ও সম্ভাব্য লক-ইনের দামে পরিচালনগত খরচ কাটতে পারে।

সরকার। খুঁজে পাওয়া প্রায়ই একটি আইনি বাধ্যবাধকতা এবং সাম্য বিষয়: যে নাগরিক সঠিক ফর্ম খুঁজে পান না তিনি অধিকার প্রয়োগ করতে পারেন না। রিকল ও ব্যাখ্যাযোগ্য র‍্যাঙ্কিং পছন্দ করুন যাতে সংস্থা ব্যাখ্যা করতে পারে একটি ফল কেন দেখা দিয়েছে, সরল ভাষার শব্দকে সরকারি শিরোনামের সঙ্গে সেতুবন্ধ করা সমার্থক শব্দ যোগ করুন, এবং অভিগম্যতা ও বহুভাষী সমর্থনকে বাড়তি নয়, প্রয়োজন গণ্য করুন। ক্রয়ে লক-ইন ওজন করা উচিত এবং যেকোনো ম্যানেজড সেবাকে তার র‍্যাঙ্কিং আচরণ প্রকাশ ও ডেটা বহনযোগ্যতা দিতে দাবি করা উচিত, এবং শূন্য-ফল কোয়েরি অপূর্ণ জনসাধারণের প্রয়োজনের একটি প্রকাশ্য রেকর্ড হিসেবে পর্যালোচনা করা উচিত।

উদাহরণ

স্টার্টআপ। দশজনের একটি সফটওয়্যার কোম্পানি তার সহায়তা জ্ঞানভাণ্ডারে অনুসন্ধান যোগ করে যাতে গ্রাহকরা নিজে সেবা পায়। তারা BM25 ডিফল্ট দিয়ে শুরু করে এবং দ্রুত সীমায় আঘাত করে: ব্যবহারকারীরা সরল ভাষায় প্রশ্ন করে যা নিবন্ধের সঙ্গে কোনো কীওয়ার্ড ভাগ করে না। তারা ভেক্টর এমবেডিং যোগ করে এবং রেসিপ্রোকাল র‍্যাঙ্ক ফিউশন দিয়ে দুটি মেলায়, এবং ডিফ্লেকশন রাতারাতি উন্নত হয়। টিউন করতে তারা নিজেদের কোয়েরি লগ খনন করে, কয়েকশ কোয়েরি-নিবন্ধ জোড়া লেবেল করে, এবং সাপ্তাহিক ক্লিক অবস্থান অনুসরণ করে। পরে একটি ইন-প্রোডাক্ট সহকারী যোগ করলে একই পুনরুদ্ধার স্তর RAG ব্যাকএন্ড হয়, তাই অনুসন্ধান বিনিয়োগ দুবার ফল দেয়।

এন্টারপ্রাইজ। একটি বৈশ্বিক খুচরা বিক্রেতা কোটি কোটি আইটেমের ওপর ডজন ডজন বাজার ও ভাষা জুড়ে পণ্য অনুসন্ধান চালায়। ইনডেক্স আকারের জন্য শার্ড করা এবং থ্রুপুটের জন্য প্রতিলিপি করা, প্রতি-ভাষা অ্যানালাইজার প্রতিটি বাজারের জন্য টোকেনাইজেশন ও স্টেমিং সঠিকভাবে সামলায়। ব্র্যান্ড, মূল্য ও উপলব্ধতা ধরে ফ্যাসেটেড নেভিগেশন বিশাল ফল সেটকে নির্দেশিত ব্রাউজিংয়ে পরিণত করে, এবং অটোকমপ্লিট ক্রেতাদের উচ্চ-রূপান্তরের কোয়েরির দিকে চালিত করে। প্রাসঙ্গিকতা প্রতি-বাজার বিচার তালিকা ও নিরন্তর অনলাইন পরীক্ষাসহ একটি অর্থায়িত দল; একটি র‍্যাঙ্কিং পরিবর্তন কেবল রূপান্তরে নিয়ন্ত্রণকে হারালেই পাঠানো হয়। একটি রিয়েল-টাইম ইনডেক্সিং পাইপলাইন মূল্য ও স্টক সেকেন্ডের মধ্যে অনুসন্ধানযোগ্য রাখে, কারণ প্রথমে র‍্যাঙ্ক করা একটি বিক্রি-হয়ে-যাওয়া আইটেম একটি হারানো বিক্রি ও একটি সহায়তা টিকিট।

সরকার। একটি জাতীয় সংস্থা বিধি, ফর্ম ও নির্দেশনা প্রকাশ করে যা জনগণের খুঁজে পাওয়া দরকার, প্রায়ই আইনি বাধ্যবাধকতার অধীনে এবং সময়সীমা-চালিত সর্বোচ্চ লোডে। দল রিকল ও স্বচ্ছতা পছন্দ করে: একটি সুবিধা খোঁজা নাগরিকের প্রাসঙ্গিক ফর্ম মিস করা চলবে না, এবং সংস্থাকে ব্যাখ্যা করতে পারতে হবে একটি ফল কেন দেখা দিয়েছে, যা তাদের ব্যাখ্যাযোগ্য লেক্সিক্যাল র‍্যাঙ্কিংয়ের দিকে ঠেলে, সাবধানে সমার্থক শব্দ দিয়ে বর্ধিত যা মানুষ সরকারি শিরোনামের বদলে ব্যবহার করা সরল ভাষার শব্দ ধরে। অভিগম্যতা ও বহুভাষী সমর্থন বাড়তি নয়, প্রয়োজন। নীতি ডকুমেন্ট বদলালে ইনডেক্স একটি অ্যালিয়াসের পেছনে ডাউনটাইম ছাড়া পুনঃইনডেক্স করে, এবং শূন্য-ফল কোয়েরি অপূর্ণ জনসাধারণের প্রয়োজনের সংকেত হিসেবে লগ ও পর্যালোচনা করা হয়।

ব্যবসায়িক যুক্তি: প্রেরণা, ROI ও TCO

অনুসন্ধান সরাসরি মূল্যের পথে বসে। বাণিজ্যে রাজস্বের একটি পরিমাপযোগ্য অংশ অনুসন্ধান বাক্সের মধ্য দিয়ে প্রবাহিত হয়, এবং যারা অনুসন্ধান করে তারা কেবল ব্রাউজ করাদের চেয়ে উচ্চতর হারে রূপান্তর করে, তাই প্রাসঙ্গিকতায় কয়েক পয়েন্টের উন্নতি প্রকৃত অর্থে রূপান্তরিত হয়। সহায়তা ও অভ্যন্তরীণ টুলে ভালো অনুসন্ধান টিকিট ডিফ্লেক্ট করে, হ্যান্ডেল সময় ছোট করে এবং জ্ঞানকর্মীরা ডকুমেন্ট খুঁজতে যে ঘণ্টা হারান তা উদ্ধার করে। জনখাতে কার্যকর অনুসন্ধান একটি সেবা-গুণমান ও সাম্য বিষয়: যারা সঠিক ফর্ম বা নির্দেশনা খুঁজে পায় না তারা অধিকার প্রয়োগ বা বাধ্যবাধকতা পূরণ করতে পারে না। এই ফল পরিমাপযোগ্য, ঠিক যে কারণে অনুসন্ধান সেরা-প্রচেষ্টার ডিফল্টের বদলে অর্থায়িত মূল্যায়ন প্রাপ্য।

মালিকানার মোট খরচ লাইসেন্স বা ক্লাস্টারের বাইরে অনেক দূর যায়। আপনি ইনডেক্স ও তার রেপ্লিকার কম্পিউট ও সংরক্ষণের জন্য, সেমান্টিক গেলে এমবেডিং তৈরির জন্য, তা সতেজ রাখা ইনডেক্সিং পাইপলাইনের জন্য, এবং সবচেয়ে বেশি, প্রাসঙ্গিকতা টিউনিং ও মূল্যায়নের চলমান মানবিক কাজের জন্য দাম দেন। সেই শেষ খরচ যা দল কম অনুমান করে এবং যা সাফল্য সবচেয়ে বেশি ঠিক করে, কারণ অনুসন্ধান কখনো সমাপ্ত নয়: ক্যাটালগ বদলায়, ভাষা সরে, এবং গতকালের টিউনিং ক্ষয় হয়। একটি ম্যানেজড অনুসন্ধান বা ভেক্টর সেবা কেনা কিছু নিয়ন্ত্রণ ও সম্ভাব্য লক-ইনের দামে পরিচালনগত খরচ কমাতে ও আপনাকে দ্রুত করতে পারে, আপনার পরিসর ও পার্থক্যের বিপরীতে ওজন করার একটি ক্লাসিক গড়া-বনাম-কেনা ডাক। সবচেয়ে শক্তিশালী ব্যবসায়িক যুক্তি একটি নির্দিষ্ট প্রাসঙ্গিকতা মেট্রিক একটি নির্দিষ্ট ফলের সঙ্গে বাঁধে, মূল্যায়ন চক্র অর্থায়ন করে, এবং অনুসন্ধানকে ইনস্টল করে ভুলে যাওয়া উপাদান নয়, মাপা ও উন্নত করা পণ্য গণ্য করে।

অ্যান্টি-প্যাটার্ন ও ফাঁদ

  • অমিল বিশ্লেষণ: ইনডেক্স-সময় ও কোয়েরি-সময় অ্যানালাইজার দ্বিমত করে, তাই পদ নিঃশব্দে মেলে না এবং কোনো ত্রুটি ছাড়া ফল উধাও হয়।
  • মতামতে প্রাসঙ্গিকতা: সবচেয়ে জোরে তর্ক করা ব্যক্তির টিউন করা র‍্যাঙ্কিং, কোনো বিচার তালিকা, মেট্রিক ও রিগ্রেশন ধরার উপায় ছাড়া।
  • কেবল-ভেক্টরে বিশ্বাস: কীওয়ার্ড অনুসন্ধান পুরোপুরি এমবেডিং দিয়ে প্রতিস্থাপন, তারপর সঠিক ID, কোড ও বিরল পদে ব্যর্থ হওয়া।
  • শূন্য ফল উপেক্ষা: শিথিল, পরামর্শ বা ফলব্যাকের বদলে ফাঁকা ফল পাতা থাকতে দেওয়া এবং ব্যবহারকারী হারানো।
  • বাসি ইনডেক্স: ব্যবহারকারীরা ভুল দেখতে পায় এমন মূল্য, স্টক বা মুছে ফেলা সেবা দেওয়া রাতের ব্যাচ পাইপলাইন।
  • পুনঃইনডেক্স ডাউনটাইম: অ্যালিয়াসের পেছনে না করে স্থানে পুনর্নির্মাণ, প্রতিটি স্কিমা পরিবর্তনে অনুসন্ধান অফলাইন করা।
  • চিরকাল টিউন না করা ডিফল্ট: বাক্সের বাইরের BM25 পাঠানো এবং সংগ্রহ ও শ্রোতা বিবর্তিত হলেও কখনো পুনর্বিবেচনা না করা।
  • প্রাসঙ্গিকতা টেলিমেট্রি নেই: লেটেন্সি ও ত্রুটি পর্যবেক্ষণ কিন্তু শূন্য-ফল হার বা ক্লিক অবস্থান নয়, তাই খারাপ ফল নিঃশব্দে ব্যর্থ হয়।
  • অতি-উৎসাহী প্রসারণ: সমার্থক শব্দ ও টাইপো সহনশীলতা ঠাসা যতক্ষণ না প্রিসিশন ধসে এবং প্রতিটি কোয়েরি গোলমাল ফেরত দেয়।

পরিপক্বতা মডেল

  • স্তর ১, সূচনা: অনুসন্ধান একটি ডিফল্ট ডেটাবেস কোয়েরি বা স্টক সেটিংসহ অটিউন ইঞ্জিন, কেউ অবশেষে চাইলে প্রতিক্রিয়ায় দাঁড় করানো। কোনো প্রাসঙ্গিকতা পরিমাপ, কোয়েরি-বোঝা স্তর নেই, এবং সতেজতা একটি ব্যাচ জব যা ঘটিয়ে ফেলে তা-ই। খারাপ ফল লক্ষ্য করা হয় কেবল ব্যবহারকারীরা অভিযোগ করলে, এবং প্রতিটি সমাধান একবারের।
  • স্তর ২, বিকাশ: যুক্তিসঙ্গত বিশ্লেষণ, BM25 র‍্যাঙ্কিং এবং মৌলিক ফ্যাসেট ও অটোকমপ্লিটসহ একটি প্রকৃত অনুসন্ধান ইঞ্জিন বসানো। কিছু সমার্থক শব্দ ও টাইপো সহনশীলতা আছে, দল লেটেন্সি ও ত্রুটি দেখে, এবং শূন্য-ফল কোয়েরি লগ করতে শুরু করেছে। চর্চা দল থেকে দলে ও পণ্য থেকে পণ্যে ভিন্ন, এবং প্রাসঙ্গিকতা এখনো প্রমাণের বদলে মতামতে টিউন করা।
  • স্তর ৩, মানসম্মতকরণ: প্রাসঙ্গিকতা চর্চা নথিবদ্ধ এবং প্রতিষ্ঠান জুড়ে সামঞ্জস্যপূর্ণভাবে প্রয়োগ করা। দলগুলো অফলাইনে একটি ভাগ করা বিচার-তালিকা পদ্ধতি ও NDCG এবং অনলাইনে ক্লিক মেট্রিক দিয়ে মাপে, যেখানে সাহায্য করে সেখানে হাইব্রিড লেক্সিক্যাল-প্লাস-ভেক্টর পুনরুদ্ধার চালায়, ইনডেক্সিং পাইপলাইনকে একটি নির্ধারিত সতেজতা লক্ষ্যে ধরে রাখে, এবং একটি অ্যালিয়াসের পেছনে ডাউনটাইম ছাড়া পুনঃইনডেক্স করে। শার্ডিং ও প্রতিলিপি সুচিন্তিতভাবে আকার দেওয়া, এবং প্রাসঙ্গিকতা মেট্রিক পরিচালনগত মেট্রিকের পাশে পর্যবেক্ষিত।
  • স্তর ৪, ব্যবস্থাপনা: অনুসন্ধান ভিত্তিরেখার বিপরীতে মাপা ও নিয়ন্ত্রিত। প্রতিটি অনুসন্ধান পৃষ্ঠ একটি সম্মত ভিত্তিরেখার বিপরীতে NDCG প্রবণতা, শূন্য-ফল হার, ক্লিক অবস্থান ও পুনর্গঠন হার অনুসরণ করে, কোয়েরি লেটেন্সি পার্সেন্টাইল ও ইনডেক্সিং ল্যাগে সেবা-স্তরের উদ্দেশ্যসহ। র‍্যাঙ্কিং ও বিশ্লেষণ পরিবর্তন কেবল একটি নিয়ন্ত্রিত পরীক্ষা একটি নামকরা ফলে নিয়ন্ত্রণকে হারালেই পাঠানো হয়, একটি প্রাসঙ্গিকতা রিগ্রেশন স্বয়ংক্রিয়ভাবে অ্যালার্ট ট্রিগার করে, এবং প্রতি-বাজার বা প্রতি-সেগমেন্ট ড্যাশবোর্ড ব্যবহারকারীরা অনুভব করার আগে নীরব ক্ষয় দৃশ্যমান করে। একটি নব বদলানোর সিদ্ধান্ত সুস্পষ্ট রোলব্যাক মানদণ্ডসহ তথ্যে নেওয়া হয়।
  • স্তর ৫, সমন্বয়: অনুসন্ধান উন্নতি একটি নিরন্তর, পরীক্ষা-চালিত চক্র যা প্রতিষ্ঠান জুড়ে একীভূত। বিচার তালিকা খনন করা কোয়েরি লগ থেকে বাড়ে, কোয়েরি বোঝা প্রকৃত ভাষার সঙ্গে খাপ খায়, এবং নিম্নধারা জেনারেটিভ অ্যাপ্লিকেশনের ভাগ করা ভিত্তি হিসেবে পুনরুদ্ধার টিউন করা হয়। পুরো সিস্টেম গতি ও প্রাসঙ্গিকতা দুটির জন্য শুরু থেকে শেষ পর্যবেক্ষিত, এবং ক্যাটালগ, ভাষা ও মডেল ভূদৃশ্য সরলে অনুসন্ধান চর্চা নিজেকে পুনর্ভারসাম্যে আনে।

আলোচনার ভাবনা

  1. আপনার অনুসন্ধানের কত অংশ শূন্য ফল ফেরত দেয় বা পুনর্গঠনে নিয়ে যায়, এবং সেই কোয়েরিগুলো অপূর্ণ প্রয়োজন সম্পর্কে কী প্রকাশ করে?
  2. আগামীকাল কীওয়ার্ড অনুসন্ধান বিশুদ্ধ ভেক্টর অনুসন্ধান দিয়ে প্রতিস্থাপন করলে কোন কোয়েরি ভাঙত, এবং আপনার ব্যবহারকারীরা আগে আপনি কীভাবে জানতেন?
  3. আপনার প্রতিষ্ঠানে প্রাসঙ্গিকতার মালিক কে, এবং তাঁদের কি একটি বিচার তালিকা ও মেট্রিক আছে, নাকি শুধু মতামত ও উপাখ্যান?
  4. আপনার রেকর্ডের সিস্টেমে একটি পরিবর্তন থেকে সেই পরিবর্তন অনুসন্ধানযোগ্য হওয়ার বিলম্ব কত, এবং তা কি প্রতিটি ডেটা ধরনের জন্য গ্রহণযোগ্য?
  5. একটি ভাষা মডেল আপনার অনুসন্ধান ফল ভোগ করলে, আপনার পুনরুদ্ধার গুণমান কি একটি জেনারেটিভ উত্তরের দাবি করা উচ্চতর মান পূরণ করে?
  6. একজন সন্দিহান অংশীদারের কাছে আপনি একটি র‍্যাঙ্কিং পরিবর্তন কীভাবে রক্ষা করবেন: একটি পরীক্ষার ফল দিয়ে, নাকি একটি গল্প দিয়ে?

প্রধান শিক্ষা

  • অনুসন্ধানকে প্রথম-শ্রেণির সিস্টেম গণ্য করুন: নিজস্ব ডেটা মডেল, পাইপলাইন, স্কেলিং ও ব্যর্থতার ধরনসহ একটি উদ্ভূত ইনডেক্স, রেকর্ডের সিস্টেম থেকে আলাদা।
  • আরও চমকপ্রদ কিছু ধরার আগে মৌলিক বিষয় (ইনভার্টেড ইনডেক্স, মেলানো বিশ্লেষণ, BM25 র‍্যাঙ্কিং, প্রিসিশন বনাম রিকল) আত্মস্থ করুন।
  • কোয়েরি বোঝায় (সমার্থক শব্দ, টাইপো সহনশীলতা, অভিপ্রায় এবং একটি প্রকৃত শূন্য-ফল পরিকল্পনা) বিনিয়োগ করুন, কারণ ব্যবহারকারীরা কখনো আপনার ডকুমেন্টের পড়ার মতো টাইপ করে না।
  • লেক্সিক্যাল ও ভেক্টর অনুসন্ধান মেলানো হাইব্রিড পুনরুদ্ধার ডিফল্ট করুন, এবং মনে রাখুন এই একই পুনরুদ্ধার স্তরই রিট্রিভাল-অগমেন্টেড জেনারেশনের ভিত্তি।
  • মতামতকে পরিমাপ দিয়ে প্রতিস্থাপন করুন: অফলাইনে বিচার তালিকা ও NDCG, অনলাইনে ক্লিক মেট্রিক ও নিয়ন্ত্রিত পরীক্ষা, এবং যেকোনো প্রোডাকশন সংকেতের মতো পর্যবেক্ষিত প্রাসঙ্গিকতা টেলিমেট্রি।

তথ্যসূত্র ও আরও পড়ার জন্য

  • Christopher D. Manning, Prabhakar Raghavan ও Hinrich Schütze, Introduction to Information Retrieval
  • Stephen E. Robertson ও Hugo Zaragoza, The Probabilistic Relevance Framework: BM25 and Beyond
  • Ricardo Baeza-Yates ও Berthier Ribeiro-Neto, Modern Information Retrieval: The Concepts and Technology behind Search
  • Doug Turnbull ও John Berryman, Relevant Search: With Applications for Solr and Elasticsearch
  • Trey Grainger, Doug Turnbull ও Max Irwin, AI-Powered Search
  • Patrick Lewis et al., “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks”
  • Jeff Johnson, Matthijs Douze ও Hervé Jégou, “Billion-Scale Similarity Search with GPUs”
  • Kalervo Järvelin ও Jaana Kekäläinen, “Cumulated Gain-Based Evaluation of IR Techniques”