При выборе поставщика 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, запросив Voyage HTTP API. Например, вы можете отправить 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
}
}Для получения дополнительной информации о Voyage HTTP API см. документацию Voyage.
Embeddings Voyage доступны на AWS Marketplace. Инструкции по доступу к Voyage на AWS доступны в документации Voyage AWS Marketplace.
Следующий краткий пример показывает, как использовать 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?"Затем преобразуйте его в embeddings и проведите поиск ближайшего соседа, чтобы найти наиболее релевантный документ на основе расстояния в пространстве 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" используются для встраивания документа и запроса соответственно. Более подробные спецификации можно найти в разделе пакета Voyage Python.
Результатом будет 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?