ভেক্টর অনুসন্ধান 2.0 এর ভূমিকা

১. ভূমিকা

সর্বশেষ হালনাগাদ: ২০২৬-০৩-০৪

ভেক্টর সার্চ বা ভেক্টর ডেটাবেস আধুনিক এআই সিস্টেমের জন্য একটি মৌলিক প্রযুক্তি হয়ে উঠেছে। এটি ডেটাকে শব্দার্থিক অর্থ ধারণকারী উচ্চ-মাত্রিক এমবেডিং হিসেবে উপস্থাপন করে এবং ব্যবহারকারীর অভিপ্রায় বুঝতে পারা সিমান্টিক সার্চ, প্রাসঙ্গিক কন্টেন্ট প্রদর্শনকারী রিকমেন্ডেশন ইঞ্জিন, এবং বাস্তব ও হালনাগাদ তথ্যের উপর ভিত্তি করে এলএলএম (LLM) প্রতিক্রিয়া প্রদানকারী রিট্রিভাল-অগমেন্টেড জেনারেশন (RAG) ও এআই এজেন্ট—সবকিছুকেই চালিত করে। গুগল সহ প্রধান প্রযুক্তি সংস্থাগুলো প্রতিদিন শত শত কোটি সার্চ, রিকমেন্ডেশন এবং গ্রাউন্ডিং প্রক্রিয়া করার জন্য ব্যাপকভাবে এই প্রযুক্তির উপর নির্ভর করে।

তথাপি, প্রোডাকশন-রেডি ভেক্টর সার্চ তৈরি করা এখনও একটি চ্যালেঞ্জ। এই পরিস্থিতি বদলাতে গুগল সম্প্রতি ভার্টেক্স এআই ভেক্টর সার্চ ২.০ প্রকাশ করেছে — এটি একটি সম্পূর্ণ পরিচালিত পরিষেবা, যা সেইসব ডিজাইন ও পরিচালনগত জটিলতা দূর করার জন্য তৈরি করা হয়েছে, যা টিমগুলোর কাজের গতি কমিয়ে দেয়।

26136405e588dcfd.png

ভেক্টর সার্চ দেখতে যতটা সহজ মনে হয়, তার চেয়ে কেন বেশি কঠিন

ধারণাটা সহজ। কিন্তু এর বাস্তবায়ন? সেখানেই ব্যাপারটা জটিল হয়ে ওঠে।

61df16b7d734ee87.png

এমবেডিং তৈরি। ভেক্টর সার্চের জন্য আপনার ডেটাকে এমন সাংখ্যিক উপস্থাপনায় (এমবেডিং) রূপান্তর করতে হয় যা অর্থগত তাৎপর্য ধারণ করে। এর মানে হলো, আপনাকে একটি এমবেডিং এপিআই কল করতে হবে, আপনার অনুরোধগুলোকে ব্যাচ করতে হবে, রেট লিমিট সামলাতে হবে এবং ভেক্টরগুলো সংরক্ষণ করতে হবে। প্রতিবার আপনার ডেটা পরিবর্তিত হলে, আপনাকে পাইপলাইনটি পুনরায় চালাতে হয়। সার্চ শুরু করার আগেই এই পরিকাঠামোটি আপনাকে তৈরি করতে হবে।

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

ইনডেক্স টিউনিং। লক্ষ লক্ষ আইটেম সহ অ্যাপ্রক্সিমেট নিয়ারেস্ট নেইবার (ANN) ইনডেক্স তৈরি করতে, সেরা পারফরম্যান্স পাওয়ার জন্য আপনাকে বিশেষজ্ঞ সিদ্ধান্ত নিতে হবে: প্রতিটি ইনডেক্স নোডে কতগুলি আইটেম থাকা উচিত? রিকল এবং ল্যাটেন্সির মধ্যে ভারসাম্য বজায় রাখতে প্রতি কোয়েরিতে ইনডেক্সের কত শতাংশ স্ক্যান করা উচিত? কোন শার্ড সাইজ আপনার ডেটাসেটের সাথে মেলে? এগুলি হলো এমএল (ML) পরিকাঠামোগত সিদ্ধান্ত, যার সাথে আপনার আসল পণ্যের কোনো সম্পর্ক নেই।

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

ভেক্টর সার্চ ২.০ কীভাবে এই সমস্যাগুলো সমাধান করে

গুগল ক্লাউডে ভেক্টর সার্চ ২.০ সরাসরি এই প্রতিটি চ্যালেঞ্জের সমাধান করে:

eb385a0369369374.png43d893d0a2bf1fe1.png

