OpenAI API PlatoBlockchain ڈیٹا انٹیلی جنس میں متن اور کوڈ ایمبیڈنگز کا تعارف۔ عمودی تلاش۔ عی

OpenAI API میں ٹیکسٹ اور کوڈ ایمبیڈنگز کا تعارف

OpenAI API میں ٹیکسٹ اور کوڈ ایمبیڈنگز کا تعارف

ہم ایمبیڈنگز متعارف کروا رہے ہیں، OpenAI API میں ایک نیا اختتامی نقطہ جو قدرتی زبان اور کوڈ کے کاموں کو انجام دینا آسان بناتا ہے جیسے سیمنٹک سرچ، کلسٹرنگ، ٹاپک ماڈلنگ، اور درجہ بندی۔ ایمبیڈنگس عددی ترتیب میں تبدیل شدہ تصورات کی عددی نمائندگی ہیں، جو کمپیوٹر کے لیے ان تصورات کے درمیان تعلقات کو سمجھنا آسان بناتی ہیں۔ ہماری ایمبیڈنگز 3 معیاری بینچ مارکس میں سرفہرست ماڈلز سے بہتر کارکردگی کا مظاہرہ کرتی ہیں، بشمول کوڈ کی تلاش میں 20% رشتہ دار بہتری۔

دستاویزات پڑھیںکاغذ پڑھیں

ایمبیڈنگز قدرتی زبان اور کوڈ کے ساتھ کام کرنے کے لیے کارآمد ہیں، کیونکہ ان کا آسانی سے استعمال کیا جا سکتا ہے اور دوسرے مشین لرننگ ماڈلز اور الگورتھم جیسے کلسٹرنگ یا سرچ سے ان کا موازنہ کیا جا سکتا ہے۔

OpenAI API میں ٹیکسٹ اور کوڈ ایمبیڈنگز کا تعارف
OpenAI API میں ٹیکسٹ اور کوڈ ایمبیڈنگز کا تعارف
OpenAI API میں ٹیکسٹ اور کوڈ ایمبیڈنگز کا تعارف
OpenAI API میں ٹیکسٹ اور کوڈ ایمبیڈنگز کا تعارف
OpenAI API میں ٹیکسٹ اور کوڈ ایمبیڈنگز کا تعارف
OpenAI API میں ٹیکسٹ اور کوڈ ایمبیڈنگز کا تعارف

ایمبیڈنگز جو عددی طور پر ایک جیسے ہوتے ہیں وہ بھی معنوی طور پر ایک جیسے ہوتے ہیں۔ مثال کے طور پر، "کینائن کمپینز کا کہنا ہے کہ" کا سرایت کرنے والا ویکٹر "میاؤ" کے مقابلے میں "woof" کے سرایت کرنے والے ویکٹر سے زیادہ ملتا جلتا ہوگا۔

OpenAI API میں ٹیکسٹ اور کوڈ ایمبیڈنگز کا تعارف
OpenAI API میں ٹیکسٹ اور کوڈ ایمبیڈنگز کا تعارف

نیا اینڈ پوائنٹ نیورل نیٹ ورک ماڈلز کا استعمال کرتا ہے، جو GPT-3 کی اولاد ہیں، متن اور کوڈ کو ویکٹر کی نمائندگی کے لیے نقشہ بنانے کے لیے- انہیں ایک اعلیٰ جہتی جگہ میں "ایمبیڈ کرنا"۔ ہر طول و عرض ان پٹ کے کچھ پہلو کو پکڑتا ہے۔

نیا / ایمبیڈنگز میں اختتامی نقطہ اوپن اے آئی API کوڈ کی چند لائنوں کے ساتھ متن اور کوڈ ایمبیڈنگ فراہم کرتا ہے:

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

