Claude Platform Docs
MessagesВозможности модели

Эмбеддинги

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

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

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

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

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

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

Voyage AI создаёт передовые модели эмбеддингов и предлагает кастомизированные модели для конкретных отраслей, таких как финансы и здравоохранение, а также индивидуально дообученные («fine-tuned») модели для отдельных клиентов.

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

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

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

Voyage 4 (последнее поколение)

МодельДлина контекстаРазмерность эмбеддингаОписание
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-4-nano32 0001024 (по умолчанию), 256, 512, 2048Модель с открытыми весами (лицензия Apache 2.0), доступная на Hugging Face. Подробности см. в публикации в блоге о Voyage 4.

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

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

Кроме того, Voyage рекомендует следующие мультимодальные модели эмбеддингов:

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

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

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

Нужна помощь в выборе модели текстовых эмбеддингов? Ознакомьтесь с FAQ Voyage AI.

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

Чтобы получить доступ к эмбеддингам Voyage:

  1. Зарегистрируйтесь на сайте Voyage AI.
  2. Получите ключ API.
  3. Для удобства задайте ключ API в качестве переменной окружения:
export VOYAGE_API_KEY="<your secret key>"

Вы можете получить эмбеддинги либо с помощью официального Python-пакета voyageai, либо с помощью HTTP-запросов, как описано в следующих разделах.

Библиотека Voyage для Python

Установите пакет voyageai с помощью следующей команды:

pip install -U voyageai

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

import voyageai

vo = voyageai.Client()
# Автоматически используется переменная окружения VOYAGE_API_KEY.
# Либо можно использовать vo = voyageai.Client(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-пакете Voyage см. в документации Python-пакета Voyage.

HTTP API Voyage

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

cURL
curl https://api.voyageai.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"
  }'

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

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

Дополнительную информацию о HTTP API Voyage см. в документации HTTP API Voyage.

AWS Marketplace

Эмбеддинги Voyage доступны на AWS Marketplace. Инструкции по доступу к Voyage на AWS доступны в документации Voyage по AWS Marketplace.

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

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

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

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, чтобы преобразовать каждый документ в вектор эмбеддинга.

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 нормализованы к длине 1, поэтому скалярное произведение
# и косинусное сходство совпадают.
similarities = np.dot(doc_embds, query_embd)

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

Обратите внимание, что input_type="document" и input_type="query" используются для получения эмбеддингов документа и запроса соответственно. Более подробную спецификацию можно найти в разделе Библиотека Voyage для Python.

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

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.

FAQ

Цены

Посетите страницу с ценами Voyage, чтобы получить самую актуальную информацию о ценах.

Was this page helpful?