Claude Platform Docs
СообщенияВозможности модели

Эмбеддинги

Текстовые эмбеддинги — это числовые представления текста, позволяющие измерять семантическое сходство. В этом руководстве рассказывается об эмбеддингах, их применении и о том, как использовать модели эмбеддингов для таких задач, как поиск, рекомендации и обнаружение аномалий.

Перед внедрением эмбеддингов

«Embeddings» (эмбеддинги, или векторные представления) — это числовые представления текста. При выборе поставщика эмбеддингов можно учитывать несколько факторов в зависимости от ваших потребностей и предпочтений:

  • Размер набора данных и специфичность предметной области: размер обучающего набора данных модели и его релевантность предметной области, для которой вы хотите получать эмбеддинги. Более крупные или более специализированные данные, как правило, дают более качественные эмбеддинги в рамках предметной области
  • Производительность инференса: скорость получения эмбеддингов и сквозная «latency» (задержка). Это особенно важно для крупномасштабных производственных развёртываний
  • Кастомизация: возможности дообучения на закрытых данных или специализации моделей для очень узких предметных областей. Это может повысить качество работы с уникальной лексикой

Как получить эмбеддинги с Anthropic

Anthropic не предлагает собственную модель эмбеддингов. Одним из поставщиков эмбеддингов с широким выбором моделей и возможностей является Voyage AI от MongoDB.

Voyage AI создает модели эмбеддингов и «rerankers» (модели переранжирования). Ее модели эмбеддингов включают универсальные, мультимодальные, контекстуализированные и специализированные для предметных областей модели.

Остальная часть этого руководства посвящена Voyage AI, однако вам следует оценить различных поставщиков эмбеддингов, чтобы найти наиболее подходящий вариант для вашего конкретного сценария использования.

Доступные модели

Voyage AI предлагает следующие модели текстовых эмбеддингов:

Последнее поколение

МодельДлина контекстаРазмерность эмбеддингаОписание
voyage-4-large32 0001024 (по умолчанию), 256, 512, 2048Лучшее качество универсального и многоязычного поиска. Подробности см. в публикации в блоге о Voyage 4.
voyage-432 0001024 (по умолчанию), 256, 512, 2048Оптимизирована для качества универсального и многоязычного поиска. Баланс качества и эффективности. Подробности см. в публикации в блоге о Voyage 4.
voyage-4-lite32 0001024 (по умолчанию), 256, 512, 2048Оптимизирована по задержке и стоимости. Подробности см. в публикации в блоге о Voyage 4.
voyage-code-432 0001024 (по умолчанию), 256, 512, 2048Оптимизирована для поиска по коду и приложений агентного программирования. Подробности см. в публикации в блоге о voyage-code-4.
voyage-4-nano32 0002048 (по умолчанию), 256, 512, 1024Модель с открытыми весами (лицензия Apache 2.0), которую вы загружаете с Hugging Face и запускаете самостоятельно. Недоступна через Atlas Embedding and Reranking API. Подробности см. в публикации в блоге о Voyage 4.

Предыдущее поколение

Статус жизненного цикла каждой модели и рекомендуемую замену см. в разделе Model deprecations, lifecycle states, and support документации MongoDB.

МодельДлина контекстаРазмерность эмбеддингаОписание
voyage-3-large32 0001024 (по умолчанию), 256, 512, 2048Предыдущее поколение voyage-4-large. Подробности см. в публикации в блоге о voyage-3-large.
voyage-3.532 0001024 (по умолчанию), 256, 512, 2048Предыдущее поколение voyage-4. Подробности см. в публикации в блоге о voyage-3.5.
voyage-3.5-lite32 0001024 (по умолчанию), 256, 512, 2048Предыдущее поколение voyage-4-lite. Подробности см. в публикации в блоге о voyage-3.5.
voyage-code-332 0001024 (по умолчанию), 256, 512, 2048Предыдущее поколение voyage-code-4. Подробности см. в публикации в блоге о voyage-code-3.
voyage-finance-232 0001024Оптимизирована для поиска и RAG в сфере финансов. Подробности см. в публикации в блоге о voyage-finance-2.
voyage-law-216 0001024Оптимизирована для поиска и RAG в юридической сфере. Подробности см. в публикации в блоге о voyage-law-2.

Кроме того, Voyage AI предлагает следующие мультимодальные модели эмбеддингов. Вызывайте эти модели с помощью multimodal_embed() вместо embed():

