OpenAI API प्लेटोब्लॉकचैन डेटा इंटेलिजेंस में टेक्स्ट और कोड एम्बेडिंग का परिचय। लंबवत खोज। ऐ.

OpenAI API में टेक्स्ट और कोड एम्बेडिंग का परिचय

OpenAI API में टेक्स्ट और कोड एम्बेडिंग का परिचय

हम एम्बेडिंग की शुरुआत कर रहे हैं, ओपनएआई एपीआई में एक नया समापन बिंदु जो प्राकृतिक भाषा और कोड कार्यों जैसे सिमेंटिक खोज, क्लस्टरिंग, विषय मॉडलिंग और वर्गीकरण को करना आसान बनाता है। एम्बेडिंग संख्या अनुक्रमों में परिवर्तित अवधारणाओं का संख्यात्मक प्रतिनिधित्व है, जिससे कंप्यूटर के लिए उन अवधारणाओं के बीच संबंधों को समझना आसान हो जाता है। हमारे एम्बेडिंग 3 मानक बेंचमार्क में शीर्ष मॉडल से बेहतर प्रदर्शन करते हैं, जिसमें कोड खोज में 20% सापेक्ष सुधार शामिल है।

दस्तावेज़ पढ़ेंपेपर पढ़ें

एंबेडिंग प्राकृतिक भाषा और कोड के साथ काम करने के लिए उपयोगी होते हैं, क्योंकि उनका आसानी से उपभोग किया जा सकता है और अन्य मशीन लर्निंग मॉडल और एल्गोरिदम जैसे क्लस्टरिंग या खोज द्वारा तुलना की जा सकती है।

OpenAI API में टेक्स्ट और कोड एम्बेडिंग का परिचय
OpenAI API में टेक्स्ट और कोड एम्बेडिंग का परिचय
OpenAI API में टेक्स्ट और कोड एम्बेडिंग का परिचय
OpenAI API में टेक्स्ट और कोड एम्बेडिंग का परिचय
OpenAI API में टेक्स्ट और कोड एम्बेडिंग का परिचय
OpenAI API में टेक्स्ट और कोड एम्बेडिंग का परिचय

एंबेडिंग जो संख्यात्मक रूप से समान हैं, शब्दार्थ रूप से भी समान हैं। उदाहरण के लिए, "कुत्ते के साथी कहते हैं" का एम्बेडिंग वेक्टर "म्याऊ" की तुलना में "वूफ़" के एम्बेडिंग वेक्टर के समान होगा।

OpenAI API में टेक्स्ट और कोड एम्बेडिंग का परिचय
OpenAI API में टेक्स्ट और कोड एम्बेडिंग का परिचय

नया समापन बिंदु तंत्रिका नेटवर्क मॉडल का उपयोग करता है, जो GPT-3 के वंशज हैं, पाठ और कोड को वेक्टर प्रतिनिधित्व के लिए मैप करने के लिए- उन्हें एक उच्च-आयामी स्थान में "एम्बेडिंग" करते हैं। प्रत्येक आयाम इनपुट के कुछ पहलू को कैप्चर करता है।

नई / एम्बेडिंग में समापन बिंदु OpenAI एपीआई कोड की कुछ पंक्तियों के साथ टेक्स्ट और कोड एम्बेडिंग प्रदान करता है:

import openai
response = openai.Embedding.create( input="canine companions say", engine="text-similarity-davinci-001")

हम एम्बेडिंग मॉडल के तीन परिवार जारी कर रहे हैं, जिनमें से प्रत्येक को विभिन्न कार्यात्मकताओं पर अच्छा प्रदर्शन करने के लिए तैयार किया गया है: टेक्स्ट समानता, टेक्स्ट खोज और कोड खोज। मॉडल या तो टेक्स्ट या कोड को इनपुट के रूप में लेते हैं और एक एम्बेडिंग वेक्टर लौटाते हैं।

मॉडल बक्सों का इस्तेमाल करें
पाठ समानता: टेक्स्ट के टुकड़ों के बीच सिमेंटिक समानता को कैप्चर करता है। पाठ-समानता-{ada, बैबेज, क्यूरी, davinci}-001 क्लस्टरिंग, प्रतिगमन, विसंगति का पता लगाना, विज़ुअलाइज़ेशन
पाठ्य खोज: दस्तावेजों पर अर्थपूर्ण सूचना पुनर्प्राप्ति। पाठ-खोज-{ada, babbage, क्यूरी, davinci}-{query, doc}-001 खोज, संदर्भ प्रासंगिकता, सूचना पुनर्प्राप्ति
कोड खोज: प्राकृतिक भाषा में एक प्रश्न के साथ प्रासंगिक कोड खोजें। कोड-खोज-{एडीए, बैबेज}-{कोड, टेक्स्ट}-001 कोड खोज और प्रासंगिकता

पाठ समानता मॉडल

टेक्स्ट समानता मॉडल एम्बेडिंग प्रदान करते हैं जो टेक्स्ट के टुकड़ों की सिमेंटिक समानता को कैप्चर करते हैं। ये मॉडल सहित कई कार्यों के लिए उपयोगी हैं गुच्छन, डेटा विज़ुअलाइज़ेशन, तथा वर्गीकरण.

निम्नलिखित इंटरेक्टिव विज़ुअलाइज़ेशन डीबीपीडिया डेटासेट से टेक्स्ट नमूनों की एम्बेडिंग दिखाता है:

पैन करने के लिए खींचें, स्क्रॉल करें या ज़ूम करने के लिए पिंच करें

से एम्बेडिंग text-similarity-babbage-001 मॉडल, पर लागू डीबीपीडिया डाटासेट। हमने 100 श्रेणियों को कवर करने वाले डेटासेट से बेतरतीब ढंग से 5 नमूनों का चयन किया, और के माध्यम से एम्बेडिंग की गणना की / एम्बेडिंग समापन बिंदु विभिन्न श्रेणियां एम्बेडिंग स्थान में 5 स्पष्ट समूहों के रूप में दिखाई देती हैं। एम्बेडिंग स्थान की कल्पना करने के लिए, हमने एम्बेडिंग आयाम को 2048 से घटाकर 3 कर दिया है पीसीए. 3D आयाम में एम्बेडिंग स्थान की कल्पना कैसे करें, इसके लिए कोड उपलब्ध है यहाँ उत्पन्न करें.

पाठ के दो टुकड़ों की समानता की तुलना करने के लिए, आप बस इसका उपयोग करते हैं डॉट उत्पाद टेक्स्ट एम्बेडिंग पर। परिणाम एक "समानता स्कोर" है, जिसे कभी-कभी "समानता स्कोर" कहा जाता है।cosine समानता”, -1 और 1 के बीच, जहां अधिक संख्या का अर्थ अधिक समानता है। अधिकांश अनुप्रयोगों में, एम्बेडिंग की पूर्व-गणना की जा सकती है, और फिर डॉट उत्पाद की तुलना करने के लिए बहुत तेज़ है।

import openai, numpy as np resp = openai.Embedding.create( input=["feline friends go", "meow"], engine="text-similarity-davinci-001") embedding_a = resp['data'][0]['embedding']
embedding_b = resp['data'][1]['embedding'] similarity_score = np.dot(embedding_a, embedding_b)

एम्बेडिंग का एक लोकप्रिय उपयोग मशीन सीखने के कार्यों में सुविधाओं के रूप में उनका उपयोग करना है, जैसे कि वर्गीकरण। मशीन लर्निंग लिटरेचर में, लीनियर क्लासिफायरियर का उपयोग करते समय, इस वर्गीकरण कार्य को "रैखिक जांच" कहा जाता है। हमारे पाठ समानता मॉडल रैखिक जांच वर्गीकरण पर नए अत्याधुनिक परिणाम प्राप्त करते हैं भेजा गयाEval (Conneau एट अल।, 2018), एम्बेडिंग गुणवत्ता का मूल्यांकन करने के लिए आमतौर पर इस्तेमाल किया जाने वाला बेंचमार्क।