ہم سرایت کرنے والے ماڈلز کے تین خاندان جاری کر رہے ہیں، ہر ایک کو مختلف فنکشنلٹیز پر اچھی کارکردگی دکھانے کے لیے ٹیون کیا گیا ہے: متن کی مماثلت، متن کی تلاش، اور کوڈ کی تلاش۔ ماڈلز یا تو ٹیکسٹ یا کوڈ کو بطور ان پٹ لیتے ہیں اور ایمبیڈنگ ویکٹر کو واپس کرتے ہیں۔

ماڈل مقدمات کا استعمال کریں
متن کی مماثلت: متن کے ٹکڑوں کے درمیان معنوی مماثلت کو پکڑتا ہے۔ متن کی مماثلت-{ada, babbage, curie, davinci}-001 کلسٹرنگ، رجعت، بے ضابطگی کا پتہ لگانے، تصور
متن کی تلاش: دستاویزات پر معنوی معلومات کی بازیافت۔ متن کی تلاش-{ada, babbage, curie, davinci}-{استفسار, دستاویز}-001 تلاش، سیاق و سباق کی مطابقت، معلومات کی بازیافت
کوڈ کی تلاش: قدرتی زبان میں سوال کے ساتھ متعلقہ کوڈ تلاش کریں۔ code-search-{ada, babbage}-{code, text}-001 کوڈ کی تلاش اور مطابقت

متن کی مماثلت کے ماڈلز

متن کی مماثلت کے ماڈل سرایت کرتے ہیں جو متن کے ٹکڑوں کی معنوی مماثلت کو حاصل کرتے ہیں۔ یہ ماڈلز سمیت بہت سے کاموں کے لیے کارآمد ہیں۔ clustering کے, اعداد و شمار کی تصور، اور درجہ بندی.

درج ذیل انٹرایکٹو ویژولائزیشن DBpedia ڈیٹاسیٹ سے متن کے نمونوں کی سرایت کو ظاہر کرتی ہے۔

پین کرنے کے لیے گھسیٹیں، اسکرول کریں یا زوم کرنے کے لیے چوٹکی کریں۔

سے ایمبیڈنگز text-similarity-babbage-001 ماڈل، پر لاگو ڈی بی پیڈیا۔ ڈیٹاسیٹ ہم نے تصادفی طور پر ڈیٹاسیٹ سے 100 نمونوں کا انتخاب کیا جس میں 5 زمروں کا احاطہ کیا گیا، اور ایمبیڈنگز کی گنتی / ایمبیڈنگز اختتامی نقطہ مختلف زمرے سرایت کرنے کی جگہ میں 5 واضح کلسٹرز کے طور پر ظاہر ہوتے ہیں۔ سرایت کرنے کی جگہ کو دیکھنے کے لیے، ہم نے ایمبیڈنگ کی جہت کو 2048 سے کم کر کے 3 کر دیا پیسیی. 3D طول و عرض میں سرایت کرنے کی جگہ کا تصور کرنے کا کوڈ دستیاب ہے۔ یہاں.

متن کے دو ٹکڑوں کی مماثلت کا موازنہ کرنے کے لیے، آپ صرف استعمال کریں۔ نقطہ مصنوعات ٹیکسٹ ایمبیڈنگز پر۔ نتیجہ ایک "مماثلت سکور" ہے، جسے کبھی کبھی "کہا جاتا ہے"کوزائن مماثلت-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)

ایمبیڈنگز کا ایک مقبول استعمال یہ ہے کہ انہیں مشین لرننگ کے کاموں میں خصوصیات کے طور پر استعمال کیا جائے، جیسے درجہ بندی۔ مشین لرننگ لٹریچر میں، لکیری درجہ بندی کا استعمال کرتے وقت، درجہ بندی کے اس کام کو "لکیری پروب" کہا جاتا ہے۔ ہمارے متن کی مماثلت کے ماڈل میں لکیری تحقیقات کی درجہ بندی پر نئے جدید ترین نتائج حاصل کرتے ہیں۔ سینٹ ایول (Conneau et al.، 2018)، سرایت کرنے کے معیار کا جائزہ لینے کے لیے ایک عام استعمال شدہ بینچ مارک۔

