Phase 2: Embeddings এবং Semantic Search

কিওয়ার্ড সার্চ ব্যর্থ হয় যখন শব্দগুলো হুবহু মিলে না যায়।

যদি একটি জীবনবৃত্তান্তে (resume) "team management" লেখা থাকে এবং একটি চাকরির বর্ণনায় (job description) "leadership" চাওয়া হয়, তবে একটি সাধারণ সার্চ কোনো ফলাফল দেখাবে না। শব্দগুলো আলাদা হলেও অর্থ একই।

Phase 2 এমবেডিং এবং সিম্যান্টিক সার্চ ব্যবহার করে এই সমস্যার সমাধান করে।

এটি যেভাবে কাজ করে:

• Tokenization: কম্পিউটার শব্দ পড়ে না। তারা সংখ্যা পড়ে। একটি tokenizer টেক্সটকে ছোট ছোট টুকরোতে ভাগ করে যাকে টোকেন (token) বলা হয় এবং সেগুলোকে Token ID-তে রূপান্তরিত করে। সাধারণ শব্দগুলো একটি টোকেন হয়ে যায়। বিরল শব্দগুলো একাধিক টোকেনে বিভক্ত হয়।

• Embeddings: একটি Token ID কেবল একটি লেবেল মাত্র। এমবেডিং লেয়ার সেই ID-কে একটি ভেক্টরে (vector) রূপান্তরিত করে। ভেক্টর হলো সংখ্যার একটি দীর্ঘ তালিকা যা অর্থ প্রকাশ করে। একটি মাত্র সংখ্যার পরিবর্তে, একটি মডেল কোনো ধারণা বর্ণনা করার জন্য অনেকগুলো ডাইমেনশন (dimension) ব্যবহার করে।

• Dimensions: এই সংখ্যাগুলোকে স্থানাঙ্ক (coordinates) হিসেবে ভাবুন। একটি ডাইমেনশন "frontend vs backend" প্রকাশ করতে পারে। অন্যটি "web vs systems" প্রকাশ করতে পারে। হাই-ডাইমেনশনাল ভেক্টর মডেলটিকে একটি গাণিতিক স্পেসে "React" এবং "JavaScript"-কে একে অপরের কাছাকাছি রাখতে সাহায্য করে।

• Semantic Search: যখন আপনি কোনো প্রশ্ন করেন, সিস্টেম আপনার প্রশ্নটিকে একটি ভেক্টরে রূপান্তরিত করে। তারপর এটি আপনার ভেক্টরটিকে আপনার সংরক্ষিত ডকুমেন্টগুলোর ভেক্টরের সাথে তুলনা করে।

• Cosine Similarity: এটি দুটি ভেক্টরের মধ্যবর্তী কোণ পরিমাপ করে। যদি ভেক্টরগুলো একই দিকে নির্দেশ করে, তবে তারা সদৃশ বা কাছাকাছি। এটি সিস্টেমকে "resignation requirements" খুঁজে পেতে সাহায্য করে, এমনকি আপনি যদি কেবল "notice period" লিখে সার্চ করেন তবুও।

প্রোডাকশনের জন্য মূল শিক্ষা:

  • Vector Databases: লক্ষ লক্ষ ভেক্টর সার্চ করা ধীরগতির। Pinecone বা Qdrant-এর মতো ডাটাবেসগুলো মিলিসেকেন্ডের মধ্যে নিকটতম প্রতিবেশী (nearest neighbors) খুঁজে পেতে ইনডেক্সিং ব্যবহার করে।
  • Model Migrations: প্রতিটি এমবেডিং মডেল ভিন্ন গাণিতিক স্পেস ব্যবহার করে। আপনি একটি OpenAI ভেক্টরের সাথে একটি Cohere ভেক্টর তুলনা করতে পারবেন না। আপনি যদি মডেল পরিবর্তন করেন, তবে আপনাকে আপনার সমস্ত ডেটা পুনরায় এমবেড (re-embed) করতে হবে।
  • Cost vs ROI: লক্ষ লক্ষ চাঙ্ক (chunk) পুনরায় এমবেড করা ব্যয়বহুল। নির্ভুলতা বৃদ্ধির সুবিধা যদি মাইগ্রেশন খরচকে সমর্থন না করে, তবে কোম্পানিগুলো প্রায়শই পুরনো মডেলগুলোই ব্যবহার করে।
  • সর্বদা আপনার র (raw) টেক্সট চাঙ্কগুলো সংরক্ষণ করুন। আপনি যদি পরে আপনার মডেল আপগ্রেড করেন, তবে নতুন ভেক্টর তৈরি করতে পুরনো টেক্সট ব্যবহার করতে পারবেন।

Phase 2 হলো সেই জায়গা যেখানে আসল বুদ্ধিমত্তা কাজ করে।

Source: https://dev.to/surajrkhonde/phase-2-embeddings-semantic-search-3lco

Optional learning community: https://t.me/GyaanSetuAi