1. Введение в Embeddings
1.1. Что такое Embeddings
Embeddings, в области машинного обучения, особенно в решении проблем обработки естественного языка (NLP), это техника преобразования текстовых данных в числовые векторы. В человеческом языке значение слов и фраз определяется их контекстом и использованием. Цель embeddings - захватить семантику этих лингвистических единиц, позволяя компьютерам их понимать и обрабатывать.
Основная идея embeddings заключается в отображении слов с похожими значениями в близкие точки в математическом пространстве, представляя слова как точки в многомерном пространстве. Таким образом, слова с близким семантическим значением (например, "король" и "королева") будут близки в пространстве. Embeddings обычно состоят из массивов с плавающей запятой, позволяя даже очень различным текстовым фрагментам (например, "собака" и "канье") иметь похожие векторные представления.
Совет: В качестве разработчика приложений вы можете просто понимать, что для двух текстовых предложений с похожими значениями их векторное представление будет похоже.
1.2. Применения Embeddings
Embeddings широко используются в различных сценариях, вот несколько основных применений:
- Поиск: Использование векторов embeddings для ранжирования результатов поиска на основе их релевантности для запроса.
- Кластеризация: Embeddings могут помочь идентифицировать и категоризировать семантически похожие текстовые фрагменты.
- Системы рекомендаций: Рекомендация элементов на основе их сходства может помочь открывать и рекомендовать другие элементы, похожие на известные.
- Выявление аномалий: Embeddings могут быть использованы для выявления точек данных, значительно отличающихся от основного набора данных.
- Измерение разнообразия: Embeddings также могут быть использованы для анализа распределения сходства между различными текстами.
- Классификация: Сравнение текста с набором известных меток embeddings для его классификации в наиболее похожую категорию.
2. Введение в Embeddings OpenAI
2.1. Обзор моделей Embeddings OpenAI
OpenAI предоставляет встроенные модели третьего поколения: text-embedding-3-small
и text-embedding-3-large
. Эти модели созданы на уникальной технологии глубокого обучения OpenAI с целью обеспечения высокой мультиязычной производительности при снижении затрат.
У этих моделей есть уникальные характеристики при обработке embeddings. Например, text-embedding-3-small
предлагает векторы embeddings размерностью 1536, в то время как text-embedding-3-large
предоставляет векторы embeddings размерностью 3072 для охвата более сложных текстовых особенностей. Путем настройки параметров можно контролировать размерность embeddings для соответствия конкретным потребностям сценариев применения.
2.2. Выбор модели и использование
Выбор подходящей модели embeddings зависит от конкретных требований приложения. Вот как сделать выбор в различных сценариях использования:
-
В сферах, ориентированных на производительность: Если вам нужно улавливать более детальную семантическую информацию, например, в feйнрейнджинговых системах рекомендаций или высокоточной классификации текста, обычно рекомендуется использовать
text-embedding-3-large
. Хотя он более дорогой, чем более маленькие модели, он может обеспечить более богатое представление текстовых особенностей. -
В приложениях, ориентированных на затраты: Для приложений, требующих обработки большого объема данных, но не имеющих особо высоких требований к точности, таких как начальное исследование данных или быстрое прототипирование,
text-embedding-3-small
является более экономичным выбором. Он сохраняет относительно высокую производительность при существенном снижении затрат. -
Мультиязычные среды: Эти модели embeddings имеют высокую мультиязычную производительность, что особенно полезно в кросс-языковых или мультиязычных сценариях, делая их идеальным выбором для глобальных приложений.
Выбор правильной модели embeddings будет зависеть от конкретных требований, сложности данных и желаемой точки баланса между производительностью и затратами.
3. Как использовать Embeddings
3.1 Использование curl
для вызова API встраивания
curl
- это распространенный инструмент командной строки для отправки HTTP-запросов. В следующем примере показано, как использовать curl
для получения встраивающего представления текста:
curl https://api.openai.com/v1/embeddings \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"input": "Машинное обучение - это раздел искусственного интеллекта.",
"model": "text-embedding-3-small"
}'
В команде выше переменная $OPENAI_API_KEY
содержит ключ API OpenAI пользователя, который должен быть заменен действительным ключом для реального использования.
После выполнения этой команды API встраиваний OpenAI вернет ответ с встраивающим представлением текста. Вот пример результата вызова API:
{
"object": "list",
"data": [
{
"object": "embedding",
"index": 0,
"embedding": [ // Здесь вектор признаков
-0.006929283495992422,
-0.005336422007530928,
... // Оставшиеся числа опущены для отображения
-4.547132266452536e-05,
-0.024047505110502243
]
}
],
"model": "text-embedding-3-small",
"usage": {
"prompt_tokens": 5,
"total_tokens": 5
}
}
3.2 Использование Python-клиента для вызова API встраивания
Помимо использования curl
для прямого вызова API из командной строки, можно также использовать Python-клиент. Для этого сначала необходимо установить официальную библиотеку openai
. Вот пример использования Python для получения встраивания текста:
import openai
openai.api_key = 'ВАШ_OPENAI_API_КЛЮЧ' # Замените на свой ключ API OpenAI
response = openai.Embedding.create(
input="Искусственный интеллект меняет мир.",
model="text-embedding-3-small"
)
вектор_встраивания = response['data'][0]['embedding']
print(вектор_встраивания)
Запустив этот скрипт Python, вы получите аналогичный вектор встраивания, как при использовании curl
. Этот вектор представляет собой список чисел с плавающей запятой, представляющих числовое представление вводного текста в пространстве встраивания.
Результат вызова выглядит следующим образом:
[-0.0032198824, 0.0022555287, ..., 0.0015886585, -0.0021505365]
3.2 Работа с встраивающими векторами
OpenAI предоставляет только вычислительную модель векторизации текстовых векторов Embeddings. Если вы хотите использовать Embeddings для реализации функций, таких как поиск похожих текстов, вам необходимо изучить векторные базы данных, такие как Qdrant, Chroma и Milvus.
Пожалуйста, обратитесь к следующим учебным пособиям по векторным базам данных: