Mistral#
Platform V Vector DB (далее - Vector DB) совместим с недавно выпущенным Mistral Embed и его официальным Python SDK, который можно установить так же, как любой другой пакет.
Настройка#
Установка клиента#
pip install mistralai
А затем настройте:
from mistralai.client import MistralClient
from qdrant_client import QdrantClient
from qdrant_client.models import PointStruct, VectorParams, Distance
collection_name = "example_collection"
MISTRAL_API_KEY = "your_mistral_api_key"
client = QdrantClient(":memory:")
mistral_client = MistralClient(api_key=MISTRAL_API_KEY)
texts = [
"Qdrant is the best vector search engine!",
"Loved by Enterprises and everyone building for low latency, high performance, and scale.",
]
Посомтрите, как использовать API модели встраивания для вложения документа для поиска.
Следующий пример показывает, как встроить документ с помощью models/embedding-001 с типом задачи retrieval_document:
Встраивание документа#
result = mistral_client.embeddings(
model="mistral-embed",
input=texts,
)
Возвращенный результат имеет поле данных с ключом: embedding. Значение этого ключа представляет собой список чисел с плавающей запятой, представляющих встраивание документа.
Преобразование в точки Vector DB#
points = [
PointStruct(
id=idx,
vector=response.embedding,
payload={"text": text},
)
for idx, (response, text) in enumerate(zip(result.data, texts))
]
Создание коллекции и вставка документов#
client.create_collection(collection_name, vectors_config=VectorParams(
size=1024,
distance=Distance.COSINE,
)
)
client.upsert(collection_name, points)
Поиск документов с использованием Vector DB#
Когда документы проиндексированы, можно искать наиболее релевантные документы, используя ту же модель с типом задачи retrieval_query:
client.search(
collection_name=collection_name,
query_vector=mistral_client.embeddings(
model="mistral-embed", input=["What is the best to use for vector search scaling?"]
).data[0].embedding,
)
Использование моделей встраивания Mistral с двоичной квантизацией#
Можно использовать модели встраивания Mistral с двоичной квантизацией — техникой, позволяющей уменьшить размер вложений в 32 раза без значительной потери качества результатов поиска.
При избыточной выборке 3 и лимите 100 имеется 95%-ный отзыв по точным ближайшим соседям при включенной переранжировке.
Избыточная выборка |
1 |
1 |
2 |
2 |
3 |
3 |
|
|---|---|---|---|---|---|---|---|
Переранжировка |
False |
True |
False |
True |
False |
True |
|
Лимит |
|||||||
10 |
0.53444 |
0.857778 |
0.534444 |
0.918889 |
0.533333 |
0.941111 |
|
20 |
0.508333 |
0.837778 |
0.508333 |
0.903889 |
0.508333 |
0.927778 |
|
50 |
0.492222 |
0.834444 |
0.492222 |
0.903556 |
0.492889 |
0.940889 |
|
100 |
0.499111 |
0.845444 |
0.498556 |
0.918333 |
0.497667 |
0.944556 |