🚀 Попробуйте Zilliz Cloud, полностью управляемый Milvus, бесплатно — ощутите 10-кратное увеличение производительности! Попробовать сейчас>

milvus-logo
LFAI
Главная
  • Начать
    • Установить Милвус
  • Home
  • Docs
  • Начать

  • Установить Милвус

  • Запустить Milvus Lite

Запуск Milvus Lite локально

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

Обзор

Milvus Lite может быть импортирован в ваше Python-приложение, обеспечивая основную функциональность векторного поиска Milvus. Milvus Lite уже включен в Python SDK Milvus. Его можно просто развернуть с помощью pip install pymilvus.

С Milvus Lite вы можете начать создавать ИИ-приложение с векторным поиском сходства в течение нескольких минут! Milvus Lite подходит для работы в следующих средах:

  • Jupyter Notebook / Google Colab
  • Ноутбуки
  • Граничные устройства

Milvus Lite использует тот же API, что и Milvus Standalone и Distributed, и охватывает большинство функций, таких как сохранение и управление векторными данными, векторные CRUD-операции, поиск по разреженным и плотным векторам, фильтрация метаданных, мультивекторный и гибридный_поиск. Вместе они обеспечивают согласованную работу в различных типах сред, от пограничных устройств до кластеров в облаке, и подходят для сценариев использования разного размера. Используя один и тот же код на стороне клиента, вы можете запускать приложения GenAI с Milvus Lite на ноутбуке или Jupyter Notebook, Milvus Standalone в контейнере Docker или Milvus Distributed на огромном кластере Kubernetes, обслуживающем миллиарды векторов в производстве.

Необходимые условия

В настоящее время Milvus Lite поддерживает следующие среды:

  • Ubuntu >= 20.04 (x86_64 и arm64)
  • MacOS >= 11.0 (Apple Silicon M1/M2 и x86_64)

Обратите внимание, что Milvus Lite подходит только для небольших случаев использования векторного поиска. Для крупномасштабных задач мы рекомендуем использовать Milvus Standalone или Milvus Distributed. Вы также можете рассмотреть вариант полностью управляемого Milvus на Zilliz Cloud.

Настройка Milvus Lite

pip install -U pymilvus

Мы рекомендуем использовать pymilvus. Поскольку milvus-lite включен в pymilvus версии 2.4.2 или выше, вы можете pip install с -U для принудительного обновления до последней версии, и milvus-lite будет установлен автоматически.

Если вы хотите явно установить пакет milvus-lite, или вы установили старую версию milvus-lite и хотите ее обновить, вы можете сделать это с помощью pip install -U milvus-lite.

Подключение к Milvus Lite

В pymilvus укажите локальное имя файла в качестве параметра uri MilvusClient для использования Milvus Lite.

from pymilvus import MilvusClient
client = MilvusClient("./milvus_demo.db")

После выполнения приведенного выше фрагмента кода в текущей папке будет создан файл базы данных с именем milvus_demo.db.

ПРИМЕЧАНИЕ: Обратите внимание, что тот же самый API также применим к Milvus Standalone, Milvus Distributed и Zilliz Cloud, единственное различие заключается в замене локального имени файла на конечную точку удаленного сервера и учетные данные, напримерclient = MilvusClient(uri="http://localhost:19530", token="username:password").

Примеры

Ниже приведен простой демонстрационный пример использования Milvus Lite для текстового поиска. Есть и более подробные примеры использования Milvus Lite для создания приложений, таких как RAG, поиск изображений, а также использование Milvus Lite в популярных фреймворках RAG, таких как LangChain и LlamaIndex!

from pymilvus import MilvusClient
import numpy as np

client = MilvusClient("./milvus_demo.db")
client.create_collection(
    collection_name="demo_collection",
    dimension=384  # The vectors we will use in this demo has 384 dimensions
)

# Text strings to search from.
docs = [
    "Artificial intelligence was founded as an academic discipline in 1956.",
    "Alan Turing was the first person to conduct substantial research in AI.",
    "Born in Maida Vale, London, Turing was raised in southern England.",
]
# For illustration, here we use fake vectors with random numbers (384 dimension).

vectors = [[ np.random.uniform(-1, 1) for _ in range(384) ] for _ in range(len(docs)) ]
data = [ {"id": i, "vector": vectors[i], "text": docs[i], "subject": "history"} for i in range(len(vectors)) ]
res = client.insert(
    collection_name="demo_collection",
    data=data
)

# This will exclude any text in "history" subject despite close to the query vector.
res = client.search(
    collection_name="demo_collection",
    data=[vectors[0]],
    filter="subject == 'history'",
    limit=2,
    output_fields=["text", "subject"],
)
print(res)

# a query that retrieves all entities matching filter expressions.
res = client.query(
    collection_name="demo_collection",
    filter="subject == 'history'",
    output_fields=["text", "subject"],
)
print(res)

# delete
res = client.delete(
    collection_name="demo_collection",
    filter="subject == 'history'",
)
print(res)

Ограничения

При использовании Milvus Lite обратите внимание, что некоторые функции не поддерживаются. В следующих таблицах приведены ограничения на использование Milvus Lite.

Коллекция

