7 पॉइंट द्वारा GN⁺ 2024-11-02 | 3 टिप्पणियां | WhatsApp पर शेयर करें
  • मशीन लर्निंग (ML) में तकनीकी दस्तावेज़ लेखन की state of the art को आगे बढ़ाने की क्षमता है
  • Claude, Gemini, LLaMa, GPT जैसे text generation models नहीं, बल्कि embedding तकनीकी दस्तावेज़ लेखन पर सबसे बड़ा प्रभाव डालने वाली ML तकनीक हो सकती है
  • Embedding बिल्कुल नई चीज़ नहीं है, लेकिन पिछले कुछ वर्षों में यह कहीं अधिक सुलभ हो गई है
  • Embedding तकनीकी लेखकों को ऐसे पैमाने पर टेक्स्ट के बीच संबंध खोजने की क्षमता देती है, जो पहले असंभव थी

Embedding के बारे में सहज समझ बनाना

इनपुट और आउटपुट

  • Embedding बनाने के लिए इनपुट के रूप में टेक्स्ट दिया जाता है
  • हर बार एक ही मात्रा का टेक्स्ट देना ज़रूरी नहीं है
    • कभी एक पैराग्राफ इनपुट होता है, तो कभी कुछ सेक्शन, पूरा दस्तावेज़, या कई दस्तावेज़ भी हो सकते हैं
  • आउटपुट संख्याओं की एक array होती है
    • अगर एक शब्द इनपुट करें, तो आउटपुट [-0.02387, -0.0353, 0.0456] जैसी संख्याओं की array हो सकती है
    • अगर पूरे दस्तावेज़ों का सेट इनपुट करें, तो आउटपुट [0.0451, -0.0154, 0.0020] जैसा हो सकता है
  • इनपुट के आकार की परवाह किए बिना हमेशा समान संख्या में अंक मिलते हैं
    • इससे किसी भी दो टेक्स्ट की गणितीय रूप से तुलना करने का तरीका मिल जाता है
  • वास्तविक embedding में array में 3 नहीं, बल्कि सैकड़ों या हज़ारों संख्याएँ होती हैं

Embedding कैसे बनाए जाते हैं

  • बड़े service providers embedding generation को आसान बना देते हैं
  • Gemini का text-embedding-004 मॉडल 768 संख्याओं की array लौटाता है, और Voyage AI का voyage-3 मॉडल 1024 संख्याओं की array लौटाता है
  • अलग-अलग providers के embedding आपस में compatible नहीं होते

क्या यह महंगा है?

नहीं।

क्या यह पर्यावरण के लिए खराब है?

  • Embedding generation, text generation की तुलना में कम compute-intensive है
  • लेकिन embedding models संभवतः text generation models की तरह ही train किए जाते हैं, जिसका मतलब ऊर्जा उपयोग है
  • इस बारे में और जानकारी मिलने पर इस सेक्शन को अपडेट किया जाएगा

कौन सा मॉडल सबसे अच्छा है?

  • आदर्श रूप से embedding model को बहुत बड़ी मात्रा में इनपुट टेक्स्ट स्वीकार करने में सक्षम होना चाहिए, ताकि वह पूरे पेज के लिए embedding बना सके
  • अक्टूबर 2024 तक, इनपुट आकार के मामले में voyage-3 सबसे बेहतर दिखता है
  • इनपुट सीमा token-आधारित होती है, और हर service token को अलग तरह से गिनती है, इसलिए सटीक संख्याओं पर बहुत ज़्यादा ज़ोर नहीं देना चाहिए

बेहद अजीब बहु-आयामी स्पेस

  • Embedding की संख्याओं का मतलब क्या है?
  • मानचित्र पर coordinates के बारे में सोचिए
    • Embedding, मानचित्र पर एक बिंदु की तरह है
    • Embedding array की हर संख्या, X coordinate और Y coordinate जैसे एक dimension के समान है
    • अगर embedding model 1000 संख्याओं की array लौटाता है, तो वह बताता है कि टेक्स्ट अन्य सभी टेक्स्ट की तुलना में अर्थ की दृष्टि से 1000-आयामी स्पेस में कहाँ स्थित है
    • दो embedding के बीच की दूरी की तुलना करते समय, हम वास्तव में यह पता लगाते हैं कि दो टेक्स्ट अर्थ की दृष्टि से कितने पास या दूर हैं
  • इस तरह के बहु-आयामी स्पेस, जहाँ संबंधित आइटम एक-दूसरे के पास cluster बनाते हैं, की अवधारणा को latent space कहा जाता है
  • Word2vec पेपर का प्रसिद्ध उदाहरण:
    • embedding("king") - embedding("man") + embedding("woman") ≈ embedding("queen")
    • Embedding अर्थ-संबंधों को इस तरह प्रदर्शित कर सकते हैं, जो इंसानों को सहज रूप से समझ में आए
  • Embedding सैकड़ों या हज़ारों dimensions में काम करते हैं, इसलिए 3-आयामी जीव के लिए यह कल्पना करना असंभव है कि 1000 dimensions में "distance" कैसी दिखती होगी
  • यह नहीं पता होता कि हर dimension किसका प्रतिनिधित्व करता है

