milvus-logo
LFAI
Home
  • Comenzar
    • Instalar Milvus

Ejecutar Milvus Lite localmente

Esta página ilustra cómo ejecutar Milvus localmente con Milvus Lite. Milvus Lite es la versión ligera de Milvus, una base de datos vectorial de código abierto que potencia las aplicaciones de IA con incrustaciones vectoriales y búsqueda de similitud.

Visión general

Milvus Lite puede importarse en su aplicación Python, proporcionando la funcionalidad de búsqueda vectorial central de Milvus. Milvus Lite ya está incluido en el SDK Python de Milvus. Puede ser simplemente desplegado con pip install pymilvus.

Con Milvus Lite, ¡puede empezar a construir una aplicación de IA con búsqueda de similitud vectorial en cuestión de minutos! Milvus Lite es bueno para ejecutarse en el siguiente entorno:

  • Jupyter Notebook / Google Colab
  • Portátiles
  • Dispositivos Edge

Milvus Lite comparte la misma API con Milvus Standalone y Distributed, y cubre la mayoría de las características como la persistencia y gestión de datos vectoriales, operaciones CRUD vectoriales, búsqueda vectorial dispersa y densa, filtrado de metadatos, búsqueda multivectorial e híbrida. Juntos, proporcionan una experiencia coherente en distintos tipos de entornos, desde dispositivos de borde hasta clústeres en la nube, adaptándose a casos de uso de distinto tamaño. Con el mismo código del lado del cliente, puede ejecutar aplicaciones GenAI con Milvus Lite en un portátil o Jupyter Notebook, o Milvus Standalone en un contenedor Docker, o Milvus Distributed en un clúster Kubernetes a escala masiva que sirve miles de millones de vectores en producción.

Requisitos previos

Milvus Lite actualmente soporta los siguientes entornos:

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

Tenga en cuenta que Milvus Lite sólo es adecuado para casos de uso de búsqueda vectorial a pequeña escala. Para un caso de uso a gran escala, recomendamos utilizar Milvus Standalone o Milvus Distributed. También puede considerar Milvus totalmente gestionado en Zilliz Cloud.

Configurar Milvus Lite

pip install -U pymilvus

Recomendamos utilizar pymilvus. Dado que milvus-lite está incluido en pymilvus versión 2.4.2 o superior, puede pip install con -U para forzar la actualización a la última versión y milvus-lite se instala automáticamente.

Si desea instalar explícitamente el paquete milvus-lite, o tiene instalada una versión anterior de milvus-lite y desea actualizarla, puede hacerlo con pip install -U milvus-lite.

Conectarse a Milvus Lite

En pymilvus, especifique un nombre de archivo local como parámetro uri de MilvusClient utilizará Milvus Lite.

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

Después de ejecutar el fragmento de código anterior, se generará un archivo de base de datos llamado milvus_demo.db en la carpeta actual.

NOTA: Tenga en cuenta que la misma API también se aplica a Milvus Standalone, Milvus Distributed y Zilliz Cloud, la única diferencia es sustituir el nombre del archivo local por el punto final del servidor remoto y las credenciales, por ejemploclient = MilvusClient(uri="http://localhost:19530", token="username:password").

Ejemplos

A continuación se muestra una sencilla demostración de cómo utilizar Milvus Lite para la búsqueda de texto. Hay ejemplos más completos para usar Milvus Lite para construir aplicaciones como RAG, búsqueda de imágenes, y el uso de Milvus Lite en el popular marco RAG como LangChain y 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)

Límites

Cuando ejecute Milvus Lite, tenga en cuenta que algunas características no están soportadas. Las siguientes tablas resumen los límites de uso de Milvus Lite.

Colección

Método / ParámetroSoportado en Milvus Lite
crear_colección()Soporte con parámetros limitados
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 (Sólo admite Strong; Cualquier configuración será tratada como Strong.)
get_collection_stats()Admite la obtención de estadísticas de colección.
collection_nameY
timeoutY
describe_collection()num_shards consistency_level y en la respuesta no son válidos. collection_id
timeoutY
has_collection()Permite comprobar si existe una colección.
collection_nameY
timeoutY
list_collections()Permite listar todas las colecciones.
soltar_colección()Permite eliminar una colección.
collection_nameY
timeoutY
renombrar_colección()No permite renombrar una colección.

Campo y esquema

Método / ParámetroSoportado en Milvus Lite
crear_esquema()Soporte con parámetros limitados
auto_idY
enable_dynamic_fieldY
primary_fieldY
partition_key_fieldN
add_field()Soporte con parámetros limitados
field_nameY
datatypeY
is_primaryY
max_lengthY
element_typeY
max_capacityY
dimY
is_partition_keyN
Método / ParámetroSoportado en Milvus Lite
buscar()Soporte con parámetros limitados
collection_nameY
dataY
filterY
limitY
output_fieldsY
search_paramsY
timeoutY
partition_namesN
anns_fieldY
consulta()Soporte con parámetros limitados
collection_nameY
filterY
output_fieldsY
timeoutY
idsY
partition_namesN
get()Soporte con parámetros limitados
collection_nameY
idsY
output_fieldsY
timeoutY
partition_namesN
eliminar()Soporte con parámetros limitados
collection_nameY
idsY
timeoutY
filterY
partition_nameN
insertar()Soporte con parámetros limitados
collection_nameY
dataY
timeoutY
partition_nameN
upsert()Soporte con parámetros limitados
collection_nameY
dataY
timeoutY
partition_nameN

Carga y liberación

Método / ParámetroSoportado en Milvus Lite
load_collection()Y
collection_nameY
timeoutY
liberar_colección()Y
collection_nameY
timeoutY
obtener_estado_carga()No se admite la obtención del estado de carga.
refresh_load()No es posible cargar los datos descargados de una colección cargada.
cerrar()Y

Índice

Método / ParámetroSoportado en Milvus Lite
list_indexes()Se admite el listado de índices.
collection_nameY
field_nameY
crear_índice()Sólo admite el tipo de índice FLAT.
index_paramsY
timeoutY
drop_index()Admite la eliminación de índices.
collection_nameY
index_nameY
timeoutY
describir_índice()Se admite la descripción de índices.
collection_nameY
index_nameY
timeoutY

Tipos de índice vectorial

Milvus Lite sólo admite el tipo de índice FLAT. Utiliza el tipo FLAT independientemente del tipo de índice especificado en la colección.

Características de búsqueda

Milvus Lite admite vectores dispersos, multivectores y búsqueda híbrida.

Partición

Milvus Lite no soporta particiones ni métodos relacionados con particiones.

Usuarios y roles

Milvus Lite no soporta usuarios y roles y métodos relacionados.

Alias

Milvus Lite no soporta alias ni métodos relacionados con alias.

Migración de datos desde Milvus Lite

Todos los datos almacenados en Milvus Lite se pueden exportar y cargar fácilmente en otros tipos de despliegue de Milvus, como Milvus Standalone en Docker, Milvus Distributed en K8s, o Milvus totalmente gestionado en Zilliz Cloud.

Milvus Lite proporciona una herramienta de línea de comandos que puede volcar datos en un archivo json, que puede ser importado en milvus y Zilliz Cloud(el servicio de nube totalmente gestionado para Milvus). El comando milvus-lite se instalará junto con el paquete python milvus-lite.

# 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

El siguiente ejemplo vuelca todos los datos de la colección demo_collection almacenados en ./milvus_demo.db (archivo de base de datos de Milvus Lite)

Para exportar datos:

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

Con el archivo de volcado, puede cargar datos a Zilliz Cloud a través de Data Import, o cargar datos a servidores Milvus a través de Bulk Insert.

Lo que sigue

Una vez conectado a Milvus Lite, puede:

Traducido porDeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

¿Fue útil esta página?