7 ڈیٹاسیٹس پر لکیری تحقیقات کی درجہ بندی
پچھلا SOTA (گاو وغیرہ۔ 2021)
90.2٪
text-similarity-davinci-001
92.2٪
اور دیکھاو

ٹیکسٹ سرچ ماڈلز

ٹیکسٹ سرچ ماڈل ایمبیڈنگز فراہم کرتے ہیں جو بڑے پیمانے پر تلاش کے کاموں کو قابل بناتے ہیں، جیسے کہ ٹیکسٹ استفسار پر دیے گئے دستاویزات کے مجموعے کے درمیان ایک متعلقہ دستاویز تلاش کرنا۔ دستاویزات اور استفسار کے لیے ایمبیڈنگ الگ الگ تیار کی جاتی ہے، اور پھر کوسائن مماثلت کو استفسار اور ہر دستاویز کے درمیان مماثلت کا موازنہ کرنے کے لیے استعمال کیا جاتا ہے۔

ایمبیڈنگ پر مبنی تلاش کلاسیکی کلیدی الفاظ کی تلاش میں استعمال ہونے والی لفظ اوورلیپ تکنیکوں سے بہتر عام کر سکتی ہے، کیونکہ یہ متن کے معنوی معنی کو پکڑتی ہے اور درست فقروں یا الفاظ کے لیے کم حساس ہوتی ہے۔ ہم پر ٹیکسٹ سرچ ماڈل کی کارکردگی کا جائزہ لیتے ہیں۔ بی آئی آر (ٹھاکر، وغیرہ۔ 2021) تلاش کی تشخیص کا سوٹ اور پچھلے طریقوں سے بہتر تلاش کی کارکردگی حاصل کریں۔ ہماری ٹیکسٹ سرچ گائیڈ تلاش کے کاموں کے لیے سرایت کرنے کے بارے میں مزید تفصیلات فراہم کرتا ہے۔

کوڈ سرچ ماڈلز

کوڈ سرچ ماڈلز کوڈ تلاش کے کاموں کے لیے کوڈ اور ٹیکسٹ ایمبیڈنگ فراہم کرتے ہیں۔ کوڈ بلاکس کے مجموعے کو دیکھتے ہوئے، کام قدرتی زبان کے استفسار کے لیے متعلقہ کوڈ بلاک تلاش کرنا ہے۔ ہم پر کوڈ سرچ ماڈلز کا جائزہ لیتے ہیں۔ کوڈ سرچ نیٹ (حسین وغیرہ، 2019) تشخیصی سویٹ جہاں ہماری سرایتیں پہلے کے طریقوں سے نمایاں طور پر بہتر نتائج حاصل کرتی ہیں۔ چیک کریں کوڈ تلاش گائیڈ کوڈ کی تلاش کے لیے ایمبیڈنگز استعمال کرنے کے لیے۔

6 پروگرامنگ زبانوں سے زیادہ اوسط درستگی
پچھلا SOTA (Guo، et al. 2021)
77.4٪
code-search-babbage-{doc, query}-001
93.5٪
اور دیکھاو

ایکشن میں ایمبیڈنگز API کی مثالیں۔

جیٹ برینز ریسرچ

جیٹ برینز ریسرچ ایسٹرو پارٹیکل فزکس لیب جیسے ڈیٹا کا تجزیہ کرتا ہے۔ ماہر فلکیات کا ٹیلیگرام اور ناسا کے جی سی این سرکلرز، جو ایسی رپورٹس ہیں جن میں فلکیاتی واقعات ہوتے ہیں جن کا روایتی الگورتھم سے تجزیہ نہیں کیا جا سکتا۔