МодельДлина контекстаРазмерность эмбеддингаОписание
voyage-multimodal-3.532 0001024 (по умолчанию), 256, 512, 2048Многофункциональная мультимодальная модель эмбеддингов, способная векторизовать чередующиеся текст, изображения и видео. Включает поддержку видео как первая модель видеоэмбеддингов производственного уровня. Подробности см. в публикации в блоге о voyage-multimodal-3.5.
voyage-multimodal-332 0001024Предыдущее поколение voyage-multimodal-3.5. Векторизует чередующийся текст и насыщенные контентом изображения, такие как скриншоты PDF, слайды, таблицы, рисунки и многое другое. Подробности см. в публикации в блоге о voyage-multimodal-3.

Следующие модели контекстуализированных эмбеддингов фрагментов создают векторы на уровне фрагментов (chunks), которые учитывают полный контекст документа без ручного добавления метаданных. Вызывайте эти модели с помощью contextualized_embed() вместо embed():

МодельДлина контекстаРазмерность эмбеддингаОписание
voyage-context-4120 0001024 (по умолчанию), 256, 512, 2048Контекстуализированные эмбеддинги фрагментов, оптимизированные для качества универсального и многоязычного поиска. Подробности см. в публикации в блоге о voyage-context-4.
voyage-context-3120 0001024 (по умолчанию), 256, 512, 2048Предыдущее поколение voyage-context-4. Подробности см. в публикации в блоге о voyage-context-3.

Ограничение в 120 000 токенов применяется, когда вы устанавливаете enable_auto_chunking в значение true. В противном случае общее количество токенов во всех входных данных не может превышать 32 000.

Voyage AI также предлагает «rerankers» (модели переранжирования), которые принимают запрос и список документов и возвращают их отсортированными по релевантности запросу. Вызывайте эти модели с помощью rerank():

МодельДлина контекстаОписание
rerank-332 000Наивысшая точность. Рекомендуется для большинства приложений. Подробности см. в публикации в блоге о rerank-3.
rerank-3-lite32 000Оптимизирована по задержке и стоимости. Подробности см. в публикации в блоге о rerank-3.
rerank-2.532 000Предыдущее поколение rerank-3. Подробности см. в публикации в блоге о rerank-2.5.
rerank-2.5-lite32 000Предыдущее поколение rerank-3-lite. Подробности см. в публикации в блоге о rerank-2.5.

Нужна помощь в выборе модели? См. раздел Voyage AI embedding and reranking models overview документации MongoDB.

Начало работы с Voyage AI

Чтобы получить доступ к моделям Voyage AI, создайте ключ API модели в MongoDB Atlas:

  1. Зарегистрируйте учетную запись MongoDB Atlas или войдите в нее.
  2. В вашем проекте Atlas выберите AI Model APIs на панели навигации, нажмите Create model API key, задайте имя ключа и нажмите Create.
  3. Для удобства задайте ключ API в качестве переменной окружения:
export VOYAGE_API_KEY="<your model API key>"

Подробнее см. раздел Voyage AI quick start документации MongoDB.

Вы можете получить эмбеддинги, используя официальный пакет Python voyageai или HTTP-запросы, как описано в следующих разделах. У Voyage AI также есть официальный клиент TypeScript. Чтобы использовать его с ключом API модели из Atlas, установите его параметр environment в значение https://ai.mongodb.com/v1, как описано в разделе TypeScript client документации MongoDB.

Библиотека Python Voyage AI

Установите пакет voyageai с помощью следующей команды. Чтобы использовать ключ API модели из Atlas, вам нужна версия 0.3.7 или новее.

pip install -U voyageai

Затем вы можете создать объект клиента и начать использовать его для получения эмбеддингов ваших текстов:

import voyageai

vo = voyageai.Client()
# Автоматически будет использована переменная окружения VOYAGE_API_KEY.
# Либо можно использовать vo = voyageai.Client(api_key="<your model API key>")

texts = ["Sample text 1", "Sample text 2"]

result = vo.embed(texts, model="voyage-4", input_type="document")
print(result.embeddings[0])
print(result.embeddings[1])

result.embeddings — это список из двух векторов эмбеддингов, каждый из которых содержит 1024 числа с плавающей запятой. После выполнения приведённого выше кода оба эмбеддинга будут выведены на экран:

[-0.013131560757756233, 0.019828535616397858, ...]   # embedding for "Sample text 1"
[-0.0069352793507277966, 0.020878976210951805, ...]  # embedding for "Sample text 2"

