Phase 2: Embeddings & Semantic Search
जेव्हा शब्द तंतोतंत जुळत नाहीत, तेव्हा कीवर्ड सर्च (Keyword search) अपयशी ठरते.
जर एखाद्या रिझ्युमेमध्ये "team management" असे असेल आणि जॉब डिस्क्रिप्शनमध्ये "leadership" ची मागणी असेल, तर साध्या सर्चमध्ये शून्य निकाल मिळतात. शब्द वेगळे आहेत, पण अर्थ एकच आहे.
Phase 2 एम्बेडिंग्स आणि सिमेंटिक सर्चचा वापर करून ही समस्या सोडवते.
हे कसे कार्य करते:
• Tokenization: संगणक शब्द वाचत नाहीत. ते अंक वाचतात. टोकनायझर मजकुराचे लहान तुकड्यांमध्ये रूपांतर करतो ज्यांना 'tokens' म्हणतात आणि त्यांचे 'Token IDs' मध्ये रूपांतर करतो. सामान्य शब्द एक टोकन बनतात, तर दुर्मिळ शब्द अनेक टोकन्समध्ये विभागले जातात.
• Embeddings: Token ID हा केवळ एक लेबल आहे. एम्बेडिंग लेयर त्या ID चे रूपांतर वेक्टरमध्ये (vector) करते. वेक्टर ही अंकांची एक लांब यादी असते जी अर्थ दर्शवते. एका अंकांऐवजी, मॉडेल एखाद्या संकल्पनेचे वर्णन करण्यासाठी अनेक डायमेन्शन्सचा (dimensions) वापर करते.
• Dimensions: या अंकांना कोऑर्डिनेट्स (coordinates) समजा. एक डायमेन्शन "frontend vs backend" दर्शवू शकते, तर दुसरे "web vs systems" दर्शवू शकते. हाय-डायमेन्शनल वेक्टर्समुळे मॉडेलला "React" आणि "JavaScript" ला गणितीय अवकाशात (mathematical space) एकमेकांच्या जवळ ठेवता येते.
• Semantic Search: जेव्हा तुम्ही एखादा प्रश्न विचारता, तेव्हा सिस्टम तुमच्या प्रश्नाचे वेक्टरमध्ये रूपांतर करते. त्यानंतर ती तुमच्या वेक्टरची तुलना तुमच्या स्टोअर केलेल्या डॉक्युमेंट्सच्या वेक्टर्सशी करते.
• Cosine Similarity: हे दोन वेक्टर्समधील कोन मोजते. जर वेक्टर्स एकाच दिशेला निर्देश करत असतील, तर ते समान असतात. यामुळे तुम्ही फक्त "notice period" शोधले तरी सिस्टमला "resignation requirements" शोधणे शक्य होते.
Production साठी महत्त्वाचे धडे:
- Vector Databases: लाखो वेक्टर्स शोधणे संथ असते. Pinecone किंवा Qdrant सारखे डेटाबेस मिलिसेकंदात जवळचे शेजारी (nearest neighbors) शोधण्यासाठी इंडेक्सिंगचा वापर करतात.
- Model Migrations: प्रत्येक एम्बेडिंग मॉडेल वेगळ्या गणितीय अवकाशाचा वापर करते. तुम्ही OpenAI वेक्टरची तुलना Cohere वेक्टरशी करू शकत नाही. जर तुम्ही मॉडेल्स बदलले, तर तुम्हाला तुमचा सर्व डेटा पुन्हा एम्बेड (re-embed) करावा लागेल.
- Cost vs ROI: लाखो चंक्स (chunks) पुन्हा एम्बेड करणे महागडे असते. जोपर्यंत अचूकतेतील वाढ मायग्रेशनचा खर्च न्याय्य ठरवत नाही, तोपर्यंत कंपन्या अनेकदा जुन्या मॉडेल्सचाच वापर करतात.
- तुमचे रॉ टेक्स्ट चंक्स (raw text chunks) नेहमी स्टोअर करा. जर तुम्ही नंतर तुमचे मॉडेल अपग्रेड केले, तर तुम्ही नवीन वेक्टर्स तयार करण्यासाठी जुन्या मजकुराचा वापर करू शकता.
Phase 2 मध्येच खरी बुद्धिमत्ता (intelligence) निर्माण होते.
Source: https://dev.to/surajrkhonde/phase-2-embeddings-semantic-search-3lco
Optional learning community: https://t.me/GyaanSetuAi
