При выборе поставщика embeddings есть несколько факторов, которые вы можете рассмотреть в зависимости от ваших потребностей и предпочтений:
Anthropic не предлагает собственную модель embeddings. Одним из поставщиков embeddings, который имеет широкий спектр опций и возможностей, охватывающих все вышеупомянутые соображения, является Voyage AI.
Voyage AI создает передовые модели embeddings и предлагает настраиваемые модели для конкретных отраслей, таких как финансы и здравоохранение, или специально настроенные модели для отдельных клиентов.
Остальная часть этого руководства предназначена для Voyage AI, но мы рекомендуем вам оценить различные поставщиков embeddings, чтобы найти наиболее подходящий вариант для вашего конкретного случая использования.
Voyage рекомендует использовать следующие модели текстовых embeddings:
| Модель | Длина контекста | Размерность Embedding | Описание |
|---|---|---|---|
voyage-3-large | 32,000 | 1024 (по умолчанию), 256, 512, 2048 | Лучшее качество поиска общего назначения и многоязычного поиска. Подробности см. в записи блога. |
voyage-3.5 | 32,000 | 1024 (по умолчанию), 256, 512, 2048 | Оптимизирована для качества поиска общего назначения и многоязычного поиска. Подробности см. в записи блога. |
voyage-3.5-lite | 32,000 | 1024 (по умолчанию), 256, 512, 2048 | Оптимизирована для задержки и стоимости. Подробности см. в записи блога. |
voyage-code-3 | 32,000 | 1024 (по умолчанию), 256, 512, 2048 | Оптимизирована для поиска кода. Подробности см. в записи блога. |
voyage-finance-2 | 32,000 | 1024 | Оптимизирована для поиска и RAG в области финансов. Подробности см. в записи блога. |
voyage-law-2 | 16,000 | 1024 | Оптимизирована для поиска и RAG в области права и длинного контекста. Также улучшена производительность во всех доменах. Подробности см. в записи блога. |
Кроме того, рекомендуются следующие мультимодальные модели embeddings:
| Модель | Длина контекста | Размерность Embedding | Описание |
|---|---|---|---|
voyage-multimodal-3 | 32000 | 1024 | Богатая мультимодальная модель embeddings, которая может векторизировать чередующийся текст и содержательные изображения, такие как скриншоты PDF-файлов, слайды, таблицы, рисунки и многое другое. Подробности см. в записи блога. |
Нужна помощь в выборе модели текстовых embeddings? Ознакомьтесь с FAQ.
Для доступа к embeddings Voyage:
export VOYAGE_API_KEY="<your secret key>"Вы можете получить embeddings, используя либо официальный пакет voyageai Python, либо HTTP-запросы, как описано ниже.
Пакет voyageai можно установить с помощью следующей команды:
pip install -U voyageaiЗатем вы можете создать объект клиента и начать использовать его для встраивания ваших текстов:
import voyageai
vo = voyageai.Client()
# This will automatically use the environment variable VOYAGE_API_KEY.
# Alternatively, you can use vo = voyageai.Client(api_key="<your secret key>")
texts = ["Sample text 1", "Sample text 2"]
result = vo.embed(texts, model="voyage-3.5", input_type="document")
print(result.embeddings[0])
print(result.embeddings[1])result.embeddings будет списком двух векторов embeddings, каждый содержащий 1024 числа с плавающей точкой. После выполнения приведенного выше кода два embeddings будут выведены на экран:
[-0.013131560757756233, 0.019828535616397858, ...] # embedding for "Sample text 1"
[-0.0069352793507277966, 0.020878976210951805, ...] # embedding for "Sample text 2"При создании embeddings вы можете указать несколько других аргументов для функции embed().
Для получения дополнительной информации о пакете Voyage Python см. документацию Voyage.
Вы также можете получить embeddings, запросив HTTP API Voyage. Например, вы можете отправить HTTP-запрос через команду 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-3.5"
}'Ответ, который вы получите, — это объект JSON, содержащий embeddings и использование токенов:
{
"object": "list",
"data": [
{
"embedding": [-0.013131560757756233, 0.019828535616397858, ...],
"index": 0
},
{
"embedding": [-0.0069352793507277966, 0.020878976210951805, ...],
"index": 1
}
],
"model": "voyage-3.5",
"usage": {
"total_tokens": 10
}
}
Для получения дополнительной информации о HTTP API Voyage см. документацию Voyage.
Embeddings Voyage доступны на AWS Marketplace. Инструкции по доступу к Voyage на AWS доступны здесь.
Теперь, когда мы знаем, как получить embeddings, давайте посмотрим на краткий пример.
Предположим, у нас есть небольшой корпус из шести документов для поиска
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 для преобразования каждого из них в вектор embeddings
import voyageai
vo = voyageai.Client()
# Embed the documents
doc_embds = vo.embed(
documents, model="voyage-3.5", input_type="document"
).embeddingsEmbeddings позволят нам выполнять семантический поиск / поиск в векторном пространстве. Учитывая пример запроса,
query = "When is Apple's conference call scheduled?"мы преобразуем его в embedding и проводим поиск ближайшего соседа, чтобы найти наиболее релевантный документ на основе расстояния в пространстве embeddings.
import numpy as np
# Embed the query
query_embd = vo.embed(
[query], model="voyage-3.5", input_type="query"
).embeddings[0]
# Compute the similarity
# Voyage embeddings are normalized to length 1, therefore dot-product
# and cosine similarity are the same.
similarities = np.dot(doc_embds, query_embd)
retrieved_id = np.argmax(similarities)
print(documents[retrieved_id])Обратите внимание, что мы используем input_type="document" и input_type="query" для встраивания документа и запроса соответственно. Более подробные спецификации можно найти здесь.
Результат будет 5-й документ, который действительно наиболее релевантен запросу:
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 с embeddings, включая векторные базы данных, ознакомьтесь с нашей кулинарной книгой RAG.
Посетите страницу цен Voyage для получения наиболее актуальной информации о ценах.
Was this page helpful?