Ми представляємо вбудовування, нову кінцеву точку в OpenAI API, яка полегшує виконання завдань природної мови та коду, таких як семантичний пошук, кластеризація, моделювання тем і класифікація. Вбудовування — це числові представлення понять, перетворені в числові послідовності, що полегшує комп’ютерам розуміння зв’язків між цими поняттями. Наші вбудовування перевершують найкращі моделі в 3 стандартних тестах, включаючи відносне покращення пошуку коду на 20%.
Вбудовування корисно для роботи з природною мовою та кодом, оскільки їх можна легко використовувати та порівнювати іншими моделями та алгоритмами машинного навчання, такими як кластеризація чи пошук.
Чисельно подібні вбудовування також подібні семантично. Наприклад, вектор вбудовування «собачі компаньйони кажуть» буде більше схожий на вектор вбудовування «гав», ніж «мяу».
Нова кінцева точка використовує моделі нейронних мереж, які є нащадками GPT-3, для відображення тексту та коду у векторне представлення, «вбудовуючи» їх у простір високої вимірності. Кожен вимір фіксує певний аспект вхідних даних.
Новий /вставки кінцева точка в API OpenAI надає вбудовування тексту та коду з кількома рядками коду:
import openai
response = openai.Embedding.create( input="canine companions say", engine="text-similarity-davinci-001")
Ми випускаємо три сімейства моделей вбудовування, кожна з яких добре працює з різними функціями: схожість тексту, пошук тексту та пошук коду. Моделі беруть або текст, або код як вхідні дані і повертають вектор вбудовування.
моделі | Використовуйте випадки | |
---|---|---|
Подібність тексту: фіксує семантичну схожість між фрагментами тексту. | подібність тексту-{ада, бебідж, кюрі, давінчі}-001 | Кластеризація, регресія, виявлення аномалій, візуалізація |
Пошук тексту: Семантичний пошук інформації над документами. | текстовий пошук-{ада, бебідж, кюрі, давінчі}-{запит, док}-001 | Пошук, відповідність контексту, пошук інформації |
Пошук коду: Знайдіть відповідний код із запитом природною мовою. | code-search-{ada, babbage}-{code, text}-001 | Пошук і релевантність коду |
Моделі подібності тексту
Моделі подібності тексту забезпечують вбудовування, які фіксують семантичну подібність фрагментів тексту. Ці моделі корисні для багатьох завдань, у тому числі Кластеризація, візуалізація даних та класифікація.
Наступна інтерактивна візуалізація показує вбудовування зразків тексту з набору даних DBpedia:
Щоб порівняти подібність двох фрагментів тексту, просто скористайтеся крапковий продукт на вбудовування тексту. Результатом є «оцінка подібності», яку іноді називають «косинусова подібність”, між –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)
Одним із популярних варіантів використання вбудовування є використання їх як функцій у завданнях машинного навчання, таких як класифікація. У літературі з машинного навчання, коли використовується лінійний класифікатор, це завдання класифікації називається «лінійним зондом». Наші моделі подібності тексту досягають нових найсучасніших результатів щодо класифікації лінійних зондів SentEval (Конно та ін., 2018), часто використовуваний еталон для оцінки якості вбудовування.
Моделі текстового пошуку
Моделі текстового пошуку забезпечують вбудовування, що дає змогу виконувати широкомасштабні пошукові завдання, як-от пошук відповідного документа серед набору документів за текстовим запитом. Вбудовування для документів і запиту виконується окремо, а потім косинусоподібна подібність використовується для порівняння подібності між запитом і кожним документом.
Пошук на основі вбудовування може узагальнити краще, ніж методи накладання слів, які використовуються в класичному пошуку за ключовими словами, оскільки він фіксує семантичне значення тексту і менш чутливий до точних фраз або слів. Ми оцінюємо ефективність моделі текстового пошуку на BEIR (Тхакур та ін. 2021 рік) набір оцінки пошуку та отримати кращу результативність пошуку, ніж попередні методи. Наші посібник з текстового пошуку надає докладнішу інформацію про використання вбудовування для завдань пошуку.
Моделі пошуку коду
Моделі пошуку коду забезпечують вбудовування коду та тексту для завдань пошуку коду. Враховуючи набір блоків коду, завдання полягає в тому, щоб знайти відповідний блок коду для запиту природною мовою. Ми оцінюємо моделі пошуку коду на CodeSearchNet (Хусіан та ін., 2019) набір оцінки, де наші вбудовування досягають значно кращих результатів, ніж попередні методи. Перевірте посібник з пошуку коду використовувати вбудовування для пошуку коду.
Приклади Embeddings API в дії
Дослідження JetBrains
JetBrains Research's Лабораторія фізики астрочастинок аналізує такі дані, як Телеграма астронома і НАСА Циркуляри GCN, які є звітами, які містять астрономічні події, які не можна проаналізувати традиційними алгоритмами.
Завдяки вбудованим OpenAI цих астрономічних звітів дослідники тепер можуть шукати такі події, як «сплески крабового пульсара» в багатьох базах даних і публікаціях. Вбудовування також досягло 99.85% точності щодо класифікації джерел даних за допомогою кластеризації k-середніх.
FineTune Learning
FineTune Learning є компанією, яка створює гібридні рішення людини та штучного інтелекту для навчання, наприклад адаптивні цикли навчання які допомагають студентам досягти академічних стандартів.
Вбудовування OpenAI значно покращило завдання пошуку змісту підручника на основі навчальних цілей. Досягнувши точності в топ-5 у 89.1%, модель вбудовування тексту-пошуку-кюрі OpenAI перевершила попередні підходи, такі як Sentence-BERT (64.5%). Хоча експерти-люди все ще кращі, команда FineTune тепер може позначати цілі підручники за лічені секунди, на відміну від годин, які знадобилися експертам.
Fabius
Fabius допомагає компаніям перетворювати розмови з клієнтами на структуровану інформацію, яка допомагає планувати та розставляти пріоритети. Вбудовування OpenAI дозволяють компаніям легше знаходити та позначати стенограми дзвінків клієнтів із запитами функцій.
Наприклад, клієнти можуть використовувати такі слова, як «автоматизований» або «простий у використанні», щоб попросити кращу платформу самообслуговування. Раніше Fabius використовував нечіткий пошук за ключовими словами, щоб спробувати позначити ці стенограми міткою платформи самообслуговування. Завдяки вбудовуванням OpenAI тепер вони можуть знайти в 2 рази більше прикладів загалом і в 6–10 разів більше прикладів для функцій з абстрактними випадками використання, які не мають чіткого ключового слова, яке можуть використовувати клієнти.
Усі клієнти API можуть розпочати роботу з документація про вбудовування за використання вбудовування в своїх програмах.
.vector-diagram img { дисплей: немає;
}
.vector-diagram img:first-child { display: block;
}
var printResponse = function (btn) { // додати відповідь var responseEl = document .querySelector('.endpoint-code-response') .querySelector('code') var callParentEl = document .querySelector('.endpoint-code-call' ) .querySelector('pre') if (!responseEl || !callParentEl) return; callParentEl.appendChild(responseEl); // приховати кнопку btn.style.display= 'none';
}; var initRotate = function () { var rotates = document.querySelectorAll('.js-rotate'); if (!rotates.length) повернення; // для кожного набору обертань rotates.forEach(function (r) { // переміщати першу дочірню частину до кінця кожні n секунд window.setInterval(function(){ moveToEnd(r, r.firstElementChild); }, 1500); }) ;
};
var moveToEnd = function (батька, дитина) { parent.removeChild(child); parent.appendChild(дитина); // додати до батьківського
}; 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) return; more.style.display = 'block'; this.style.display = 'none'; }); });
}; // в цьому
document.addEventListener('DOMContentLoaded', function () { initRotate(); initShowMore();
});
імпортуйте {Runtime, Inspector, Library} із «https://unpkg.com/@observablehq/runtime@4.5.0/dist/runtime.js»;
import notebook_topk from “https://api.observablehq.com/d/20c1e51d6e663e6d.js?v=3”;
імпортувати notebook_embed3d із “https://api.observablehq.com/d/fef0801cb0a0b322.js?v=3” const customWidth = function (selector) { return (new Library).Generators.observe(function(change) { var width = change(document.querySelector(selector).clientWidth); function resized() { var w = document.querySelector(selector).clientWidth; if (w !== ширина) change(width = w); } window.addEventListener(“ зміна розміру”, змінений розмір); return function() { window.removeEventListener(“resize”, resize); }; });
}; const topk_renders = { “діаграма”: “#topk-діаграма”,
};
new Runtime(Object.assign(new Library, {width: customWidth(“#topk-chart”)})).module(notebook_topk, name => { const selector = topk_renders[name]; if (селектор) { // ключ існує return new Inspector(document.querySelector(selector)); } else { return true; }
}); const embed3d_renders = { “chart”: “#embed3d-chart”, “legend”: “#embed3d-legend”,
};
new Runtime(Object.assign(new Library, {width: customWidth(“#embed3d-chart”)})).module(notebook_embed3d, name => { const selector = embed3d_renders[name]; if (селектор) { // ключ існує return new Inspector(document.querySelector(selector)); } else { return true; }
});
- '
- 100
- 11
- 3d
- 7
- досягнутий
- через
- алгоритми
- серед
- API
- застосування
- доступний
- еталонний тест
- Блокувати
- Створюємо
- call
- Може отримати
- випадків
- зміна
- дитина
- класифікація
- код
- збір
- Компанії
- компанія
- порівняний
- комп'ютери
- зміст
- розмови
- Клієнти
- дані
- базами даних
- Виявлення
- різний
- Розмір
- дисплей
- документація
- легко
- Кінцева точка
- Події
- приклад
- experts
- сімей
- ШВИДКО
- особливість
- риси
- зворотний зв'язок
- Перший
- після
- функція
- Загальне
- висота
- допомога
- допомагає
- приховувати
- Як
- How To
- HTTPS
- гібрид
- У тому числі
- інформація
- розуміння
- інтерактивний
- IT
- ключ
- мова
- вчений
- вивчення
- бібліотека
- літератури
- машина
- навчання за допомогою машини
- карта
- узгодження
- Матерія
- сенс
- Метрика
- модель
- Моделі
- Morgan
- найбільш
- рухатися
- НАСА
- Природний
- мережу
- номер
- Інше
- продуктивність
- фрази
- Фізика
- планування
- платформа
- популярний
- Прогнози
- зонд
- Вироблений
- Product
- Програмування
- забезпечувати
- забезпечує
- якість
- RE
- Відносини
- звільнити
- звітом
- Звіти
- відповідь
- результати
- Пошук
- обраний
- комплект
- аналогічний
- Рішення
- Простір
- стандартів
- почалася
- впроваджений
- стиль
- завдання
- команда
- методи
- через
- топ
- традиційний
- розуміти
- використання
- візуалізації
- W
- W3
- Вікіпедія
- в
- слова
- робочий
- юань