Embedding হলো একটা অবস্থান, আর অর্থ হলো দূরত্ব
একটা embedding মডেলকে "how do I get my money back" বাক্যটা দিন, এটা সংখ্যার একটা তালিকা ফেরত দেবে। "refund policy" দিন, এটা আরেকটা তালিকা ফেরত দেবে। দুটো তালিকা কাছাকাছি বসে। "the refund of electrons in the cathode" দিন আর তালিকাটা অনেক দূরে গিয়ে বসবে, যদিও এতে একই শব্দ আছে।
এটাই পুরো কৌশল। মডেলটা শিখেছে লেখাকে শত শত বা হাজার হাজার ডাইমেনশনের একটা স্পেসে এমনভাবে বসাতে, যেখানে শব্দভাণ্ডার নয়, অর্থই ঠিক করে জিনিসগুলো কোথায় বসবে। একবার লেখা যখন একটা অবস্থান হয়ে যায়, তখন অর্থ নিয়ে প্রশ্নগুলো দূরত্ব নিয়ে প্রশ্ন হয়ে যায়, আর দূরত্ব এমন কিছু যা একটা কম্পিউটার মিলিসেকেন্ডে দশ লাখ আইটেমের জন্য হিসাব করতে পারে।
2013 সালের word2vec কাজ থেকে আসা বিখ্যাত প্রথম দিককার প্রদর্শনীটা ছিল শব্দের অবস্থানের ওপর গণিত: "king"-এর ভেক্টর নিন, "man" বিয়োগ করুন, "woman" যোগ করুন, আর ফলাফলের সবচেয়ে কাছের শব্দ হবে "queen"। আধুনিক embedding মডেলগুলো পুরো বাক্য আর ডকুমেন্টের জন্য একই কাজ করে, আর ভেক্টরগুলো বড় হয়।
একটা embedding কত বড়, মানুষ আসলে যেসব মডেল ব্যবহার করে সেগুলোতে
তালিকার দৈর্ঘ্যকে বলা হয় এর ডাইমেনশন সংখ্যা। এটা মডেলগুলোর সাথে সাথে বেড়েছে।
2013 সালে word2vec ব্যবহার করত 300 ডাইমেনশন আর 2018 সালে BERT base 768টা; Voyage 3 ফেরত দেয় 1,024টা, OpenAI-এর text-embedding-3-small প্রতি ইনপুটে 1,536টা সংখ্যা ফেরত দেয় আর text-embedding-3-large ফেরত দেয় 3,072টা; Google-এর Gemini Embedding-ও ডিফল্টভাবে 3,072টা দেয়। বেশি ডাইমেনশন সূক্ষ্ম পার্থক্য ধরে রাখতে পারে, তবে স্টোরেজ আর তুলনার সময়ের বিনিময়ে, তাই নতুন মডেলগুলো তালিকাকে ছোট আকারে কেটে নেওয়ার সুযোগও দেয় যখন সূক্ষ্মতার চেয়ে গতি বেশি গুরুত্বপূর্ণ হয়।
এই সংখ্যাগুলোর প্রতিটা একা একা অর্থহীন। ডাইমেনশন 412 মানে "আনুষ্ঠানিকতা" বা "বিষয়" নয়। অর্থটা শুধু থাকে পুরো তালিকা অন্য তালিকাগুলোর তুলনায় কোথায় বসে তাতে, তাই তুলনা করার একটা সংগ্রহ ছাড়া একটা embedding অকেজো।
Embedding মডেল খুঁজে বের করে; ভাষা মডেল লেখে
মানুষ দুটোকে গুলিয়ে ফেলে কারণ দুটোই "লেখার ওপর AI"। এগুলো ভিন্ন মডেল, উল্টো কাজ করে।
| Embedding মডেল | ভাষা মডেল (LLM) | |
|---|---|---|
| ইনপুট | লেখা (বা একটা ছবি) | লেখা (বা একটা ছবি) |
| আউটপুট | সংখ্যার একটা নির্দিষ্ট তালিকা | নতুন লেখা, একবারে একটা টোকেন |
| কাজ | ইনপুটকে এমনভাবে বসানো যাতে একই রকম জিনিস কাছাকাছি থাকে | ইনপুটকে যুক্তিসঙ্গতভাবে চালিয়ে যাওয়া |
| ব্যবহার হয় | সার্চ, মিলানো, ক্লাস্টারিং, রিট্রিভাল | উত্তর দেওয়া, লেখা, সারসংক্ষেপ করা |
| প্রতি মিলিয়ন টোকেনে খরচ | text-embedding-3-small-এ $0.02 | সবচেয়ে সস্তা GPT সারিতে $0.20, ফ্রন্টিয়ারগুলোতে $2 থেকে $10 |
| ভুল হতে পারে? | এটা একটা দুর্বল মিলকে প্রথমে র্যাংক করতে পারে | এটা একটা উত্তর বানিয়ে ফেলতে পারে |
খরচের সারিটাই লক্ষ্য করার মতো। OpenAI-এর ছোট মডেল দিয়ে দশ লাখ টোকেন embed করতে খরচ $0.02, যেখানে GPT-5.6 Luna-এর জন্য প্রতি মিলিয়ন ইনপুট টোকেনে $0.20, যা Luna Pro আর GPT-5.4 Nano-র সাথে যৌথভাবে সবচেয়ে সস্তা GPT সারি, AI model cost index-এ থাকা 2026-08-20 তারিখে সংগ্রহ করা OpenRouter দাম অনুযায়ী। খুঁজে বের করা সবচেয়ে সস্তা GPT লেখার চেয়ে দশগুণ সস্তা, আর ফ্রন্টিয়ার লেখার চেয়ে অন্তত একশোগুণ সস্তা। এই ব্যবধানের কারণেই প্রতিটা গুরুত্বপূর্ণ সিস্টেম আগে খুঁজে বের করে, পরে লেখে। LLM কী লেখার দিকটা বিস্তারিত আলোচনা করে।
আপনি না দেখলেও embeddings যেখানে চলে
আপনার ডকুমেন্টের সাথে চ্যাট। আপনি যখন একটা লম্বা PDF আপলোড করে প্রশ্ন করেন, ফাইলটা অংশে ভাগ হয়ে যায়, প্রতিটা অংশ embed হয়ে একটা ভেক্টর ডেটাবেসে জমা থাকে, আপনার প্রশ্নটাও embed হয়, আর যেসব অংশের ভেক্টর সবচেয়ে কাছে বসে সেগুলো ভাষা মডেলকে প্রেক্ষাপট হিসেবে দেওয়া হয়। মডেলটা সেই অংশগুলো থেকে উত্তর দেয়। এটাই রিট্রিভাল-অগমেন্টেড জেনারেশন, আর RAG কী পুরো পাইপলাইনটা বিস্তারিত দেখায়; embeddings হলো এর সার্চ ধাপ। chat with PDF গাইড দেখায় Whizi-তে কীভাবে আপলোড করা একটা ফাইলকে প্রশ্ন করা যায়।
একটা ডকুমেন্ট সার্চ করা হবে নাকি পুরোটা পড়ে ফেলা হবে, সেটা নির্ভর করে উইন্ডোর ওপর। প্রতিটা মডেলের context window, পৃষ্ঠা হিসেবে, নিচে দেওয়া আছে; যা এতে ধরে যায় তা পুরোটাই ঢুকতে পারে, আর যেসব সংগ্রহ ধরে না, তাদের জন্যই রিট্রিভাল আছে।
যে সার্চ প্রতিশব্দ বোঝে। একটা সাপোর্ট সাইট যদি "stop paying"-এর জন্য বাতিলকরণের লেখাটা ফেরত দেয়, সেটা শব্দ মেলাচ্ছে না, embeddings তুলনা করছে।
রেকমেন্ডেশন আর ক্লাস্টারিং। কাছাকাছি ভেক্টর থাকা আইটেমগুলো একই রকম আইটেম: সম্পর্কিত পণ্য, নকল টিকিট, একই বিষয়ের লেখা।
চ্যাট অ্যাপের মেমরি ফিচার। যখন একটা অ্যাসিস্ট্যান্ট পুরনো একটা কথোপকথন থেকে কোনো তথ্য "মনে রাখে", একটা সাধারণ পদ্ধতিতে পুরনো নোটগুলো embed করা হয় আর সবচেয়ে কাছেরগুলো প্রম্পটে নিয়ে আসা হয়।
প্রতিটা ক্ষেত্রে embedding খুঁজে বের করার কাজটা করে আর অন্য কিছু সিদ্ধান্ত নেওয়া বা লেখার কাজটা করে। ব্যর্থতার ধরনটাও সবখানে একই: যদি সবচেয়ে কাছের ভেক্টরটা ভুল অংশ হয়, তাহলে এর পরের সবকিছু আত্মবিশ্বাসের সাথে ভুল প্রশ্নের উত্তর দিতে থাকে, যেটাকে AI hallucination কী বানিয়ে ফেলার থেকে আলাদা একটা ব্যর্থতা হিসেবে তালিকাভুক্ত করেছে, রিট্রিভাল মিস হিসেবে।
কোড না লিখেও এই ধারণা দিয়ে যা করা যায়
আপনি কখনোই সরাসরি একটা embedding নিয়ে কাজ করবেন না, তবে এর কর্মপদ্ধতি জানলে এর ওপর বানানো টুলগুলো আপনি যেভাবে ব্যবহার করেন সেটা বদলে যায়।
- উত্তরের ভাষায় প্রশ্ন করুন। রিট্রিভাল আপনার প্রশ্নকে অর্থ অনুযায়ী অংশগুলোর সাথে মেলায়। ডকুমেন্ট যেভাবে জিনিসগুলো বলে সেভাবে সাজানো একটা প্রশ্ন, আপনি মুখে যেভাবে বলতেন তার চেয়ে বেশি কাছে গিয়ে বসে।
- বড় আপলোডগুলো বিষয় অনুযায়ী ভাগ করুন। তিনটা অসম্পর্কিত বিষয় নিয়ে একটা 400 পৃষ্ঠার ফাইল একটা ঠাসা স্পেসে embed হয়; তিনটা ফাইল পরিষ্কারভাবে রিট্রিভ হয়।
- উদ্ধৃত অংশটা পড়ুন। যদি একটা chat-with-file উত্তর কোনো অংশ উদ্ধৃত করে, সেটা খুলুন। একটা রিট্রিভাল মিস দেখতে লাগে সামান্য ভিন্ন একটা প্রশ্নের আত্মবিশ্বাসী উত্তরের মতো।
- এটা যে নির্দিষ্ট স্ট্রিংয়ে ব্যর্থ হবে, সেটা ধরে নিন। Embeddings অর্থ নিয়ে কাজ করে; একটা ইনভয়েস নম্বর বা পার্ট কোড সাধারণ টেক্সট সার্চ দিয়ে ভালোভাবে খুঁজে পাওয়া যায়, আর ভালো টুলগুলো দুটোকে একসাথে ব্যবহার করে।
সিদ্ধান্ত নেওয়ার নিয়মটা হলো: যখন কাজটা হলো অনেকের মধ্যে সঠিক অংশটা খুঁজে বের করা, তখন আপনার একটা embedding মডেল দরকার, আর সেটা সস্তা হওয়া উচিত। যখন কাজটা হলো একটা অংশ তৈরি করা, তখন আপনার একটা ভাষা মডেল দরকার, আর সেটা ভালো হওয়া উচিত। যেসব পণ্য এই ভাগটা ঠিকভাবে করে, তাদের ফাইল চ্যাটই আসলে কাজ করে।
- ভাগটা মনে রাখুন: embeddings খুঁজে বের করে, ভাষা মডেল লেখে
- একটা আপলোড করা ডকুমেন্টকে সেই ডকুমেন্টের নিজের ভাষায় প্রশ্ন করুন
- বড় আপলোডগুলো বিষয় অনুযায়ী ভাগ করুন, যাতে রিট্রিভালের জন্য একটা পরিষ্কার স্পেস থাকে
- যেকোনো chat-with-file উত্তর বিশ্বাস করার আগে উদ্ধৃত অংশটা খুলে দেখুন
- ID আর কোডের মতো নির্দিষ্ট স্ট্রিংয়ের জন্য সাধারণ টেক্সট সার্চ ব্যবহার করুন; embeddings অক্ষর নয়, অর্থ মেলায়
প্রায়ই জিজ্ঞাসিত প্রশ্ন
সহজ ভাষায় একটা embedding কী?
সংখ্যার একটা তালিকা যা কোনো লেখার অর্থের প্রতিনিধিত্ব করে, এমনভাবে বসানো যাতে একই রকম অর্থ একই রকম তালিকা পায়। "refund policy" আর "how do I get my money back" কাছাকাছি বসে; refund শব্দ থাকা একটা রসায়নের বাক্য অনেক দূরে বসে। তালিকাগুলোর মধ্যে দূরত্বই হলো একটা কম্পিউটার সম্পর্ক মাপার উপায়।
একটা embedding মডেল আর একটা LLM-এর মধ্যে পার্থক্য কী?
একটা embedding মডেল অর্থ প্রকাশ করা সংখ্যার একটা নির্দিষ্ট তালিকা দেয়; একটা ভাষা মডেল একবারে একটা টোকেন করে নতুন লেখা দেয়। প্রথমটা খুঁজে বের করে আর মেলায়, দ্বিতীয়টা লেখে আর উত্তর দেয়। Chat-with-your-documents দুটোই ব্যবহার করে: প্রাসঙ্গিক অংশগুলো আনতে embeddings, আর সেগুলো থেকে উত্তর লিখতে LLM।
একটা embedding-এ কতগুলো ডাইমেনশন থাকে?
এটা মডেলের ওপর নির্ভর করে। 2013 সালে word2vec ব্যবহার করত 300টা, BERT base 768টা, আর বর্তমান মডেলগুলো 1,024 থেকে 3,072-এর মধ্যে চলে: OpenAI-এর text-embedding-3-small ফেরত দেয় 1,536টা আর text-embedding-3-large ফেরত দেয় 3,072টা, যা Google-এর Gemini Embedding ডিফল্টের সমান। নতুন মডেলগুলো কম ডাইমেনশনে কেটে নেওয়ার সুযোগ দেয় যখন সূক্ষ্মতার চেয়ে গতি বেশি গুরুত্বপূর্ণ।
Embeddings কি খরচবহুল?
না, আর সেটাই মূল বিষয়। OpenAI text-embedding-3-small-এর দাম রেখেছে প্রতি মিলিয়ন টোকেনে $0.02, যেখানে GPT-5.6 Luna-এর জন্য প্রতি মিলিয়ন ইনপুট টোকেনে $0.20 আর ফ্রন্টিয়ার চ্যাট মডেলগুলোর জন্য $2 থেকে $5, OpenRouter-এর 2026-08-20 তারিখে সংগ্রহ করা লিস্ট দামে। খুঁজে বের করা লেখার চেয়ে দশ থেকে একশোগুণ সস্তা, যার কারণে রিট্রিভাল সিস্টেমগুলো সবকিছু embed করে আর শুধু উত্তরটাই তৈরি করে।
ChatGPT, Claude বা Gemini-তে embeddings কোথায় ব্যবহার হয়?
যেসব ফিচার জিনিস খুঁজে বের করে সেখানে: ফাইল আপলোড আর chat-with-documents, আপনার আগের কথোপকথনগুলোর ওপর সার্চ, আর মেমরি যা আগের চ্যাট থেকে তথ্য মনে রাখে। প্রতিটা ক্ষেত্রে সাধারণ পদ্ধতিটা হলো লেখাটা embed করা, সবচেয়ে কাছের মিলগুলো রিট্রিভ করা, আর ভাষা মডেলকে সেগুলো থেকে লিখতে দেওয়া। Embedding আপনার কাছে অদৃশ্য; রিট্রিভাল মিস, যখন হয়, তখন সেটা অদৃশ্য থাকে না।