Представляем эмбеддинги текста и кода
Мы представляем эмбеддинги — новую конечную точку в API OpenAI, которая упрощает выполнение задач с естественным языком и кодом, таких как семантический поиск, кластеризация, тематическое моделирование и классификация.

Эмбеддинги — это числовые представления понятий, преобразованные в последовательности чисел, которые позволяют компьютерам легко понимать взаимосвязи между этими понятиями. Наши эмбеддинги превосходят лучшие модели в 3 стандартных бенчмарках, включая относительное улучшение на 20% в поиске кода.
Эмбеддинги полезны при работе с естественным языком и кодом, поскольку они легко обрабатываются и сравниваются другими моделями машинного обучения и алгоритмами, такими как кластеризация или поиск.
Эмбеддинги, близкие по числу, также близки и семантически. Например, вектор эмбеддинга для фразы «собачьи компаньоны говорят» будет ближе к вектору эмбеддинга «гав», чем «мяу».
Новая конечная точка использует модели нейронных сетей, являющиеся потомками GPT-3, для сопоставления текста и кода с векторным представлением — «встраивания» их в многомерное пространство. Каждое измерение отражает определенный аспект входных данных.
Новая конечная точка /embeddings в OpenAI API предоставляет эмбеддинги текста и кода с помощью всего нескольких строк кода:
Мы выпускаем три семейства моделей эмбеддингов, каждая из которых настроена на эффективную работу с определенными функциями: текстовое сходство, текстовый поиск и поиск кода. Модели принимают на вход текст или код и возвращают вектор эмбеддинга.
Модели | Варианты использования | |
Текстовое сходство: Отражает семантическое сходство между фрагментами текста. | text-similarity-{ada, babbage, curie, davinci}-001 | Кластеризация, регрессия, обнаружение аномалий, визуализация |
Текстовый поиск: Семантический поиск информации по документам. | text-search-{ada, babbage, curie, davinci}-{query, doc}-001 | Поиск, релевантность контекста, информационный поиск |
Поиск кода: Поиск релевантного кода по запросу на естественном языке. | code-search-{ada, babbage}-{code, text}-001 | Поиск кода и релевантность |
Модели текстового сходства
Модели текстового сходства предоставляют эмбеддинги, которые отражают семантическое сходство фрагментов текста. Эти модели полезны для многих задач, включая кластеризацию, визуализацию данных и классификацию.
Следующая интерактивная визуализация демонстрирует эмбеддинги текстовых образцов из датасета DBpedia:
Чтобы сравнить сходство двух фрагментов текста, вы просто используете скалярное произведение на эмбеддингах текста. В результате получается «оценка сходства», которую иногда называют »косинусным сходством», в диапазоне от –1 до 1, где большее число означает большее сходство. В большинстве приложений эмбеддинги могут быть предварительно вычислены, после чего сравнение методом скалярного произведения выполняется чрезвычайно быстро.
Python
1import openai, numpy as np2
3resp = openai.Embedding.create(4 input=["feline friends say", "meow"],5 engine="text-similarity-davinci-001")6
7embedding_a = resp['data'][0]['embedding']8embedding_b = resp['data'][1]['embedding']9
10similarity_score = np.dot(embedding_a, embedding_b)Одно из популярных применений эмбеддингов — использование их в качестве признаков (фичей) в задачах машинного обучения, таких как классификация. В литературе по машинному обучению при использовании линейного классификатора эту задачу классификации называют «линейным зондированием» (linear probe). Наши модели текстового сходства достигают новых передовых результатов в классификации методом линейного зондирования в SentEval (Conneau et al., 2018), часто используемом бенчмарке для оценки качества эмбеддингов.
Модели текстового поиска
Модели текстового поиска предоставляют эмбеддинги, которые обеспечивают выполнение масштабных поисковых задач, таких как поиск релевантного документа среди коллекции документов по текстовому запросу. Эмбеддинги для документов и запроса генерируются раздельно, после чего косинусное сходство используется для сравнения степени близости между запросом и каждым отдельным документом.
Поиск на основе эмбеддингов способен обобщать данные лучше, чем методы совпадения слов, используемые в классическом ключевом поиске, поскольку он улавливает семантическое значение текста и менее чувствителен к точным фразам или словам. Мы оцениваем производительность модели текстового поиска в наборе для оценки поисковых систем BEIR (Thakur, et al. 2021) и получаем более высокие результаты поиска по сравнению с предыдущими методами. Наше руководство по текстовому поиску содержит более подробную информацию об использовании эмбеддингов для поисковых задач.
Модели поиска кода
Модели поиска кода предоставляют эмбеддинги кода и текста для задач поиска кода. Учитывая набор блоков кода, задача состоит в том, чтобы найти релевантный блок кода по запросу на естественном языке. Мы оцениваем модели поиска кода в оценочном наборе CodeSearchNet (Husain et al., 2019), где наши эмбеддинги показывают существенно лучшие результаты по сравнению с предыдущими методами. Ознакомьтесь с руководством по поиску кода, чтобы начать использовать эмбеддинги для поиска кода.
Примеры использования API эмбеддингов на практике
JetBrains Research
Лаборатория астрофизики элементарных частиц JetBrains Research анализирует такие данные, как The Astronomer«s Telegram и циркуляры GCN от NASA, которые представляют собой отчеты об астрономических событиях, не поддающиеся синтаксическому анализу традиционными алгоритмами.
Опираясь на эмбеддинги этих астрономических отчетов от OpenAI, исследователи теперь могут искать такие события, как «вспышки пульсара в Крабовидной туманности», по множеству баз данных и публикаций. Эмбеддинги также позволили достичь точности 99,85% при классификации источников данных с помощью кластеризации k-means.
FineTune Learning
FineTune Learning — это компания, создающая гибридные решения на основе человека и ИИ для обучения, такие как циклы адаптивного обучения, которые помогают учащимся соответствовать академическим стандартам.
Эмбеддинги от OpenAI значительно улучшили задачу поиска содержимого учебников на основе целей обучения. Добявшись точности 89.1% в топ-5, модель эмбеддингов text-search-curie от OpenAI превзошла предыдущие подходы, такие как Sentence-BERT (64.5%). Хотя эксперты-люди все еще справляются лучше, команда FineTune теперь может размечать целые учебники за считанные секунды, в отличие от часов, которые на это требовались у экспертов.
Fabius
Fabius помогает компаниям превращать разговоры с клиентами в структурированные инсайты, которые используются при планировании и расстановке приоритетов. Эмбеддинги от OpenAI позволяют компаниям проще находить и тегировать стенограммы звонков клиентов запросами на добавление функций.
Например, клиенты могут использовать такие слова, как «автоматизированный» или «простой в использовании», чтобы запросить лучшую платформу самообслуживания. Раньше Fabius использовал нечеткий поиск по ключевым словам, чтобы попытаться пометить эти стенограммы меткой платформы самообслуживания. С помощью эмбеддингов от OpenAI они теперь могут находить в 2 раза больше примеров в целом и в 6–10 раз больше примеров для функций с абстрактными вариантами использования, для которых у клиентов нет четких ключевых слов.
Все клиенты API могут начать работу с документацией по эмбеддингам, чтобы использовать эмбеддинги в своих приложениях.
- Читать документацию
Авторы
Полный текст статьи читайте на OpenAI
