AI Infrastructure & Toolsপড়তে ১০ মিনিট লাগবে

এমবেডিংস ও ভেক্টর সার্চ

এআই কীভাবে শব্দের অর্থ বোঝে — সংখ্যার মাধ্যমে ভাষার সম্পর্ক খুঁজে বের করার জাদু
scope:মধ্যবর্তী ধারণাdifficulty:মাঝারি

এমবেডিং কী?

কম্পিউটার শব্দ বোঝে না — সে শুধু সংখ্যা বোঝে। তাহলে এআই কীভাবে বোঝে যে "সুখী" আর "আনন্দিত" কাছাকাছি অর্থের, কিন্তু "সুখী" আর "গাড়ি" সম্পূর্ণ আলাদা?

এর উত্তর হলো এমবেডিং (Embedding)। এটি শব্দ, বাক্য বা ডকুমেন্টকে সংখ্যার তালিকায় (ভেক্টরে) রূপান্তর করার পদ্ধতি — যেখানে কাছের অর্থের জিনিসগুলো কাছাকাছি সংখ্যা পায়।

কল্পনা করুন একটি মানচিত্রের কথা। মানচিত্রে ঢাকা আর নারায়ণগঞ্জ কাছাকাছি, কিন্তু ঢাকা আর নিউ ইয়র্ক অনেক দূরে। এমবেডিং ঠিক এমনই একটি "অর্থের মানচিত্র" তৈরি করে — যেখানে কাছের অর্থের শব্দগুলো কাছাকাছি অবস্থান করে।

ভেক্টর কী?

ভেক্টর হলো সংখ্যার একটি তালিকা। যেমন: [০.২, -০.৫, ০.৮, ০.১]। এমবেডিং মডেল প্রতিটি শব্দকে এরকম শত বা হাজার সংখ্যার একটি তালিকায় রূপান্তর করে। এই সংখ্যাগুলো শব্দের অর্থের বিভিন্ন দিক ধারণ করে।

আধুনিক এমবেডিং মডেলগুলো ৭৬৮ থেকে ৩০৭২ মাত্রার (dimensions) ভেক্টর তৈরি করে। প্রতিটি মাত্রা অর্থের একটি দিক ধারণ করে — যেমন ইতিবাচকতা, আনুষ্ঠানিকতা, বিষয়বস্তু ইত্যাদি।

Note: কোসাইন সিমিলারিটি (Cosine Similarity): দুটো ভেক্টর কতটা কাছাকাছি তা মাপতে cosine similarity ব্যবহার করা হয়। এটি -১ থেকে +১ এর মধ্যে একটি সংখ্যা দেয়। +১ মানে সম্পূর্ণ একই অর্থ, ০ মানে সম্পর্কহীন, -১ মানে বিপরীত অর্থ।

ভেক্টর সার্চ কীভাবে কাজ করে?

ঐতিহ্যবাহী সার্চ কীওয়ার্ড ম্যাচ করে — "বিড়াল" লিখলে শুধু "বিড়াল" শব্দ থাকা ডকুমেন্ট পাওয়া যায়। কিন্তু ভেক্টর সার্চ (semantic search) অর্থের ভিত্তিতে মেলায়:

  1. সার্চ কুয়েরিকে ভেক্টরে রূপান্তর করা হয়।
  2. ডেটাবেসের সব ভেক্টরের সাথে তুলনা করা হয়।
  3. সবচেয়ে কাছের (অর্থের দিক দিয়ে মিলে যায়) ভেক্টরগুলো ফলাফল হিসেবে দেখানো হয়।

ফলে "বিড়াল" সার্চ করলে "মেও", "পোষা প্রাণী", "ক্যাট ফুড" ইত্যাদিও পাওয়া যায় — কারণ অর্থের দিক দিয়ে এগুলো কাছাকাছি।

জনপ্রিয় ভেক্টর ডেটাবেস

  • পাইনকোন (Pinecone): ক্লাউড-ভিত্তিক, ব্যবহার সহজ, স্কেলেবল।
  • ক্রোমা (Chroma): ওপেন-সোর্স, লোকাল ও ক্লাউড দুটোই সমর্থন করে।
  • উইভিয়েট (Weaviate): ওপেন-সোর্স, হাইব্রিড সার্চ সমর্থন করে।
  • পিজিভেক্টর (pgvector): PostgreSQL-এর এক্সটেনশন — আপনার বিদ্যমান ডেটাবেসেই ভেক্টর সার্চ যোগ করুন।

এমবেডিং তৈরি ও ভেক্টর সার্চ (Python)

from openai import OpenAI
import numpy as np
client = OpenAI()
# টেক্সট থেকে এমবেডিং তৈরি
def get_embedding(text):
response = client.embeddings.create(
model="text-embedding-3-small",
input=text
)
return response.data[0].embedding
# দুটো বাক্যের এমবেডিং তৈরি
emb1 = get_embedding("আমি আজ খুব সুখী")
emb2 = get_embedding("আজ আমার মন ভালো")
emb3 = get_embedding("গাড়ির টায়ার পাংচার")
# Cosine similarity দিয়ে তুলনা
def cosine_sim(a, b):
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
print(f"সুখী ↔ মন ভালো: {cosine_sim(emb1, emb2):.3f}")
print(f"সুখী ↔ টায়ার পাংচার: {cosine_sim(emb1, emb3):.3f}")
Output
সুখী ↔ মন ভালো: 0.891
সুখী ↔ টায়ার পাংচার: 0.234

# কাছের অর্থের বাক্যগুলোর similarity বেশি (০.৮৯১)
# সম্পর্কহীন বাক্যের similarity কম (০.২৩৪)
Challenge

ছোট কুইজ

এমবেডিং কী করে?

পড়া চালিয়ে যান

র‍্যাগ (Retrieval Augmented Generation)
এআই (AI)-কে লাইব্রেরি কার্ড দিন — নিজের ডেটা থেকে সঠিক তথ্য খুঁজে উত্তর দেওয়ার শিল্প
এলএলএম কীভাবে কাজ করে?
বিড়ালটি ___ এর ওপর বসে আছে। শত শত কোটি উদাহরণ আর গণিতের ম্যাজিকে মেশিন কীভাবে সঠিক শব্দটি খুঁজে পায়?
টোকেন ও কনটেক্সট উইন্ডো
শব্দগুলোকে ছোট ছোট টুকরোয় ভাগ করা হয়, আর এআই একসাথে কেবল নির্দিষ্ট কিছু টুকরোই মনে রাখতে পারে
এআই সার্চ ইঞ্জিন
পারপ্লেক্সিটি (Perplexity) থেকে শুরু করে এআই-চালিত সার্চের নতুন যুগ — যেখানে উত্তর খুঁজে বের করে দেয় এআই নিজেই