Метод/параметрПоддерживается в Milvus Lite
create_collection()Поддержка с ограниченными параметрами
collection_nameY
dimensionY
primary_field_nameY
id_typeY
vector_field_nameY
metric_typeY
auto_idY
schemaY
index_paramsY
enable_dynamic_fieldY
num_shardsN
partition_key_fieldN
num_partitionsN
consistency_levelN (Поддерживается только Strong; любая конфигурация будет рассматриваться как Strong).
get_collection_stats()Поддерживает получение статистики коллекции.
collection_nameY
timeoutY
describe_collection()num_shards, consistency_level и collection_id в ответе недействительны.
timeoutY
has_collection()Поддерживает проверку существования коллекции.
collection_nameY
timeoutY
list_collections()Поддерживает вывод списка всех коллекций.
drop_collection()Поддерживает сброс коллекции.
collection_nameY
timeoutY
переименовать_коллекцию()Переименование коллекции не поддерживается.

Поле и схема

Метод / параметрПоддерживается в Milvus Lite
create_schema()Поддержка с ограниченными параметрами
auto_idY
enable_dynamic_fieldY
primary_fieldY
partition_key_fieldN
add_field()Поддержка с ограниченными параметрами
field_nameY
datatypeY
is_primaryY
max_lengthY
element_typeY
max_capacityY
dimY
is_partition_keyN
Метод / параметрПоддерживается в Milvus Lite
поиск()Поддержка с ограниченными параметрами
collection_nameY
dataY
filterY
limitY
output_fieldsY
search_paramsY
timeoutY
partition_namesN
anns_fieldY
query()Поддержка ограниченных параметров
collection_nameY
filterY
output_fieldsY
timeoutY
idsY
partition_namesN
get()Поддержка с ограниченными параметрами
collection_nameY
idsY
output_fieldsY
timeoutY
partition_namesN
delete()Поддержка с ограниченными параметрами
collection_nameY
idsY
timeoutY
filterY
partition_nameN
insert()Поддержка с ограниченными параметрами
collection_nameY
dataY
timeoutY
partition_nameN
upsert()Поддержка с ограниченными параметрами
collection_nameY
dataY
timeoutY
partition_nameN

Загрузка и освобождение

Метод / параметрПоддерживается в Milvus Lite
load_collection()Y
collection_nameY
timeoutY
release_collection()Y
collection_nameY
timeoutY
get_load_state()Получение состояния загрузки не поддерживается.
refresh_load()Загрузка выгруженных данных загруженной коллекции не поддерживается.
close()Y

Индекс

Метод / параметрПоддерживается в Milvus Lite
list_indexes()Поддерживается перечисление индексов.
collection_nameY
field_nameY
create_index()Поддерживается только тип индекса FLAT.
index_paramsY
timeoutY
drop_index()Поддерживается сбрасывание индексов.
collection_nameY
index_nameY
timeoutY
describe_index()Поддерживается описание индексов.
collection_nameY
index_nameY
timeoutY

Типы векторных индексов

Milvus Lite поддерживает только тип индекса FLAT. Он использует тип FLAT независимо от указанного типа индекса в коллекции.

Особенности поиска

Milvus Lite поддерживает разреженный векторный, многовекторный и гибридный поиск.

Раздел

Milvus Lite не поддерживает разделы и методы, связанные с разделами.

Пользователи и роли

Milvus Lite не поддерживает пользователей и роли, а также связанные с ними методы.

Псевдоним

Milvus Lite не поддерживает псевдонимы и методы, связанные с псевдонимами.

Перенос данных из Milvus Lite

Все данные, хранящиеся в Milvus Lite, можно легко экспортировать и загрузить в другие типы развертывания Milvus, такие как Milvus Standalone на Docker, Milvus Distributed на K8s или полностью управляемый Milvus на Zilliz Cloud.

Milvus Lite - это инструмент командной строки, который позволяет сбрасывать данные в json-файл, который можно импортировать в milvus и Zilliz Cloud(полностью управляемый облачный сервис для Milvus). Команда milvus-lite будет установлена вместе с пакетом milvus-lite python.

# Install
pip install -U "pymilvus[bulk_writer]"

milvus-lite dump -h

usage: milvus-lite dump [-h] [-d DB_FILE] [-c COLLECTION] [-p PATH]

optional arguments:
  -h, --help            show this help message and exit
  -d DB_FILE, --db-file DB_FILE
                        milvus lite db file
  -c COLLECTION, --collection COLLECTION
                        collection that need to be dumped
  -p PATH, --path PATH  dump file storage dir

В следующем примере выгружаются все данные из коллекции demo_collection, которые хранятся в ./milvus_demo.db (файл базы данных Milvus Lite).

Для экспорта данных:

milvus-lite dump -d ./milvus_demo.db -c demo_collection -p ./data_dir
# ./milvus_demo.db: milvus lite db file
# demo_collection: collection that need to be dumped
#./data_dir : dump file storage dir

С помощью файла дампа вы можете загрузить данные в Zilliz Cloud через Data Import или загрузить данные на серверы Milvus через Bulk Insert.

Что дальше

Подключившись к Milvus Lite, вы можете:

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?