Aiqbee Hive
Iniciar sesión
Ayuda

Búsqueda e idiomas

Elección del modelo de incrustación, contenido que no está en inglés y cómo cambiarlo más adelante.

Hive vectoriza cada neurona con un modelo de incrustación local, de modo que la búsqueda semántica funciona sin enviar su contenido a ninguna API de terceros. El modelo que use determina lo bien que funciona la búsqueda en su idioma.

Dos modelos se incluyen dentro de la imagen. Ninguno se descarga en tiempo de ejecución — tampoco al cambiar entre ellos, por lo que esto funciona en una instalación aislada.

Inglés predeterminadoInternacional
Ajuste EMBEDDING_MODEL=english EMBEDDING_MODEL=international
Modelo nomic-embed-text-v1.5 snowflake-arctic-embed-m-v2.0
Idiomas Inglés Más de 70, incluidos alemán, francés, español, portugués y japonés
Memoria del contenedor 2 GB como mínimo 4 GB como mínimo

Cómo falla el modelo en inglés con otros idiomas

No produce ningún error, y eso es justo lo que hace que valga la pena explicarlo. El contenido en alemán, francés o japonés se acepta, se incrusta y la búsqueda lo devuelve — solo que con menos precisión, de dos maneras concretas.

  • Se eliminan los acentos. El tokenizador del modelo en inglés convierte schön en schon — una palabra alemana distinta. Las diéresis y la ß se pierden antes de que el texto llegue a incrustarse.
  • Las palabras se fragmentan. El alemán cuesta aproximadamente el doble de tokens por carácter en el tokenizador en inglés que en el internacional, por lo que las neuronas largas en otros idiomas agotan antes la ventana de contexto del modelo.

La regla práctica: si una parte significativa de sus neuronas no está en inglés, elija International. Un Brain mayormente en inglés con algún nombre o cita extranjera ocasional funciona bien con el valor predeterminado.

Elección durante la instalación

Defina la variable de entorno al iniciar el contenedor por primera vez:

docker run -d \
  -e DATABASE_URL=... \
  -e ADMIN_PASSWORD=... \
  -e EMBEDDING_MODEL=international \
  --memory 4g \
  aiqbee/hive-server:latest
Aumente también el límite de memoria. El modelo International necesita al menos 4 GB de memoria del contenedor. Con menos, no se cargará o el contenedor fallará bajo carga de búsqueda. No olvide también el orquestador — Container Apps --memory, Kubernetes resources.limits.memory, Compose mem_limit.

Cambiarlo más adelante

EMBEDDING_MODEL se lee solo cuando se configura un Hive por primera vez. Una vez incrustadas las neuronas, se ignora, y editarlo en la configuración de su despliegue solo genera un aviso en la página de Configuración.

Es deliberado: cambiar el modelo implica reprocesar todas las neuronas de todos los Brains, y un nuevo despliegue nunca debe empezar a hacerlo de forma silenciosa. En su lugar, cámbielo desde Configuración → Modelo de embeddings en la interfaz de administración. Verá cuántas neuronas se ven afectadas y una duración estimada antes de confirmar.

Qué ocurre durante el cambio

  • Las neuronas se reprocesan en segundo plano. La búsqueda sigue siendo correcta durante todo el proceso — las neuronas que aún no se han reprocesado se encuentran solo mediante búsqueda por palabras clave, por lo que los resultados son temporalmente más acotados, nunca erróneos.
  • El progreso se muestra en la página de Configuración.
  • Se puede reiniciar el contenedor sin riesgo; el reprocesamiento se reanuda automáticamente.
  • Puede volver a cambiar en cualquier momento. Eso también reprocesa, por lo que no es gratis — pero no se pierde nada.
Planifique el cambio para un período de poca actividad en un Brain grande. Reprocesar un corpus de cien mil neuronas lleva horas con una asignación de CPU modesta. Mientras tanto no se rompe nada; la coincidencia semántica simplemente se reduce hasta que termine.

Búsqueda por palabras clave y texto que no está en inglés

El modelo de embeddings se encarga de la mitad semántica de la búsqueda. La mitad por palabras clave coincide con el propio texto y funciona con caracteres acentuados en cualquiera de los idiomas admitidos por Hive — una búsqueda de Müller coincide con Müller.

Una limitación que conviene conocer para el alemán: la coincidencia por palabras clave encuentra un sustantivo compuesto cuando se busca su terminación (Versicherung coincide con Rechtsschutzversicherung), pero no al revés — buscar el compuesto completo no coincidirá con una neurona que solo mencione sus partes por separado. La mitad semántica es la que salva esa diferencia, otra razón para ejecutar International sobre un corpus en alemán.