Embedding की तुलना

  • Embedding बनाने के बाद, यह ट्रैक करने के लिए कि कौन सा embedding किस टेक्स्ट से जुड़ा है, किसी तरह का "database" चाहिए
  • इसमें linear algebra बहुत काम आती है, और NumPy तथा scikit-learn जैसी math और ML libraries भारी काम संभाल सकती हैं

अनुप्रयोग

  • सीधे देखते हैं कि embedding तकनीकी दस्तावेज़ लेखन की state of the art को कैसे आगे बढ़ा सकती है

हज़ारों embedding को खिलने दें

  • एक documentation site के मालिक के रूप में यह सवाल उठता है कि क्या REST API या well-known URI के ज़रिए उन लोगों को अपने कंटेंट के embedding स्वतंत्र रूप से उपलब्ध कराने चाहिए जो उन्हें चाहते हैं
  • यह पहले से नहीं पता कि community इस अतिरिक्त प्रकार के documentation data से क्या-क्या शानदार चीज़ें बना सकती है

निष्कर्ष

  • अगर 3 साल पहले किसी ने पूछा होता कि 768-आयामी स्पेस क्या है, तो शायद मैं कहता कि यह बस एक अमूर्त अवधारणा है, जिसकी ज़रूरत भौतिकविदों और गणितज्ञों को किसी अज्ञात कारण से पड़ती है
  • Embedding इस विचार पर और गहराई से सोचने और इसे वास्तव में अपने काम में लागू करने का कारण देती है
  • दस्तावेज़ रखरखाव क्षमता में पैमाने के स्तर पर सुधार अभी भी संभव हो सकता है, और शायद इसके लिए और भी अधिक dimensions की ज़रूरत होगी!

परिशिष्ट

कार्यान्वयन

  • हर दस्तावेज़ के लिए embedding बनाने हेतु Sphinx extension बनाया
  • Build पूरा होने पर embedding data embeddings.json में स्टोर हो जाता है
  • हर दस्तावेज़ के लिए nearest neighbors खोजना आख़िरी चरण है

परिणाम

  • डेटा की व्याख्या करने का तरीका:
    • Target वह पेज है जिसे आप अभी देख रहे हैं
    • Neighbor वह पेज होगा जिसकी सिफारिश की जाएगी
  • परिणाम तालिका में देखा जा सकता है कि संबंधित पेज एक-दूसरे को recommend कर रहे हैं

GN⁺ की राय

  • Embedding तकनीक तकनीकी दस्तावेज़ लेखन के क्षेत्र में कंटेंट के बीच संबंध समझने और दस्तावेज़ों के बीच कनेक्शन खोजने में बहुत उपयोगी हो सकती है। खासकर बड़े document projects में, जहाँ विशाल मात्रा में दस्तावेज़ संभालने पड़ते हैं, यह और अधिक कारगर होगी
  • हालांकि embedding models अब भी ऊर्जा की दृष्टि से भारी हैं, और नैतिक चिंताएँ भी मौजूद हैं, इसलिए इन्हें अपनाने से पहले सावधानीपूर्वक समीक्षा आवश्यक लगती है। पर्याप्त computing resources सुनिश्चित करने के साथ embedding generation के पर्यावरणीय प्रभाव को कम करने के प्रयास भी ज़रूरी होंगे
  • Documentation site पर embedding को API के रूप में उपलब्ध कराना developer community के रचनात्मक उपयोग को बढ़ावा देने का अच्छा तरीका हो सकता है। लेकिन data security और privacy से जुड़े मुद्दों के लिए पहले से उपाय तैयार होने चाहिए
  • तकनीकी दस्तावेज़ क्षेत्र के startups या initiatives embedding तकनीक को सक्रिय रूप से अपनाने पर विचार कर सकते हैं। इससे मौजूदा document management solutions से अलग विशेषताएँ दी जा सकती हैं, और search, recommendation आदि में अधिक human-friendly अनुभव प्रदान किया जा सकता है
  • दस्तावेज़ सारांश, अनुवाद, और topic classification में embedding के उपयोग पर शोध से भी उम्मीद की जा सकती है। आधुनिक natural language processing तकनीकों को embedding के साथ मिलाकर तकनीकी दस्तावेज़ लेखन और प्रबंधन में नवाचार लाया जा सकता है

3 टिप्पणियां

 
yangeok 2024-11-08

तकनीकी लेखक हाहा

 
cosine20 2024-11-04