اوپن اے آئی کی ان فلکیاتی رپورٹس کے سرایت سے تقویت یافتہ، محققین اب متعدد ڈیٹا بیسز اور اشاعتوں میں "کریب پلسر برسٹ" جیسے واقعات کو تلاش کرنے کے قابل ہیں۔ ایمبیڈنگز نے K-means کلسٹرنگ کے ذریعے ڈیٹا سورس کی درجہ بندی پر 99.85% درستگی بھی حاصل کی۔

فائن ٹیون لرننگ

فائن ٹیون لرننگ ایک کمپنی ہے جو سیکھنے کے لیے ہائبرڈ ہیومن-اے آئی سلوشنز بناتی ہے، جیسے انکولی سیکھنے کے لوپس جو طلباء کو تعلیمی معیار تک پہنچنے میں مدد کرتا ہے۔

OpenAI کی سرایت نے سیکھنے کے مقاصد کی بنیاد پر درسی کتاب کے مواد کو تلاش کرنے کے کام کو نمایاں طور پر بہتر کیا۔ 5% کی ٹاپ-89.1 درستگی کو حاصل کرتے ہوئے، OpenAI کے ٹیکسٹ-سرچ-کیوری ایمبیڈنگس ماڈل نے Sentence-BERT (64.5%) جیسے سابقہ ​​طریقوں سے بہتر کارکردگی کا مظاہرہ کیا۔ اگرچہ انسانی ماہرین اب بھی بہتر ہیں، FineTune ٹیم اب پوری نصابی کتابوں کو سیکنڈوں میں لیبل لگانے کے قابل ہے، اس کے برعکس ماہرین کو جتنے گھنٹے لگے۔

Sentence-BERT کے ساتھ ہماری سرایت کا موازنہ، GPT-3 تلاش کریں۔ اور انسانی مضامین کے ماہرین نصابی کتاب کے مواد کو سیکھے ہوئے مقاصد کے ساتھ ملانے کے لیے۔ ہم رپورٹ کرتے ہیں۔ accuracy@k, جتنی بار صحیح جواب ٹاپ-k پیشین گوئیوں کے اندر ہے۔

Fabius

Fabius کمپنیوں کو کسٹمر کی بات چیت کو منظم بصیرت میں تبدیل کرنے میں مدد کرتا ہے جو منصوبہ بندی اور ترجیح سے آگاہ کرتی ہے۔ OpenAI کی ایمبیڈنگز کمپنیوں کو خصوصیت کی درخواستوں کے ساتھ کسٹمر کال ٹرانسکرپٹس کو زیادہ آسانی سے تلاش کرنے اور ٹیگ کرنے کی اجازت دیتی ہیں۔

مثال کے طور پر، صارفین بہتر سیلف سروس پلیٹ فارم طلب کرنے کے لیے "خودکار" یا "استعمال میں آسان" جیسے الفاظ استعمال کر سکتے ہیں۔ اس سے پہلے، Fabius ان ٹرانسکرپٹس کو سیلف سروس پلیٹ فارم لیبل کے ساتھ ٹیگ کرنے کی کوشش کرنے کے لیے مبہم مطلوبہ الفاظ کی تلاش کا استعمال کر رہا تھا۔ OpenAI کی ایمبیڈنگز کے ساتھ، وہ اب عام طور پر 2x مزید مثالیں تلاش کرنے کے قابل ہیں، اور خلاصہ استعمال کے معاملات کے ساتھ خصوصیات کے لیے 6x–10x مزید مثالیں تلاش کر سکتے ہیں جن کے صارفین کے لیے واضح مطلوبہ الفاظ نہیں ہیں۔

تمام API صارفین کے ساتھ شروع کر سکتے ہیں۔ ایمبیڈنگ دستاویزات ان کی ایپلی کیشنز میں سرایت کرنے کے لیے۔

دستاویزات پڑھیں


منظوریاں

اس ریلیز میں ان کے تعاون کے لیے درج ذیل کا شکریہ:

تاؤ سو، کرس ہالیسی، راؤل پوری، ایلک ریڈفورڈ، جیسی مائیکل ہان، جیری ٹوریک، کیمنگ یوان، نکولس ٹیزاک، جونگ ووک کم، جوہانس ہائیڈیکی، پرناو شیام، ٹینا ایلونڈاؤ نیکول، گریش سستری، گریچن کروگر، ڈیوڈ پیٹروسک ایسے، کینی سو، میڈلین تھامسن، تبارک خان، اور ٹوکی شیرباکوف۔

اس پوسٹ پر ان کے تاثرات کے لیے درج ذیل کا شکریہ: Tom Kleinpeter, Morgan Gallant, Sam Altman, Ilya Sutskever, Steve Dowling, Rachel Lim, Arun Vijayvergiya, Rajeev Nayak, Peter Welinder, Justin Jay Wang.

vector-diagram img { ڈسپلے: کوئی نہیں؛
}
vector-diagram img:first-child { ڈسپلے: block;
}

var printResponse = فنکشن (btn) { // جواب شامل کریں var responseEl = document .querySelector('.endpoint-code-response') .querySelector('code') var callParentEl = document .querySelector('.endpoint-code-call' ) .querySelector('pre') if (!responseEl || !callParentEl) واپس; callParentEl.appendChild(responseEl); // چھپائیں بٹن btn.style.display = 'کوئی نہیں'؛
}; var initRotate = function () { var rotates = document.querySelectorAll('.js-rotate'); اگر (!rotates.length) واپس آئے؛ // روٹیٹس کے ہر سیٹ کے لیے rotates.forEach(function (r) { // ہر n سیکنڈ کی ونڈو کو ختم کرنے کے لیے پہلے بچے کو منتقل کریں۔ ;
};
var moveToEnd = فنکشن (والدین، بچہ) { parent.removeChild(بچہ)؛ parent.appendChild(بچہ)؛ // والدین کو شامل کریں۔
}; var initShowMore = فنکشن () { var showmores = document.querySelectorAll('.js-showmore'); showmores.forEach(function (e) { e.addEventListener('click', function () { var showmoreparent = this.parentElement؛ اگر (!showmoreparent) واپسی؛ var more = showmoreparent.querySelector('.js-more')؛ اگر (!مزید) واپس آئے؛ more.style.display = 'بلاک'؛ this.style.display = 'کوئی نہیں'؛ }؛ });
}; // اس میں
document.addEventListener('DOMContentLoaded', function () { 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" سے notebook_embed3d درآمد کریں const customWidth = فنکشن (سلیکٹر) { واپسی (نئی لائبریری)۔Generators.observe(function(change) { var width = change(document.querySelector(selector).clientWidth)؛ فنکشن کا سائز تبدیل کریں () { var w = document.querySelector(selector).clientWidth؛ if (w !== width) change(width=w); } window.addEventListener(“ resize", resized); واپسی فنکشن() { window.removeEventListener("resize", resized); }; });
}; const topk_renders = { "چارٹ": "#topk-چارٹ"،
};
نیا رن ٹائم(Object.assign(new Library, {width: customWidth("#topk-chart")})).module(notebook_topk, name => { const selector = topk_renders[name]؛ if (selector) {// key موجود ہے ریٹرن نیا انسپکٹر(document.querySelector(selector)); } else { true return; }
}); const embed3d_renders = { "چارٹ": "#embed3d-chart"، "legend": "#embed3d-legend"،
};
نیا رن ٹائم(Object.assign(new Library, {width: customWidth("#embed3d-chart")}))).module(notebook_embed3d, name => { const Selector = embed3d_renders[name]؛ if (selector) {// key موجود ہے ریٹرن نیا انسپکٹر(document.querySelector(selector)); } else { true return; }
})؛

ٹائم اسٹیمپ:

سے زیادہ اوپنائی