এই কর্মশালায়, আমরা TheLook ই-কমার্স ডেটাসেট থেকে ১০,০০০ ফ্যাশন পণ্য ব্যবহার করে একটি সম্পূর্ণ পরিচালিত হাইব্রিড সার্চ তৈরি করব।

ভেক্টর সার্চ ২.০ বলতে কী বোঝায়?

ভেক্টর সার্চ ২.০ হলো গুগল ক্লাউডের একটি সম্পূর্ণভাবে পরিচালিত, স্বয়ংক্রিয়ভাবে সমন্বয়কারী ভেক্টর ডেটাবেস, যা গুগলের ScaNN (স্কেলেবল নিয়ারেস্ট নেইবারস) অ্যালগরিদমের ওপর ভিত্তি করে নির্মিত—এই একই প্রযুক্তি গুগল সার্চ, ইউটিউব এবং গুগল প্লে-কেও শক্তি জোগায়।

মূল পার্থক্যকারী

  • জিরো ইনডেক্সিং থেকে বিলিয়ন-স্কেল ইনডেক্স : kNN (k-Nearest Neighbors) ব্যবহার করে জিরো ইনডেক্সিং টাইমে অবিলম্বে ডেভেলপমেন্ট শুরু করুন, তারপর প্রোডাকশনের জন্য গুগল-স্কেল ANN (Approximate Nearest Neighbor) ইনডেক্সের সাহায্যে মিলিসেক ল্যাটেন্সিতে বিলিয়ন ভেক্টরে স্কেল করুন – এই সবই একই API এবং একই ডেটাসেট ব্যবহার করে।
  • একীভূত ডেটা স্টোরেজ : ভেক্টর এমবেডিং এবং ব্যবহারকারী প্রদত্ত ডেটা উভয়ই একসাথে সংরক্ষণ করুন (কোনও পৃথক ডেটাবেস বা ফিচার স্টোরের প্রয়োজন নেই)
  • অটো-এম্বেডিংস : ভার্টেক্স এআই এম্বেডিং মডেল ব্যবহার করে স্বয়ংক্রিয়ভাবে সিমান্টিক এম্বেডিংস তৈরি করুন।
  • অন্তর্নির্মিত পূর্ণ-পাঠ্য অনুসন্ধান : এটি আপনাকে নিজে থেকে স্পার্স এমবেডিং তৈরি করার প্রয়োজন ছাড়াই একটি অন্তর্নির্মিত পূর্ণ-পাঠ্য অনুসন্ধানের সুবিধা প্রদান করে। এছাড়াও, আপনার পছন্দমতো পূর্ণ-পাঠ্য অনুসন্ধানের জন্য আপনি ভেক্টর সার্চের সাথে আপনার নিজস্ব স্পার্স এমবেডিং (যেমন, BM25, SPLADE) ব্যবহার করতে পারেন।
  • হাইব্রিড সার্চ : ইন্টেলিজেন্ট RRF র‍্যাঙ্কিং সহ একটিমাত্র কোয়েরিতে সিমান্টিক এবং কীওয়ার্ড/টোকেন-ভিত্তিক সার্চের সমন্বয়।
  • সেলফ-টিউনিং : ম্যানুয়াল কনফিগারেশন ছাড়াই স্বয়ংক্রিয়ভাবে অপ্টিমাইজ করা পারফরম্যান্স
  • এন্টারপ্রাইজ-রেডি : অন্তর্নির্মিত স্কেলেবিলিটি, নিরাপত্তা এবং কমপ্লায়েন্স

মূল স্থাপত্য

ভেক্টর সার্চ ২.০-এর তিনটি প্রধান উপাদান রয়েছে:

  1. সংগ্রহসমূহ : আপনার ডেটার জন্য স্কিমা-নিয়ন্ত্রিত কন্টেইনার
  2. ডেটা অবজেক্ট : ডেটা এবং ভেক্টর এমবেডিং সহ স্বতন্ত্র আইটেম
  3. ইনডেক্স : kNN ব্যবহার করে আপনার ডেটার তাৎক্ষণিক নিকটতম প্রতিবেশী অনুসন্ধান করুন। কম লেটেন্সির নিকটতম প্রতিবেশী অনুসন্ধানের জন্য একটি ANN ইনডেক্স ব্যবহার করুন।
  • দ্রুত শুরু করুন : কোনো সেটআপ সময় ছাড়াই অবিলম্বে kNN ব্যবহার করুন - ডেভেলপমেন্ট এবং ছোট ডেটাসেটের জন্য আদর্শ।
  • উৎপাদন পর্যায়ে সম্প্রসারণ : ScaNN অ্যালগরিদম দ্বারা চালিত, সাব-সেকেন্ড ল্যাটেন্সিতে বিলিয়ন-স্কেল অনুসন্ধানের জন্য ANN ইনডেক্স ব্যবহার করুন।

