1. प्रस्तावना Embeddings
1.1. Embeddings क्या हैं
Embeddings, मशीन लर्निंग के क्षेत्र में, खासकर प्राकृतिक भाषा प्रसंस्करण (NLP) समस्याओं का समाधान करने में, पाठ डेटा को संख्यात्मक वेक्टर में परिवर्तित करने की एक तकनीक है। मानव भाषा में, शब्दों और वाक्यों का अर्थ उनके संदर्भ और प्रयोग द्वारा निर्धारित होता है। Embeddings का उद्देश्य इन भाषावैज्ञानिक इकाइयों का अर्थ को कैद करना है, जिससे कम्प्यूटर समझता हो और उन्हें प्रसंस्कृत कर सके।
Embeddings का मूल विचार शब्दों को बलवा प्रकार में साथी अर्थवाची बिन्दुओं में मैप करना है, शब्दों को उच्च-आयामी अंतरिक्ष में बिंदुओं के रूप में प्रस्तुत करके। इस प्रकार, सेमांटिक अर्थ (जैसे "राजा" और "रानी") वाले शब्द अंतरिक्ष में पास होंगे। Embeddings सामान्यत: तैरने-फिरने में समानताएँ दर्शाते हैं, यहां तक कि "कुत्ता" और "कैनाइन" जैसे बहुत विभिन्न पाठ के लिए भी समान Embedding प्रतिनिधित्व कर सकते हैं।
सुझाव: एक अनुप्रयोग डेवलपर के रूप में, आप समझ सकते हैं कि दो पाठ वाक्यों के लिए जिनका अर्थ समान होता है, उनके Embedding वेक्टर समानता उच्च होती है।
1.2. Embeddings के अनुप्रयोग
Embeddings विभिन्न परिदृश्यों में व्यापक रूप से प्रयोग होते हैं, यहां कुछ मुख्य उपयोग के क्षेत्र हैं:
- खोज: खोज परिणामों को खोज प्रश्न टेक्स्ट के साथ संबंधितता के आधार पर रैंक करने के लिए Embedding फ़ीचर्स का उपयोग।
- समूहीकरण: Embeddings से सेमांटिक रूप में समान पाठ अंशों को पहचानने और वर्गीकरण करने में मदद कर सकते हैं।
- सिफारिश सिस्टम: समानता के आधार पर वस्तु सिफारिश करना, जाने गए वस्तुओं के समान अन्य वस्तुओं को खोजने और सिफारिश करने में मदद कर सकता है।
- अनियमतता अन्वेषण: Embeddings का उपयोग मुख्य डेटासेट से संकेती प्रमुख रूप से भिन्न डेटा बिंदुओं की पहचान के लिए किया जा सकता है।
- विविधता मापन: Embeddings का उपयोग विभिन्न पाठों के बीच समानता वितरण का विश्लेषण करने के लिए भी किया जा सकता है।
- वर्गीकरण: एक सेट के निर्धारित लेबल एम्बेडिंग के साथ पाठ समानता की तुलना करने के लिए इसे विभिन्न श्रेणी में वर्गीकृत करना।
2. OpenAI Embeddings का परिचय
2.1. OpenAI Embeddings मॉडल का अवलोकन
OpenAI तीसरी पीढ़ी के Embedding मॉडल प्रदान करता है, जिसमें text-embedding-3-small
और text-embedding-3-large
शामिल हैं। ये मॉडल OpenAI की विशेष गहरी सीखने की तकनीक पर आधारित हैं, जो उच्च बहुभाषीय प्रदर्शन प्रदान करने के उद्देश्य से बनाए गए हैं और साथ ही लागत कम करने की कोशिश करते हैं।
इन मॉडल्स का विशेष विशेषता है जब embeddings को प्रसंस्कृत कर रहे होती हैं। उदाहरण के लिए, text-embedding-3-small
1536-आयामी Embedding वेक्टर प्रदान करता है, जबकि text-embedding-3-large
अधिक जटिल पाठ सुविधाओं को कवर करने के लिए 3072-आयामी Embedding वेक्टर प्रदान करता है। पैरामीटर बदलकर, embeddings की आयामीता को निर्दिष्ट अनुप्रयोग स्थितियों को पूरा करने के लिए नियंत्रित किया जा सकता है।
2.2. मॉडल चयन और उपयोग
उपयुक्त embedding मॉडल का चयन विशेष अनुप्रयोग की आवश्यकताओं पर निर्भर करता है। निम्नलिखित अनुप्रयोग स्थितियों में चयन कैसे करें:
-
प्रदर्शन-केंद्रित स्थितियों में: यदि आपको अधिक विस्तृत समंजनात्मक जानकारी को जोड़ने की आवश्यकता है, जैसे कि फाइन-ग्रेन्ड सिफारिश सिस्टम या उच्च-निश्चितता वाले पाठ वर्गीकरण में, सामान्यतः
text-embedding-3-large
का उपयोग करना सुझाव दिया जाता है। हालांकि यह छोटे मॉडलों से अधिक महंगा होता है, यह पाठ सुविधाओं का और समृद्ध प्रतिनिधित्व कर सकता है। -
लागत-संवेगी अनुप्रयोगों में: बड़े डेटा को प्रसंस्कृत करने की आवश्यकता होती है, लेकिन विशेष रूप से उच्च-निश्चितता आवश्यकताएँ नहीं होती हैं, जैसे कि प्रारंभिक डेटा अन्वेषण या तेजी से कार्यकलाप योजना,
text-embedding-3-small
एक अधिक आर्थिक चयन है। यह लागत को कम करते हुए सामान्यतः उच्च प्रदर्शन रखता है। -
बहुभाषी संकेतों में: ये embedding मॉडल बहुभाषी प्रदर्शन हैं, जो क्रॉस-भाषाई या बहुभाषी स्थितियों में विशेष योगदान में मददगार होते हैं, और उन्हें वैश्विक अनुप्रयोगों के लिए आदर्श चयन बनाते हैं।
उचित embedding मॉडल का चयन विशेष आवश्यकताओं, डेटा जटिलता, और प्रदर्शन और लागत के बीच वांछित संतुलन बिंदु पर निर्भर करेगा।
3.1 Embeddings API को कॉल करने के लिए curl
का उपयोग
curl
HTTP रिक्वेस्ट भेजने के लिए एक सामान्य रूप से प्रयोग किया जाने वाला कमांड-लाइन उपकरण है। निम्नलिखित उदाहरण में दिखाया गया है कि कैसे curl
का उपयोग करके पाठ के Embedding प्रतिनिधित्व प्राप्त किया जाता है:
curl https://api.openai.com/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"input": "Machine learning is a branch of artificial intelligence.",
"model": "text-embedding-3-small"
}'
उपरोक्त कमांड में, $OPENAI_API_KEY
वेरिएबल पाठक का OpenAI API कुंजी को संदर्भित करता है, जिसे वास्तविक उपयोग के लिए एक वैध कुंजी से बदलना चाहिए।
इस कमांड को निष्पादित करने के बाद, OpenAI Embeddings API एक प्रतिक्रिया वापस करेगा जिसमें पाठ एम्बेडिंग प्रतिनिधित्व शामिल होगा। नीचे दिए गए उदाहरण में एक API कॉल के परिणाम को दिखाया गया है:
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": [ // यहां फ़ीचर वेक्टर है
-0.006929283495992422,
-0.005336422007530928,
... // शेष संख्याएँ प्रदर्शन के लिए छोड़ दी गई हैं
-4.547132266452536e-05,
-0.024047505110502243
]
}
],
"model": "text-embedding-3-small",
"usage": {
"prompt_tokens": 5,
"total_tokens": 5
}
}
3.2 Embeddings API को कॉल करने के लिए Python Client का उपयोग
curl
का सीधे रूप से एपीआई को कॉल करने के अलावा, आप एक Python क्लाइंट का उपयोग भी कर सकते हैं। इसके लिए पहले आधिकारिक openai
लाइब्रेरी को स्थापित करना आवश्यक है। निम्नलिखित पाठ में दिखाया गया है कि Python का उपयोग करके पाठ के Embedding प्राप्त करने का उदाहरण कैसे देखा जा सकता है:
import openai
openai.api_key = 'YOUR_OPENAI_API_KEY' # अपनी OpenAI API कुंजी के साथ बदलें
response = openai.Embedding.create(
input="Artificial intelligence is changing the world.",
model="text-embedding-3-small"
)
embedding_vector = response['data'][0]['embedding']
print(embedding_vector)
इस Python स्क्रिप्ट को चलाकर, आपको curl
का उपयोग करते समान एक समान Embedding वेक्टर प्राप्त होगा। यह वेक्टर एक संख्यामान दर्शन के स्थान में इनपुट पाठ का संख्यात्मक प्रतिनिधित्व करता है।
कॉल के परिणाम का एक उदाहरण निम्नलिखित है:
[-0.0032198824, 0.0022555287, ..., 0.0015886585, -0.0021505365]
3.2 Embedding वेक्टर्स का प्रबंधन
OpenAI केवल Embeddings पाठ वेक्टरीकरण गणना मॉडल प्रदान करता है। अगर आप Embeddings का उपयोग करके पाठ समानता खोज जैसे कार्यों को लागू करना चाहते हैं, तो आपको Qdrant, Chroma, और Milvus जैसे वेक्टर डेटाबेस को सीखने की आवश्यकता होगी।
कृपया निम्नलिखित वेक्टर डेटाबेस ट्यूटोरियल्स का संदर्भ दें: