एक एम्बेडिंग मॉडल एक टेक्स्ट — एक वाक्य, एक पैराग्राफ, एक पूरा दस्तावेज — को एक फिक्स-लेंथ वेक्टर में संपीड़ित करता है, जो आमतौर पर 384 और 4096 डाइमेंशन के बीच होता है। जादू इस तरह है कि ये नंबर कैसे व्यवस्थित होते हैं: प्रशिक्षण के दौरान, मॉडल सीखता है कि इस उच्च-आयामी स्पेस में अर्थतः समान टेक्स्ट को एक दूसरे के पास रखे और असमान टेक्स्ट को दूर करे। मानक प्रशिक्षण दृष्टिकोण में कॉन्ट्रास्टिव लर्निंग का उपयोग किया जाता है, जहां मॉडल संबंधित टेक्स्ट के जोड़े (एक प्रश्न और उसका उत्तर, एक वाक्य और उसका परिभाषित रूप) देखता है और उनके वेक्टर के बीच दूरी कम करता है जबकि असंबंधित जोड़ों से दूरी अधिकतम करता है। BAAI के bge-large-en, OpenAI के text-embedding-3, और Cohere के embed-v3 जैसे मॉडल इस सामान्य विधि का उपयोग करते हैं, हालांकि उनमें आर्किटेक्चर, प्रशिक्षण डेटा और विशिष्ट कॉन्ट्रास्टिव लक्ष्यों में अंतर होता है।
अभ्यास में, आप पहले अपने दस्तावेजों को वेक्टर में एन्कोड करते हैं और उन्हें Qdrant, Pinecone, Milvus, या FAISS जैसे वेक्टर डेटाबेस में संग्रहित करते हैं। प्रश्न समय पर, आप उपयोगकर्ता के प्रश्न को एक वेक्टर में एन्कोड करते हैं और उसी मॉडल का उपयोग करके निकटतम-समान खोज करते हैं ताकि सबसे समान दस्तावेज वेक्टर ढूंढे जा सकें। दूरी मापक महत्वपूर्ण है — कॉसाइन समानता सबसे आम है, लेकिन कुछ मॉडल डॉट प्रोडक्ट या यूक्लिडियन दूरी के लिए प्रशिक्षित होते हैं। एक चीज जो लोगों को बाधित करती है: आपको दस्तावेजों और प्रश्नों दोनों के लिए एक ही एम्बेडिंग मॉडल का उपयोग करना आवश्यक है। अलग मॉडलों से आए वेक्टर पूरी तरह अलग स्पेस में रहते हैं और तुलना नहीं की जा सकती, भले ही वे एक ही संख्या में डाइमेंशन रखते हों।
एम्बेडिंग वेक्टर की आयामता व्यक्तित्व और लागत के बीच एक ट्रेड-ऑफ़ का प्रतिनिधित्व करता है। 1536 डाइमेंशन का वेक्टर 384 डाइमेंशन के वेक्टर की तुलना में अधिक विविधता प्रदान कर सकता है, लेकिन इसके संग्रहण और खोज में चार गुना अधिक लागत आती है। एक मिलियन दस्तावेजों के लिए, अंतर आपके वेक्टर डेटाबेस में दहाई गीगाबाइट के रैम के बीच होता है और कुछ गीगाबाइट के बीच। कुछ नए मॉडल Matryoshka एम्बेडिंग का समर्थन करते हैं, जहां आप वेक्टर को कम डाइमेंशन में छोटा कर सकते हैं जबकि ग्रेसफुल डिग्रेडेशन के साथ — अपने सबसे महत्वपूर्ण संग्रह के लिए पूरा 1024 डाइमेंशन का उपयोग करें और एक कम महत्वपूर्ण संग्रह के लिए पहले 256 का उपयोग करें। क्वांटाइजेशन भी मदद करता है: वेक्टर को INT8 के बजाय float32 के रूप में संग्रहित करने से 4 गुना कम मेमोरी की आवश्यकता होती है जबकि अच्छी तरह से अक्षमता के बिना, जिस कारण उत्पादन प्रणालियां अब अधिक अक्सर क्वांटाइज्ड एम्बेडिंग का उपयोग करती हैं।
एक आम गलत धारणा यह है कि एम्बेडिंग मॉडल मनुष्यों की तरह अर्थ को समझते हैं। वे सतही सेमेंटिक समानता — सिनोनिम्स, पैराफ्रेज, संबंधित अवधारणाएं — में बहुत अच्छे होते हैं, लेकिन वे नकारात्मकता ("रेस्तरां अच्छा नहीं था" और "रेस्तरां अच्छा था" अक्सर एक दूसरे के पास आते हैं) के साथ, जटिल तार्किक संबंधों और उन डोमेन-विशिष्ट जार्गन के साथ लड़ सकते हैं जिनके लिए वे प्रशिक्षित नहीं हैं। इसी कारण रिट्रीवल-एग्जेंट जेनरेशन प्रणालियां अक्सर वेक्टर खोज के साथ कीवर्ड खो