চলুন, হাতে-কলমে উদাহরণের মাধ্যমে প্রতিটি ধারণা অন্বেষণ করি!

২. দ্য লুক ফ্যাশন সার্চ তৈরি করা

ধরুন, একজন গ্রাহক আপনার ই-কমার্স সাইটে এসে টাইপ করলেন, “সমুদ্র সৈকতে বেড়ানোর জন্য সুন্দর কিছু একটা।” প্রচলিত কীওয়ার্ড সার্চের মাধ্যমে তিনি কোনো ফলাফলই পেলেন না — আপনার ক্যাটালগের কোনো পণ্যেই ঠিক ওই শব্দগুলো নেই। হতাশ হয়ে তিনি চলে গেলেন।

এবার একটি ভিন্ন অভিজ্ঞতার কথা ভাবুন। একই কোয়েরির ফলে সানড্রেস, সুইমওয়্যার কভার-আপ এবং ফ্লোয়ি শর্টস-এর মতো পণ্যগুলো উঠে আসে—যেগুলো গ্রাহকের মনের মতো হুবহু মিলে যায়, যদিও সেগুলোর কোনোটির শিরোনামেই 'বিচ' শব্দটি নেই। ভেক্টর সার্চ ঠিক এই অভিজ্ঞতাই প্রদান করে।

ভেক্টর সার্চ ২.০ কীভাবে এটি সম্ভব করে তোলে তা দেখানোর জন্য, আমরা ‘TheLook’ ব্যবহার করে একটি পণ্য অনুসন্ধান ব্যবস্থা তৈরি করব। ‘TheLook’ হলো একটি বাস্তবসম্মত ই-কমার্স ডেটাসেট, যেখানে ২৬টি ক্যাটাগরিতে ৩০,০০০ ফ্যাশন আইটেম রয়েছে। প্রতিটি পণ্যের এমন সব বৈশিষ্ট্য রয়েছে যা আপনি যেকোনো আসল ক্যাটালগে খুঁজে পাবেন:

40d8ed36e05881be.png

অনুসন্ধানের যে চ্যালেঞ্জগুলো আমরা সমাধান করব

প্রকৃত গ্রাহকরা ডেটাবেস যেভাবে প্রত্যাশা করে সেভাবে অনুসন্ধান করে না। তারা তাদের নিজেদের চিন্তাভাবনা অনুযায়ী অনুসন্ধান করে:

a76cbe51798283d7.png

ভেক্টর সার্চ ২.০ একটি সমন্বিত স্থাপত্যের মাধ্যমে চারটি প্রতিবন্ধকতারই সমাধান করে।

ভেক্টর সার্চ ২.০ ডেটা আর্কিটেকচার

কোডে প্রবেশ করার আগে, চলুন জেনে নিই ভেক্টর সার্চ ২.০ কীভাবে আপনার ডেটা সাজায়। এর স্থাপত্যটি তিনটি মূল ধারণাকে কেন্দ্র করে গঠিত: কালেকশন, ডেটা অবজেক্ট এবং ইনডেক্স।

8eed6976638d4cf0.jpeg

একটি কালেকশন আপনার ডেটা কাঠামো নির্ধারণ করে — অর্থাৎ, আপনি কোন ফিল্ডগুলো সংরক্ষণ করতে চান এবং কোনগুলো এমবেড করা উচিত। ডেটা অবজেক্ট হলো একটি কালেকশনে সংরক্ষিত আসল আইটেমগুলো (পণ্য, ডকুমেন্ট, ছবি), যার প্রতিটির নিজস্ব ডেটা এবং স্বয়ংক্রিয়ভাবে তৈরি ভেক্টর বা আপনার নিজের ভেক্টর থাকে। একটি ইনডেক্স বৃহৎ পরিসরে কোয়েরি অপ্টিমাইজ করে, যা শত শত কোটি আইটেমের ক্ষেত্রে মিলিসেকেন্ড লেটেন্সি নিশ্চিত করে। আপনি ডেভেলপমেন্টের জন্য কোনো সেটআপ সময় ছাড়াই ইনডেক্স ছাড়া শুরু করতে পারেন, এবং পরে যখন প্রোডাকশন পারফরম্যান্সের প্রয়োজন হবে তখন একটি যোগ করতে পারেন।

TheLook সার্চ তৈরি করা: ধাপে ধাপে

