FAQ Operativas
¿Qué pasa si no puedo extraer la imagen Docker de Milvus de Docker Hub?
Si no puede extraer la imagen Docker de Milvus del Docker Hub, intente añadir otras réplicas del registro.
Los usuarios de China continental pueden añadir la URL "https://registry.docker-cn.com" a la matriz registry-mirrors en /etc.docker/daemon.json.
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
¿Es Docker la única forma de instalar y ejecutar Milvus?
Docker es una forma eficiente de desplegar Milvus, pero no la única. También puede desplegar Milvus desde el código fuente. Esto requiere Ubuntu (18.04 o superior) o CentOS (7 o superior). Vea Construir Milvus desde el código fuente para más información.
¿Cuáles son los principales factores que afectan a la recuperación?
La recuperación se ve afectada principalmente por el tipo de índice y los parámetros de búsqueda.
Para índices FLAT, Milvus realiza una búsqueda exhaustiva dentro de una colección, con un retorno del 100%.
En los índices IVF, el parámetro nprobe determina el alcance de la búsqueda dentro de la colección. Aumentar nprobe aumenta la proporción de vectores buscados y la recuperación, pero disminuye el rendimiento de la consulta.
En los índices HNSW, el parámetro ef determina la amplitud de la búsqueda en el grafo. Aumentar ef incrementa el número de puntos buscados en el gráfico y la recuperación, pero disminuye el rendimiento de la consulta.
Para más información, véase Indexación vectorial.
¿Por qué no surten efecto mis cambios en los archivos de configuración?
Milvus no soporta la modificación de los archivos de configuración durante el tiempo de ejecución. Debe reiniciar Milvus Docker para que los cambios en los archivos de configuración surtan efecto.
¿Cómo sé si Milvus se ha iniciado correctamente?
Si Milvus se inicia utilizando Docker Compose, ejecute docker ps
para observar cuántos contenedores Docker se están ejecutando y comprobar si los servicios de Milvus se han iniciado correctamente.
Para Milvus standalone, debería poder observar al menos tres contenedores Docker en ejecución, siendo uno el servicio Milvus y los otros dos la gestión etcd y el servicio de almacenamiento. Para obtener más información, consulte Instalación de Milvus Standalone.
¿Por qué la hora en los archivos de registro es diferente de la hora del sistema?
La diferencia horaria suele deberse a que la máquina anfitriona no utiliza el Tiempo Universal Coordinado (UTC).
Los archivos de registro dentro de la imagen Docker utilizan UTC por defecto. Si su máquina anfitriona no utiliza UTC, puede ocurrir este problema.
¿Cómo sé si mi CPU soporta Milvus?
Las operaciones de computación de Milvus dependen de la compatibilidad de la CPU con el conjunto de instrucciones de extensión SIMD (Single Instruction, Multiple Data). Que su CPU soporte el conjunto de instrucciones de extensión SIMD es crucial para la construcción de índices y la búsqueda de similitud vectorial en Milvus. Asegúrese de que su CPU soporta al menos uno de los siguientes conjuntos de instrucciones SIMD:
- SSE4.2
- AVX
- AVX2
- AVX512
Ejecute el comando lscpu para comprobar si su CPU soporta los conjuntos de instrucciones SIMD mencionados anteriormente:
$ lscpu | grep -e sse4_2 -e avx -e avx2 -e avx512
¿Por qué Milvus devuelve illegal instruction
durante el arranque?
Milvus requiere que su CPU soporte un conjunto de instrucciones SIMD: SSE4.2, AVX, AVX2, o AVX512. La CPU debe soportar al menos uno de estos conjuntos para asegurar que Milvus funciona con normalidad. Un error illegal instruction
devuelto durante el arranque sugiere que su CPU no soporta ninguno de los cuatro conjuntos de instrucciones anteriores.
Consulte la compatibilidad de la CPU con el conjunto de instrucciones SIMD.
¿Puedo instalar Milvus en Windows?
Sí. Puede instalar Milvus en Windows compilando desde el código fuente o desde un paquete binario.
Consulte Ejecutar Milvus en Windows para saber cómo instalar Milvus en Windows.
Obtuve un error al instalar pymilvus en Windows. ¿Qué debo hacer?
No se recomienda instalar PyMilvus en Windows. Pero si tiene que instalar PyMilvus en Windows pero obtiene un error, intente instalarlo en un entorno Conda. Vea Instalar Milvus SDK para más información sobre cómo instalar PyMilvus en el entorno Conda.
¿Puedo desplegar Milvus cuando estoy desconectado de Internet?
Sí. Puede instalar Milvus en un entorno sin conexión. Vea Instalar Milvus sin conexión para más información.
¿Dónde puedo encontrar los registros generados por Milvus?
El registro de Milvus se imprime en stout (salida estándar) y stderr (error estándar) por defecto, sin embargo recomendamos encarecidamente redirigir su registro a un volumen persistente en producción. Para ello, actualice log.file.rootPath
en milvus.yaml. Y si despliega Milvus con el gráfico milvus-helm
, también necesita habilitar primero la persistencia del registro a través de --set log.persistence.enabled=true
.
Si no ha cambiado la configuración, el uso de kubectl logs <pod-name> o docker logs CONTAINER también puede ayudarle a encontrar el registro.
¿Puedo crear un índice para un segmento antes de insertar datos en él?
Sí, se puede. Pero recomendamos insertar los datos en lotes, cada uno de los cuales no debe superar los 256 MB, antes de indexar cada segmento.
¿Puedo compartir una instancia etcd entre varias instancias Milvus?
Sí, puede compartir una instancia etcd entre varias instancias Milvus. Para ello, debe cambiar etcd.rootPath
a un valor distinto para cada instancia Milvus en los archivos de configuración de cada una antes de iniciarlas.
¿Puedo compartir una instancia Pulsar entre varias instancias Milvus?
Sí, puede compartir una instancia Pulsar entre varias instancias Milvus. Para ello, puede
- Si el multi-tenancy está habilitado en su instancia Pulsar, considere asignar un tenant o espacio de nombres separado para cada instancia Milvus. Para ello, debe cambiar
pulsar.tenant
opulsar.namespace
en los archivos de configuración de sus instancias Milvus a un valor único para cada una antes de iniciarlas. - Si no planea habilitar multi-tenancy en su instancia Pulsar, considere cambiar
msgChannel.chanNamePrefix.cluster
en los archivos de configuración de sus instancias Milvus a un valor único para cada una antes de iniciarlas.
¿Puedo compartir una instancia MinIO entre varias instancias Milvus?
Sí, puede compartir una instancia MinIO entre varias instancias Milvus. Para ello, debe cambiar minio.rootPath
a un valor único para cada instancia de Milvus en los archivos de configuración de cada una antes de iniciarlas.
¿Cómo manejo el mensaje de error pymilvus.exceptions.ConnectionConfigException: <ConnectionConfigException: (code=1, message=Illegal uri: [example.db], expected form 'https://user:pwd@example.com:12345')>
?
El mensaje de error Illegal uri [example.db]
indica que está intentando conectarse a Milvus Lite utilizando una versión anterior de PyMilvus que no soporta este tipo de conexión. Para resolver este problema, actualice su instalación de PyMilvus al menos a la versión 2.4.2, que incluye soporte para conectarse a Milvus Lite.
Puede actualizar PyMilvus utilizando el siguiente comando:
pip install pymilvus>=2.4.2
¿Por qué obtengo menos resultados que los de limit
que he establecido en mi búsqueda/consulta?
Hay varias razones por las que puede recibir menos resultados que el limit
que especificó:
Datos limitados: Es posible que la colección no tenga suficientes entidades para alcanzar el límite solicitado. Si el número total de entidades de la colección es inferior al límite, naturalmente recibirá menos resultados.
Claves primarias duplicadas: Milvus da prioridad a entidades específicas cuando encuentra claves primarias duplicadas durante una búsqueda. Este comportamiento varía en función del tipo de búsqueda:
Consulta (Coincidencia exacta): Milvus selecciona la última entidad con la PK coincidente. Búsqueda RNA: Milvus selecciona la entidad con la puntuación de similitud más alta, incluso si las entidades comparten el mismo PK. Esta priorización puede dar lugar a menos resultados únicos que el límite si su colección tiene muchas claves primarias duplicadas.
Coincidencias insuficientes: Es posible que las expresiones de filtrado de la búsqueda sean demasiado estrictas, por lo que habrá menos entidades que cumplan el umbral de similitud. Si las condiciones establecidas para la búsqueda son demasiado restrictivas, no coincidirán suficientes entidades, lo que dará lugar a menos resultados de los esperados.
MilvusClient("milvus_demo.db") gives an error: ModuleNotFoundError: No module named 'milvus_lite'
. ¿Cuál es la causa y cómo puede solucionarse?
Este error se produce cuando intenta utilizar Milvus Lite en una plataforma Windows. Milvus Lite está diseñado principalmente para entornos Linux y puede no tener soporte nativo para Windows.
La solución es utilizar un entorno Linux:
- Utilice un sistema operativo basado en Linux o una máquina virtual para ejecutar Milvus Lite.
- Este enfoque garantizará la compatibilidad con las dependencias y la funcionalidad de la biblioteca.
¿Qué son los errores "la longitud excede la longitud máxima" en Milvus, y cómo pueden entenderse y solucionarse?
Los errores "La longitud excede la longitud máxima" en Milvus se producen cuando el tamaño de un elemento de datos supera el tamaño máximo permitido para una colección o campo. He aquí algunos ejemplos y explicaciones:
Error de campo JSON:
<MilvusException: (code=1100, message=the length (398324) of json field (metadata) exceeds max length (65536): expected=valid length json string, actual=length exceeds max length: invalid parameter)>
Error de longitud de cadena:
<ParamError: (code=1, message=invalid input, length of string exceeds max length. length: 74238, max length: 60535)>
Error de campo VarChar:
<MilvusException: (code=1100, message=the length (60540) of 0th VarChar paragraph exceeds max length (0)%!(EXTRA int64=60535): invalid parameter)>
Para entender y solucionar estos errores
- Comprenda que
len(str)
en Python representa el número de caracteres, no el tamaño en bytes. - Para tipos de datos basados en cadenas como VARCHAR y JSON, utilice
len(bytes(str, encoding='utf-8'))
para determinar el tamaño real en bytes, que es lo que Milvus utiliza para "max-length".
Ejemplo en Python:
# Python Example: result of len() str cannot be used as "max-length" in Milvus
>>> s = "你好,世界!"
>>> len(s) # Number of characters of s.
6
>>> len(bytes(s, "utf-8")) # Size in bytes of s, max-length in Milvus.
18
¿Todavía tiene preguntas?
Puede hacerlo:
- Echa un vistazo a Milvus en GitHub. Siéntase libre de hacer preguntas, compartir ideas y ayudar a otros.
- Únase a nuestro Foro Milvus o Canal Slack para encontrar apoyo y participar con nuestra comunidad de código abierto.