7 डेटासेट पर रैखिक जांच वर्गीकरण
पिछला SOTA (गाओ एट अल। 2021)
90.2% तक
पाठ-समानता-davinci-001
92.2% तक
और दिखाओ

पाठ खोज मॉडल

टेक्स्ट सर्च मॉडल एम्बेडिंग प्रदान करते हैं जो बड़े पैमाने पर खोज कार्यों को सक्षम करते हैं, जैसे टेक्स्ट क्वेरी दिए गए दस्तावेज़ों के संग्रह के बीच एक प्रासंगिक दस्तावेज़ ढूंढना। दस्तावेज़ों और क्वेरी के लिए एम्बेडिंग अलग से तैयार की जाती है, और फिर कोसाइन समानता का उपयोग क्वेरी और प्रत्येक दस्तावेज़ के बीच समानता की तुलना करने के लिए किया जाता है।

एम्बेडिंग-आधारित खोज शास्त्रीय खोजशब्द खोज में प्रयुक्त शब्द ओवरलैप तकनीकों की तुलना में बेहतर सामान्यीकरण कर सकती है, क्योंकि यह पाठ के अर्थ अर्थ को पकड़ती है और सटीक वाक्यांशों या शब्दों के प्रति कम संवेदनशील होती है। हम पाठ खोज मॉडल के प्रदर्शन का मूल्यांकन करते हैं BEIR (ठाकुर, एट अल। 2021) खोज मूल्यांकन सूट और पिछले तरीकों की तुलना में बेहतर खोज प्रदर्शन प्राप्त करें। हमारी पाठ खोज गाइड खोज कार्यों के लिए एम्बेडिंग का उपयोग करने के बारे में अधिक विवरण प्रदान करता है।

कोड खोज मॉडल

कोड खोज मॉडल कोड खोज कार्यों के लिए कोड और टेक्स्ट एम्बेडिंग प्रदान करते हैं। कोड ब्लॉक के संग्रह को देखते हुए, कार्य एक प्राकृतिक भाषा क्वेरी के लिए प्रासंगिक कोड ब्लॉक ढूंढना है। हम कोड खोज मॉडल का मूल्यांकन करते हैं कोडसर्चनेट (हुसैन एट अल।, 2019) मूल्यांकन सूट जहां हमारे एम्बेडिंग पूर्व विधियों की तुलना में काफी बेहतर परिणाम प्राप्त करते हैं। इसकी जाँच पड़ताल करो कोड खोज गाइड कोड खोज के लिए एम्बेडिंग का उपयोग करने के लिए।

6 प्रोग्रामिंग भाषाओं में औसत सटीकता
पिछला SOTA (गुओ, एट अल। 2021)
77.4% तक
कोड-खोज-बैबेज-{डॉक्टर, क्वेरी}-001
93.5% तक
और दिखाओ

एंबेडिंग एपीआई इन एक्शन के उदाहरण

जेटब्रेन रिसर्च

जेटब्रेन रिसर्च एस्ट्रोपार्टिकल फिजिक्स लैब जैसे डेटा का विश्लेषण करता है एस्ट्रोनॉमर्स टेलीग्राम और नासा के जीसीएन परिपत्र, जो ऐसी रिपोर्टें हैं जिनमें खगोलीय घटनाएं होती हैं जिन्हें पारंपरिक एल्गोरिदम द्वारा पार्स नहीं किया जा सकता है।

ओपनएआई द्वारा इन खगोलीय रिपोर्टों के एम्बेडिंग द्वारा संचालित, शोधकर्ता अब कई डेटाबेस और प्रकाशनों में "क्रैब पल्सर बर्स्ट" जैसी घटनाओं की खोज करने में सक्षम हैं। एम्बेडिंग ने k- साधन क्लस्टरिंग के माध्यम से डेटा स्रोत वर्गीकरण पर 99.85% सटीकता भी हासिल की।

फाइनट्यून लर्निंग

फाइनट्यून लर्निंग सीखने के लिए हाइब्रिड मानव-एआई समाधान बनाने वाली कंपनी है, जैसे अनुकूली शिक्षण लूप जो छात्रों को शैक्षणिक मानकों तक पहुंचने में मदद करते हैं।

OpenAI के एम्बेडिंग ने सीखने के उद्देश्यों के आधार पर पाठ्यपुस्तक सामग्री खोजने के कार्य में काफी सुधार किया है। 5% की शीर्ष -89.1 सटीकता प्राप्त करते हुए, OpenAI के टेक्स्ट-सर्च-क्यूरी एम्बेडिंग मॉडल ने सेंटेंस-बीईआरटी (64.5%) जैसे पिछले दृष्टिकोणों से बेहतर प्रदर्शन किया। जबकि मानव विशेषज्ञ अभी भी बेहतर हैं, फ़ाइनट्यून टीम अब पूरी पाठ्यपुस्तकों को कुछ ही सेकंड में लेबल करने में सक्षम है, इसके विपरीत विशेषज्ञों को लगने वाले घंटों के विपरीत।

सेंटेंस-बीईआरटी के साथ हमारे एम्बेडिंग की तुलना, GPT-3 खोज और मानव विषय-वस्तु विशेषज्ञों को सीखे गए उद्देश्यों के साथ पाठ्यपुस्तक सामग्री के मिलान के लिए। हम रिपोर्ट करते है सटीकता@k, शीर्ष-कश्मीर पूर्वानुमानों के भीतर सही उत्तर जितनी बार आता है।

Fabius

Fabius कंपनियों को ग्राहकों की बातचीत को संरचित अंतर्दृष्टि में बदलने में मदद करता है जो योजना और प्राथमिकता को सूचित करता है। ओपनएआई की एम्बेडिंग कंपनियों को फीचर अनुरोधों के साथ ग्राहक कॉल ट्रांसक्रिप्ट को आसानी से ढूंढने और टैग करने की अनुमति देती है।

उदाहरण के लिए, ग्राहक बेहतर स्वयं-सेवा मंच के लिए पूछने के लिए "स्वचालित" या "उपयोग में आसान" जैसे शब्दों का उपयोग कर सकते हैं। पहले, फैबियस स्वयं-सेवा प्लेटफॉर्म लेबल के साथ उन टेपों को टैग करने का प्रयास करने के लिए फ़ज़ी कीवर्ड खोज का उपयोग कर रहा था। OpenAI की एम्बेडिंग के साथ, वे अब सामान्य रूप से 2x अधिक उदाहरण खोजने में सक्षम हैं, और अमूर्त उपयोग के मामलों वाली सुविधाओं के लिए 6x-10x अधिक उदाहरण, जिनके पास स्पष्ट कीवर्ड नहीं है जो ग्राहक उपयोग कर सकते हैं।

सभी एपीआई ग्राहक इसके साथ शुरुआत कर सकते हैं एम्बेडिंग दस्तावेज़ीकरण अपने अनुप्रयोगों में एम्बेडिंग का उपयोग करने के लिए।

दस्तावेज़ पढ़ें


Acknowledgments

इस रिलीज़ में उनके योगदान के लिए निम्नलिखित को धन्यवाद:

ताओ जू, क्रिस हैलासी, राउल पुरी, एलेक रेडफोर्ड, जेसी माइकल हान, जेरी ट्वोरेक, किमिंग युआन, निकोलस तेजाक, जोंग वूक किम, जोहान्स हेडेक, प्रणव श्याम, टायना एलौंडौ नेकौल, गिरीश शास्त्री, ग्रेचेन क्रुएगर, डेविड श्नुर, फेलिप पेट्रोस्की जैसे, केनी सू, मेडेलीन थॉम्पसन, तबारक खान और टोकी शेरबाकोव।

इस पोस्ट पर उनकी प्रतिक्रिया के लिए निम्नलिखित के लिए धन्यवाद: टॉम क्लेनपीटर, मॉर्गन गैलेंट, सैम ऑल्टमैन, इल्या सुत्स्केवर, स्टीव डाउलिंग, राचेल लिम, अरुण विजयवर्गीय, राजीव नायक, पीटर वेलिंडर, जस्टिन जे वांग।

