Мы представляем встраивания, новую конечную точку в API OpenAI, которая упрощает выполнение задач на естественном языке и коде, таких как семантический поиск, кластеризация, моделирование тем и классификация. Вложения — это числовые представления понятий, преобразованные в числовые последовательности, которые упрощают для компьютеров понимание взаимосвязей между этими понятиями. Наши встраивания превосходят лучшие модели в 3 стандартных тестах, включая относительное улучшение поиска кода на 20%.
Вложения полезны для работы с естественным языком и кодом, поскольку их можно легко использовать и сравнивать с другими моделями и алгоритмами машинного обучения, такими как кластеризация или поиск.
Вложения, которые численно подобны, также семантически подобны. Например, вектор встраивания «собачьих компаньонов говорят» будет больше похож на вектор вложения «гав», чем на «мяу».
Новая конечная точка использует модели нейронных сетей, которые являются потомками GPT-3, для преобразования текста и кода в векторное представление, «встраивая» их в многомерное пространство. Каждое измерение отражает некоторый аспект входных данных.
Новый /вложения конечная точка в API OpenAI обеспечивает встраивание текста и кода с помощью нескольких строк кода:
import openai
response = openai.Embedding.create( input="canine companions say", engine="text-similarity-davinci-001")
Мы выпускаем три семейства моделей встраивания, каждое из которых оптимизировано для выполнения различных функций: сходства текста, поиска текста и поиска кода. Модели принимают либо текст, либо код в качестве входных данных и возвращают вектор встраивания.
Модели | Случаи использования | |
---|---|---|
Текстовое сходство: Фиксирует семантическое сходство между фрагментами текста. | сходство текста-{ада, бэббидж, кюри, давинчи}-001 | Кластеризация, регрессия, обнаружение аномалий, визуализация |
Поиск текста: Семантический поиск информации по документам. | текстовый поиск-{ада, бэббидж, кюри, давинчи}-{запрос, документ}-001 | Поиск, релевантность контекста, поиск информации |
Поиск кода: поиск релевантного кода с запросом на естественном языке. | код-поиск-{ада, бэббидж}-{код, текст}-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)
Одним из популярных применений вложений является их использование в качестве функций в задачах машинного обучения, таких как классификация. В литературе по машинному обучению при использовании линейного классификатора эта задача классификации называется «линейным зондом». Наши модели подобия текста позволяют получить новые передовые результаты по классификации линейных проб в СентЭвал (Конно и др., 2018 г.), широко используемый эталон для оценки качества встраивания.
Модели текстового поиска
Модели текстового поиска предоставляют вложения, которые позволяют выполнять крупномасштабные поисковые задачи, такие как поиск релевантного документа среди набора документов по текстовому запросу. Встраивание для документов и запроса производится отдельно, а затем используется косинусное сходство для сравнения сходства между запросом и каждым документом.
Поиск на основе встраивания может обобщать лучше, чем методы перекрытия слов, используемые в классическом поиске по ключевым словам, потому что он улавливает семантическое значение текста и менее чувствителен к точным фразам или словам. Мы оцениваем производительность модели текстового поиска на БЕИР (Такур и др. 2021) набор оценки поиска и получить более высокую производительность поиска, чем предыдущие методы. Наш руководство по текстовому поиску предоставляет более подробную информацию об использовании вложений для задач поиска.
Модели поиска кода
Модели поиска кода обеспечивают внедрение кода и текста для задач поиска кода. Учитывая набор блоков кода, задача состоит в том, чтобы найти соответствующий блок кода для запроса на естественном языке. Мы оцениваем модели поиска кода на CodeSearchNet (Хусиан и др., 2019 г.) оценочный набор, в котором наши вложения достигают значительно лучших результатов, чем предыдущие методы. Проверьте руководство по поиску кода использовать вложения для поиска кода.
Примеры Embeddings API в действии
Исследования JetBrains
JetBrains Research Лаборатория физики астрочастиц анализирует такие данные, как Телеграмма астронома и НАСА Циркуляры GCN, которые представляют собой отчеты, содержащие астрономические события, которые не могут быть проанализированы традиционными алгоритмами.
Благодаря встроенным в OpenAI астрономическим отчетам исследователи теперь могут искать такие события, как «всплески крабовых пульсаров», в нескольких базах данных и публикациях. Встраивания также достигли 99.85% точности при классификации источников данных благодаря кластеризации k-средних.
Обучение FineTune
Обучение FineTune — компания, разрабатывающая гибридные решения для обучения человека и искусственного интеллекта, такие как адаптивные циклы обучения которые помогают студентам достичь академических стандартов.
Вложения OpenAI значительно улучшили задачу поиска содержания учебников на основе целей обучения. Достигнув топ-5 точности 89.1%, модель встраивания текстового поиска-кюри OpenAI превзошла предыдущие подходы, такие как Sentence-BERT (64.5%). В то время как эксперты-люди все еще лучше, команда FineTune теперь может маркировать целые учебники за считанные секунды, в отличие от часов, которые потребовались экспертам.
Fabius
Fabius помогает компаниям превращать разговоры с клиентами в структурированные идеи, которые помогают планировать и расставлять приоритеты. Вложения OpenAI позволяют компаниям легче находить и помечать расшифровки звонков клиентов с запросами функций.
Например, клиенты могут использовать такие слова, как «автоматизированный» или «простой в использовании», чтобы попросить лучшую платформу самообслуживания. Ранее Fabius использовал нечеткий поиск по ключевым словам, чтобы попытаться пометить эти стенограммы меткой платформы самообслуживания. Благодаря встраиваниям OpenAI они теперь могут найти в 2 раза больше примеров в целом и в 6–10 раз больше примеров для функций с абстрактными вариантами использования, которые не имеют четкого ключевого слова, которое могут использовать клиенты.
Все клиенты API могут начать работу с документация по вложениям за использование вложений в своих приложениях.
.vector-диаграмма img { display: none;
}
.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'); если (!rotates.length) вернуть; // для каждого набора поворотов rotates.forEach(function (r) { // перемещаем первого дочернего элемента в конец каждые n секунд window.setInterval(function(){ moveToEnd(r, r.firstElementChild); }, 1500); }) ;
};
var moveToEnd = функция (родительский, дочерний) { parent.removeChild (дочерний); родитель.appendChild (дочерний); // присоединяем к родителю
}; var initShowMore = функция () { 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'); если (!more) вернуть, 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”;
импортировать note_embed3d из «https://api.observablehq.com/d/fef0801cb0a0b322.js?v=3» const customWidth = function (selector) { return (new Library).Generators.observe(function(change) { var width = изменить(document.querySelector(селектор).clientWidth); function resized() { var w = document.querySelector(selector).clientWidth; if (w !== width) change(width = w); } window.addEventListener(" изменить размер», изменить размер); return function() { window.removeEventListener («изменить размер», изменить размер); }; });
}; const topk_renders = { "диаграмма": "#topk-диаграмма",
};
new Runtime(Object.assign(new Library, {width: customWidth("#topk-chart")})).module(notebook_topk, name => { const selector = topk_renders[name]; if (selector) { // key существует return new Inspector(document.querySelector(selector)); } else { return true; }
}); const embed3d_renders = { "диаграмма": "#embed3d-диаграмма", "легенда": "#embed3d-легенда",
};
new Runtime(Object.assign(new Library, {width: customWidth("#embed3d-chart")})).module(notebook_embed3d, name => { const selector = embed3d_renders[name]; if (selector) { // key существует return new Inspector(document.querySelector(selector)); } else { return true; }
});
- '
- 100
- 11
- 3d
- 7
- достигнутый
- через
- алгоритмы
- среди
- API
- Приложения
- доступен
- эталонный тест
- Заблокировать
- Строительство
- призывают
- Может получить
- случаев
- изменение
- ребенок
- классификация
- код
- лыжных шлемов
- Компании
- Компания
- сравненный
- компьютеры
- содержание
- Беседы
- Клиенты
- данным
- базы данных
- обнаружение
- различный
- Размеры
- Дисплей
- Документация
- легко
- Конечная точка
- События
- пример
- эксперты
- семей
- БЫСТРО
- Особенность
- Особенности
- Обратная связь
- First
- после
- функция
- Общие
- высота
- помощь
- помогает
- Спрятать
- Как
- How To
- HTTPS
- Гибридный
- В том числе
- информация
- размышления
- интерактивный
- IT
- Основные
- язык
- узнали
- изучение
- Библиотека
- литература
- машина
- обучение с помощью машины
- карта
- согласование
- Вопрос
- смысл
- Метрика
- модель
- Модели
- Морган
- самых
- двигаться
- НАСА
- натуральный
- сеть
- номер
- Другое
- производительность
- фразы
- Физика
- планирование
- Платформа
- Популярное
- Predictions
- зонд
- Произведенный
- Продукт
- Программирование
- обеспечивать
- приводит
- RE
- Отношения
- освободить
- отчету
- Отчеты
- ответ
- Итоги
- Поиск
- выбранный
- набор
- аналогичный
- Решения
- Space
- стандартов
- и политические лидеры
- современное состояние
- стиль
- задачи
- команда
- снижения вреда
- Через
- топ
- традиционный
- понимать
- использование
- визуализация
- W
- W3
- Википедия.
- в
- слова
- работает
- юань