এবার চলুন একটি কার্যকরী পণ্য অনুসন্ধান সিস্টেম তৈরি করি। আমরা TheLook থেকে ১০,০০০ ফ্যাশন আইটেম লোড করব, অটো-এম্বেডিং চালু করব এবং সিমান্টিক, কীওয়ার্ড ও হাইব্রিড সার্চ চালাব — এই সবকিছু প্রায় ৫০ লাইনের কোডেই করা যাবে।

নোটবুক খুলুন: ভার্টেক্স এআই ভেক্টর সার্চ ২.০-এর পরিচিতি

হাইব্রিড সার্চ বাস্তবে

ভেক্টর সার্চ ২.০ তিনটি সার্চ মোড সমর্থন করে: সিমান্টিক সার্চ (যা এমবেডিংয়ের মাধ্যমে ব্যবহারকারীর উদ্দেশ্য বোঝে), টেক্সট সার্চ (কীওয়ার্ড মেলানো), এবং হাইব্রিড সার্চ (যা উভয়ের সমন্বয় করে)। বেশিরভাগ ক্ষেত্রে হাইব্রিড সার্চ সেরা ফলাফল দেয় — ব্যবহারকারীরা যখন ‘সৈকতের জন্য পুরুষদের পোশাক’ লিখে সার্চ করেন, তখন সিমান্টিক সার্চ ‘বোর্ড শর্টস’ খুঁজে পায়, অন্যদিকে টেক্সট সার্চ নিশ্চিত করে যে প্রোডাক্ট কোডের মতো হুবহু মিল থাকা বিষয়গুলো যেন বাদ না পড়ে।

c279a1b2a12a8b2d.png

টাস্ক টাইপ এমবেডিং কেন গুরুত্বপূর্ণ

উপরের কোডে task_type প্যারামিটারগুলো লক্ষ্য করুন: প্রোডাক্ট ইন্ডেক্স করার সময় RETRIEVAL_DOCUMENT, এবং সার্চ করার সময় QUESTION_ANSWERING। এটি কোনো যথেচ্ছ বিষয় নয়—এমবেডিং মডেলকে একটি রিকমেন্ডেশন মডেলের মতো কাজ করতে দিয়ে সার্চের মান উন্নত করার জন্য এটি একটি মূল কৌশল।

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

807608c0806b2f3c.png

জেনেরিক এমবেডিংয়ের তুলনায় টাস্ক-নির্দিষ্ট এমবেডিং ব্যবহার করলে সার্চের মান ৩০-৪০% পর্যন্ত উন্নত হতে পারে। এটি কীভাবে কাজ করে সে সম্পর্কে বিস্তারিত জানতে, টাস্ক টাইপ এমবেডিং নোটবুকটি দেখুন।

শূন্য থেকে বিলিয়ন স্কেল

বৃহৎ পরিসরে উৎপাদনের জন্য, ভেক্টর সার্চ ২.০ গুগলের ScaNN (স্কেলেবল নিয়ারেস্ট নেইবারস) অ্যালগরিদম দ্বারা চালিত ANN (অ্যাপ্রক্সিমেট নিয়ারেস্ট নেইবার) ইনডেক্স প্রদান করে — এই একই প্রযুক্তি গুগল সার্চ, ইউটিউব এবং গুগল প্লে-এর পেছনেও রয়েছে। ANN সামান্য পরিমাণ নির্ভুলতা (~৯৯%) ত্যাগ করে বিপুল গতি বৃদ্ধি করে: এমনকি বিলিয়ন বিলিয়ন ভেক্টরের ক্ষেত্রেও এর ল্যাটেন্সি ১০ মিলিসেকেন্ডের কম থাকে।

6d412a551119495b.jpeg

সম্পূর্ণ চিত্র

মাত্র পাঁচটি ধাপে — যার মধ্যে ১ থেকে ৪ নম্বর ধাপগুলো সম্পন্ন করতে সময় লেগেছে প্রায় ৫ মিনিট — আমরা একটি উৎপাদন-উপযোগী পণ্য অনুসন্ধান সিস্টেম তৈরি করেছি:

e2a176d9dec3a2a8.jpeg

ভেক্টর সার্চ ২.০ সেই অবকাঠামোগত জটিলতা দূর করে যা সাধারণত ভেক্টর সার্চের প্রসারকে ধীর করে দেয়। আপনি আপনার পণ্যের উপর মনোযোগ দিন; প্ল্যাটফর্মটি এমবেডিং, ইন্ডেক্সিং এবং স্কেলিংয়ের কাজ সামলে নেবে।

৩. অভিনন্দন

অভিনন্দন, আপনি ভেক্টর সার্চ ২.০ ব্যবহার করে সফলভাবে আপনার প্রথম অ্যাপ্লিকেশনটি তৈরি করেছেন!

আরও পড়ুন