.वेक्टर-आरेख img {प्रदर्शन: कोई नहीं;
}
.वेक्टर-आरेख img: पहला बच्चा {प्रदर्शन: ब्लॉक;
}

वर प्रिंट रिस्पॉन्स = फ़ंक्शन (बीटीएन) {// प्रतिक्रिया संलग्न करें ) .querySelector('pre') if (!responseEl || !callParentEl) वापसी; callParentEl.appendChild(responseEl); // छुपाएं बटन btn.style.display= 'कोई नहीं';
}; var initRotate = function () { वर रोटेट = document.querySelectorAll ('.js-rotate'); अगर (! घुमाता है। लंबाई) वापसी; // रोटेट के प्रत्येक सेट के लिए रोटेट्स। फॉरएच (फ़ंक्शन (आर) {// हर एन सेकंड विंडो को समाप्त करने के लिए पहले बच्चे को स्थानांतरित करें। ;
};
var moveToEnd = फ़ंक्शन (माता-पिता, बच्चे) {parent.removeChild (बच्चा); माता-पिता। संलग्न करें चाइल्ड (बच्चा); // माता-पिता के लिए संलग्न करें
}; var initShowMore = function () { var showmores = document.querySelectorAll('.js-showmore'); showmores.forEach(function (e) {e.addEventListener('click', function() { var showmoreparent = this.parentElement; if (!showmoreparent) return; var more = showmoreparent.querySelector('.js-more'); if (!more) रिटर्न; more.style.display = 'ब्लॉक'; this.style.display = 'none'; }); });
}; // इस में
document.addEventListener ('DOMContentLoaded', फ़ंक्शन () {initRotate (); initShowMore ();
});
"https://unpkg.com/@observablehq/runtime@4.5.0/dist/runtime.js" से {रनटाइम, इंस्पेक्टर, लाइब्रेरी} आयात करें;
import notebook_topk from “https://api.observablehq.com/d/20c1e51d6e663e6d.js?v=3”;
"https://api.observablehq.com/d/fef3cb0801a0b0.js?v=322" से नोटबुक_एम्बेड 3 डी आयात करें बदलें (दस्तावेज़। क्वेरी चयनकर्ता (चयनकर्ता)। क्लाइंटविड्थ); फ़ंक्शन का आकार बदल गया () { वर डब्ल्यू = दस्तावेज़। क्वेरी चयनकर्ता (चयनकर्ता)। क्लाइंटविड्थ; अगर (डब्ल्यू! == चौड़ाई) परिवर्तन (चौड़ाई = डब्ल्यू); } window.addEventListener (" आकार बदलें", आकार बदला); वापसी समारोह () {विंडो.removeEventListener ("आकार बदलें", आकार बदला); }; });
}; const topk_renders = { "चार्ट": "# टॉप-चार्ट",
};
नया रनटाइम (ऑब्जेक्ट.असाइन (नई लाइब्रेरी, {चौड़ाई: कस्टमविड्थ ("# टॉप-चार्ट")}))। मॉड्यूल (नोटबुक_टॉप, नाम => {कॉन्स्ट चयनकर्ता = टॉपके_रेंडर्स [नाम]; अगर (चयनकर्ता) {// कुंजी मौजूद है नया इंस्पेक्टर (दस्तावेज़.क्वेरी चयनकर्ता (चयनकर्ता)); } और {वापसी सच; }
}); const एम्बेड3d_renders = { "चार्ट": "# Embed3d-chart", "किंवदंती": "# Embed3d-legend",
};
नया रनटाइम (ऑब्जेक्ट.असाइन (नई लाइब्रेरी, {चौड़ाई: कस्टमविड्थ ("# एम्बेड 3 डी-चार्ट")}))। मॉड्यूल (नोटबुक_एम्बेड 3 डी, नाम => {कॉन्स्ट चयनकर्ता = एम्बेड 3 डी_रेंडर्स [नाम]; अगर (चयनकर्ता) {// कुंजी मौजूद है नया इंस्पेक्टर (दस्तावेज़.क्वेरी चयनकर्ता (चयनकर्ता)); } और {वापसी सच; }
});

समय टिकट:

से अधिक OpenAI