Natural language processing में इस्तेमाल होने वाले text embeddings और उनकी training process को देखें तो लगता है कि यह उस प्रक्रिया से सचमुच बहुत मिलती-जुलती है जिसमें इंसान व्याकरण को लगभग जाने बिना भाषा सीखता और इस्तेमाल करता है.
जैसा कि मूल लेख में कहा गया है, मुझे भी लगता है कि इसमें बहुत संभावनाएँ हैं.

 
GN⁺ 2024-11-02
Hacker News राय
  • आधुनिक AI में embeddings इस लिहाज़ से दिलचस्प हैं कि वे इंसानों को अधिक शक्ति देने वाले शायद एकमात्र तत्व हैं। यह Steve Jobs के "हमारे दिमाग के लिए साइकिल" वाले विचार जैसा है, यानी intelligence amplification। कंप्यूटर usability में सबसे बड़ा सुधार तेज़ और सर्वव्यापी local search की शुरुआत थी। मैं Firefox की "Find in page" सुविधा का अक्सर उपयोग करता हूँ, और search तथा grep का हर दिन उपयोग करता हूँ। embeddings वास्तव में उपयोगी fuzzy search दे सकते हैं और search की सबसे बड़ी कमजोरी को दूर करने की क्षमता रखते हैं

  • एक documentation site के मालिक के रूप में, मैं सोच रहा हूँ कि क्या REST API या किसी well-known URI के ज़रिए embeddings को खुले तौर पर उपलब्ध कराने पर विचार करना चाहिए। यह स्पष्ट होना चाहिए कि कौन-सा embedding model इस्तेमाल किया गया है, और यह भी सवाल है कि क्या technical documentation के लिए कोई उपयुक्त embedding model मौजूद है

  • पर्यावरण को लेकर चिंताएँ हैं, लेकिन मुझे लगता है कि AI का उपयोग कम करने से climate problem हल हो सकती है—यह आम धारणा गलत है। उदाहरण के लिए, अगर Google Maps पर रोक लगा दी जाए, तो लोग गलत routes चुन सकते हैं और ज़्यादा ईंधन खर्च होगा। embeddings का उपयोग करके दस्तावेज़ तैयार करना भी इसी तरह है; computing resources का उपयोग करना अधिक efficient है

  • embeddings का उपयोग करके उन्हें web app में कैसे लागू किया जाए, इस पर एक रोचक अनुभव साझा किया गया है। documentation के माध्यम से यह समझाया गया है कि production में embeddings का उपयोग कैसे करें

  • embeddings ऐसा लगते हैं मानो वे input string की हर चीज़ को दर्शाते हों, इसलिए उनका कोई स्पष्ट लक्ष्य नहीं दिखता। सवाल यह है कि किसी खास application के लिए embeddings की dimensionality reduction कैसे की जाए। उदाहरण के लिए, technical support conversations खोजने वाला सिस्टम बनाते समय, बातचीत के सिर्फ content को दर्शाने वाला embedding कैसे निकाला जाए

  • vector embeddings किसी document का एक अनूठा सारांश होते हैं, कुछ हद तक hash code की तरह। अच्छा होता अगर embedding generation के लिए कोई universal standard होता, लेकिन हर AI model अलग होने के कारण इनमें hash code जैसी "स्थायित्व" नहीं हो सकती। ऐसा लगता है कि cosine similarity जैसे algorithms को databases और information processing apps में इस्तेमाल करने के कई तरीके हो सकते हैं

  • मुझे लगता है कि embeddings को कम आंका गया है। information retrieval/discovery का क्षेत्र अब भी keyword-based discovery का उपयोग कर रहा है और semantic discovery जैसे आधुनिक tools को नहीं अपना रहा। मैं वाक्यों को vector embeddings में बदलकर, उन पर k-means clustering लागू करके, फिर ChatGPT से उनका सारांश बनवाकर समय बचाता हूँ

  • यह सुझाव दिया गया है कि technical writers embeddings की उपयोगिता को कम आँक रहे हैं। machine learning practitioners ऐसा नहीं करते

  • यह सवाल है कि क्या OpenAI embedding model 8191/8192 tokens को support करता है। token size के आधार पर विजेता घोषित करना भ्रामक हो सकता है; cross-language support और precision जैसे कारक ज़्यादा महत्वपूर्ण हैं

  • मुझे लगता है कि embeddings को बढ़ा-चढ़ाकर पेश किया गया है; यह वह universal solution नहीं है जिसकी बहुत से लोगों ने उम्मीद की थी। यह BM25 जैसे सरल तरीकों को पूरी तरह replace नहीं करता और केवल सीमित semantic understanding देता है। बहुत ऊँची अपेक्षाएँ यह विश्वास दिलाती हैं कि embeddings ठीक वही ढूँढ लेंगे जो आप चाहते हैं, लेकिन अगर आप results को ध्यान से न देखें, तो mismatch पकड़ना मुश्किल होता है