При создании эмбеддингов вы можете указать несколько других аргументов функции embed().

Дополнительную информацию о пакете Python см. в разделе Accessing Voyage AI models документации MongoDB.

HTTP API Voyage AI

Вы также можете получить эмбеддинги, отправляя HTTP-запросы к Atlas Embedding and Reranking API. Например, вы можете отправить HTTP-запрос с помощью команды curl в терминале:

cURL
curl https://ai.mongodb.com/v1/embeddings \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $VOYAGE_API_KEY" \
  -d '{
    "input": ["Sample text 1", "Sample text 2"],
    "model": "voyage-4",
    "input_type": "document"
  }'

В ответ вы получите JSON-объект, содержащий эмбеддинги и данные об использовании токенов:

{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "embedding": [-0.013131560757756233, 0.019828535616397858 /* ... */],
      "index": 0
    },
    {
      "object": "embedding",
      "embedding": [-0.0069352793507277966, 0.020878976210951805 /* ... */],
      "index": 1
    }
  ],
  "model": "voyage-4",
  "usage": {
    "total_tokens": 10
  }
}

Ключи API моделей из Atlas работают с ai.mongodb.com, за исключением ключей, привязанных к определенному географическому региону, — они используют конечную точку этого региона. Если вместо этого у вас есть ключ API с платформы Voyage AI, см. раздел Migrate your applications to use the Atlas Embedding and Reranking API документации MongoDB.

Полный справочник по запросам и ответам см. в разделе Create text embeddings документации Atlas Embedding and Reranking API.

AWS Marketplace

Модели Voyage AI также доступны на AWS Marketplace через профиль продавца MongoDB. Инструкции см. в разделе Deploy Voyage AI models using AWS Marketplace документации MongoDB.

Пример быстрого старта

Следующий краткий пример показывает, как использовать эмбеддинги.

Предположим, у вас есть небольшой корпус из шести документов, по которым нужно выполнять поиск

documents = [
    "The Mediterranean diet emphasizes fish, olive oil, and vegetables, believed to reduce chronic diseases.",
    "Photosynthesis in plants converts light energy into glucose and produces essential oxygen.",
    "20th-century innovations, from radios to smartphones, centered on electronic advancements.",
    "Rivers provide water, irrigation, and habitat for aquatic species, vital for ecosystems.",
    "Apple's conference call to discuss fourth fiscal quarter results and business updates is scheduled for Thursday, November 2, 2023 at 2:00 p.m. PT / 5:00 p.m. ET.",
    "Shakespeare's works, like 'Hamlet' and 'A Midsummer Night's Dream,' endure in literature.",
]

Сначала используйте Voyage AI, чтобы преобразовать каждый документ в вектор эмбеддинга.

import voyageai

vo = voyageai.Client()

# Создаём эмбеддинги документов
doc_embds = vo.embed(documents, model="voyage-4", input_type="document").embeddings

Эмбеддинги позволяют выполнять семантический поиск / извлечение в векторном пространстве. Пусть дан пример запроса,

query = "When is Apple's conference call scheduled?"

Далее преобразуйте его в эмбеддинг и выполните поиск ближайшего соседа, чтобы найти наиболее релевантный документ на основе расстояния в пространстве эмбеддингов.

import numpy as np

# Получаем эмбеддинг запроса
query_embd = vo.embed([query], model="voyage-4", input_type="query").embeddings[0]

# Вычисляем сходство
# Эмбеддинги Voyage AI нормализованы к длине 1, поэтому скалярное произведение
# и косинусное сходство совпадают.
similarities = np.dot(doc_embds, query_embd)

retrieved_id = np.argmax(similarities)
print(documents[retrieved_id])

Обратите внимание, что input_type="document" и input_type="query" используются для создания эмбеддингов документа и запроса соответственно. Подробнее о input_type см. Когда и как следует использовать параметр input_type? в разделе часто задаваемых вопросов.

Результатом будет пятый документ, который действительно наиболее релевантен запросу:

Apple's conference call to discuss fourth fiscal quarter results and business updates is scheduled for Thursday, November 2, 2023 at 2:00 p.m. PT / 5:00 p.m. ET.

Если вы ищете подробный набор рецептов по реализации RAG с эмбеддингами, включая векторные базы данных, ознакомьтесь с рецептом RAG.

Часто задаваемые вопросы

Цены

Самую актуальную информацию о ценах см. в разделе Model pricing документации MongoDB.

Was this page helpful?