Nos complace anunciar el lanzamiento de Couchbase Lite 3.2 con soporte para búsqueda vectorial. Este lanzamiento llega inmediatamente después de soporte de búsqueda vectorial en Capella y Couchbase Server 7.6. Ahora, con soporte de búsqueda vectorial en Couchbase Lite, habilitamos soporte de búsqueda de vectores de la nube al borde que impulsa aplicaciones de IA en la nube y en el borde.
En esta publicación de blog, analizaré los beneficios clave de admitir la búsqueda vectorial en el edge, incluido un vistazo breve a los casos de uso que se encuentran dentro de sus aplicaciones de Couchbase Lite.
¿Qué es la búsqueda vectorial?
Búsqueda vectorial es una técnica para recuperar semánticamente elementos similares basados en incrustación vectorial representaciones de los elementos en un espacio multidimensional. Las métricas de distancia se utilizan para determinar la similitud entre los elementos. La búsqueda vectorial es un componente esencial de Inteligencia artificial generativa y aplicaciones de IA predictiva.
Pila de tecnología de Couchbase Mobile
Si eres nuevo en Couchbase, aquí tienes una breve introducción a Couchbase Mobile.
Couchbase Mobile es un funciona sin conexión, plataforma de base de datos de la nube al borde. Está compuesta por lo siguiente:
Base de datos en la nubeDisponible como una base de datos como servicio totalmente administrada y alojada con Couchbase Capella, o implementar y alojar Servidor Couchbase por tu cuenta.
Base de datos incrustada Couchbase Lite es una base de datos incrustada NoSQL con todas las funciones para aplicaciones móviles, de escritorio y de IoT.
Sincronización de datos: Una pasarela segura para la sincronización de datos a través de la web, así como la sincronización entre pares (P2P) entre dispositivos. Se ofrece como sincronización totalmente alojada y administrada con Servicios de la aplicación Capella, o instalar y administrar Couchbase Sync Gateway tú mismo.
Echa un vistazo a nuestro documentación para más información.
Casos de uso y beneficios de la búsqueda vectorial
Mientras que los beneficios de búsqueda por vectores se entienden bastante bien, ¿por qué querrías búsqueda de vectores en el borde?
Búsqueda semántica en modo sin conexión
Las aplicaciones en las que las búsquedas simples basadas en texto no son suficientes ahora pueden admitir búsquedas semánticas en datos locales para recuperar información contextualmente relevante incluso cuando el dispositivo está en modo sin conexión. Esto garantiza que los resultados de búsqueda estén siempre disponibles.
Ejemplo
Considere una aplicación de campo clásica: los trabajadores de servicios públicos en sitios de reparación y áreas de desastre operan en zonas con conectividad a Internet deficiente o nula:
- Las palabras, línea, cable, alambre son sinónimos de una empresa de servicios públicos. Cuando los trabajadores de servicios públicos en el campo buscan la frase, línea, documentos con cable, alambre también deben ser devueltos.
- Usando la búsqueda de texto completo (FTS), la aplicación tendrá que mantener una lista de sinónimos que es difícil de crear, administrar y mantener.
- La relevancia también es importante. Así que una consulta para: procedimientos de seguridad para cables eléctricos caídos debe centrarse en los manuales relacionados con cables eléctricos caídos, cables de electricidad, líneas de alta tensión, etc.
Aliviar las preocupaciones sobre la privacidad de los datos
Uno de los principales casos de uso de una base de datos de búsqueda vectorial es la capacidad de recuperar datos contextualmente relevantes. Los resultados de la búsqueda se incluyen luego como datos de contexto en las consultas enviadas a un modelo lingüístico grande (LLM) para personalizar las respuestas de las consultas; este es el pilar fundamental de Generación Aumentada por RecuperaciónEjecutar búsquedas en datos que son de naturaleza privada o sensible puede plantear problemas de privacidad. Al realizar búsquedas en un dispositivo local, podemos restringir las búsquedas únicamente a los usuarios que estén autenticados y autorizados para acceder a los datos privados en el dispositivo. Cualquier información de identificación personal (PII) de los resultados de la búsqueda vectorial puede ser redactada y luego aprovechada dentro de la consulta RAG a un LLM.
Además, si se implementa un LLM personalizado en la ubicación periférica, por ejemplo, un hospital o una tienda minorista, cualquier preocupación sobre el envío de los resultados de búsqueda contextualmente relevantes a través de Internet a un servicio en la nube remoto se mitiga aún más.
Ejemplo
Considere el siguiente ejemplo de una aplicación de atención médica:
- Un médico en un hospital busca opciones de tratamiento para un paciente que se está recuperando de una cirugía.
- El contexto relevante del paciente se recupera de la historia clínica y las preferencias. El acceso a estos datos está autenticado y autorizado.
- El contexto del paciente se envía junto con la consulta a un modelo LLM de borde alojado en el hospital, el cual puede generar un plan de recuperación personalizado.
Costo por consulta reducido
Cuando tienes cientos de miles de clientes conectados consultando un LLM basado en la nube, la carga en el modelo en la nube y los costos operativos de ejecutar el modelo basado en la nube pueden ser considerablemente altos. Al ejecutar consultas localmente en el dispositivo, podemos ahorrar en costos de transferencia de datos y cargos de salida de la nube, y también descentralizar los costos operativos.
Ejemplo
Considere el siguiente ejemplo de una aplicación de asistente de servicio al cliente digital:
- Una tienda minorista se sincroniza con un catálogo de productos, precios específicos de la tienda y datos de promociones hacia los quioscos de atención al cliente en la tienda (dispositivo periférico).
- Una usuaria en el quiosco busca un sombrero que combine con la chaqueta que lleva puesta, capturada a través de una cámara. También le interesan los sombreros que están en oferta.
- En lugar de que los quioscos envíen consultas de búsqueda a un servidor remoto, las búsquedas de similitud se realizan localmente, en el quiosco, en el catálogo para encontrar artículos similares que están en oferta.
- Como beneficio adicional, la imagen capturada se puede descartar de inmediato del quiosco, lo que mitiga las preocupaciones sobre la privacidad.
Búsquedas de baja latencia
Las búsquedas ejecutadas localmente en un conjunto de datos local utilizando un modelo integrado eliminarán la variabilidad de la red y serán consistentemente rápidas. Incluso en el caso de que el modelo no esté integrado en el dispositivo local, sino que se implemente en la ubicación perimetral (edge), el tiempo de ida y vuelta (RTT) asociado con las consultas se puede reducir significativamente en comparación con las búsquedas realizadas a través de Internet.
Ejemplo
Revisando la solicitud de la tienda minorista:
- Los documentos del catálogo de productos, de precios específicos por tienda y de promociones que se sincronizan con los quioscos de servicio al cliente incluyen incrustaciones vectoriales. Las incrustaciones vectoriales son generadas por modelos de incrustación de LLM en la nube.
- Los documentos que se sincronizan se indexan localmente en el quiosco.
- Un cliente que se encuentra en el quiosco de la tienda y busca un artículo específico realiza una búsqueda normal de Zapatillas de tenis para mujer Adidas talla 9 y también puede ejecutar un buscar artículos relacionados función haciendo una búsqueda similar entre el producto que fue recuperado usando una búsqueda regular y comparándolo con los documentos de productos restantes. La búsqueda se realiza localmente y es rápida.
- En este caso, mientras que las incrustaciones vectoriales se generan en la nube, la búsqueda de similitud se realiza localmente. De hecho, en esta aplicación en particular, ni siquiera es necesario un modelo de incrustación en la aplicación del quiosco.
Soporte unificado de la nube al borde para la búsqueda de similitud de vectores
Si bien hay consultas que se adaptan mejor a la nube, por razones explicadas anteriormente en la publicación, hay casos en los que las consultas se adaptan mejor al borde. Tener la flexibilidad de ejecutar consultas en la nube, en el borde o en ambas permitirá a los desarrolladores crear aplicaciones que aprovechen lo mejor de ambos mundos.

Ejemplo
- Considere una aplicación de banca móvil en la que el historial de transacciones específico del usuario de los últimos 6 meses se sincroniza y se almacena localmente en el dispositivo
- Un usuario busca transacciones relacionadas con una compra que hizo hace unos meses. La búsqueda se realiza localmente, por lo que es rápida y también está disponible sin conexión.
- Las transacciones relacionadas con todos los usuarios se almacenan en los servidores en la nube, donde su aplicación de detección de fraude utiliza la búsqueda semántica para detectar patrones de actividades fraudulentas.
¡Muéstrame el código!
Ahora que te entusiasman los beneficios de la búsqueda vectorial en tu aplicación de borde, veamos qué se necesita para implementarla. Es bastante sencillo y solo se necesitan unas pocas líneas de código para incorporar el poder de la búsqueda semántica a tu aplicación de borde. El ejemplo a continuación está en Swift, pero revisa la sección de recursos más abajo para ver fragmentos de código en el lenguaje que prefieras.
Creación de un índice vectorial
En este ejemplo, creamos un índice vectorial con los valores predeterminados. Las aplicaciones tienen la opción de personalizar aún más la configuración del índice vectorial con una métrica de distancia diferente, el tipo de codificación del índice y los parámetros de entrenamiento de centroides:
|
1 2 3 4 5 6 |
// crear la configuración del índice vectorial. En el ejemplo, la propiedad del documento “description” está indexada (puede ser cualquier expresión SQL++) var configuración = Configuración de índice vectorial(expresión: “descripción”, dimensiones: 158, centroides: 20) // crear índice de vectores con la configuración especificada Intentar colección.crearÍndice(conNombre: “miÍndice”, configuración: configuración) |
Doing a Similarity Search
In this example, I am running a SQL++ query to retrieve the top 10 similar documents with their description matching the target embedding of the searchPhrase:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// Retrieve vector embedding for searchPhrase from embedding model guard let searchEmbedding = modelRef.getEmbedding(para: searchPhrase) otro { throws Errores.notFound } // Construct SQL++ query to return top 10 documents from database with content similar the search phrase let SQL = “SELECT meta().id, description FROM _ ORDER BY APPROX_VECTOR_DISTANCE(vector, $searchParam) LIMIT 10″ // create query let consulta = Intentar bd.createQuery(SQL) // set the embedding vector associated with the search param let params = Parameters() params.setValue(searchEmbedding, forName: “searchParam”) consulta.parameters = params // Execute vector search query Intentar consulta.execute() |
Recursos
Here are direct links to a few helpful resources.
- Step-by-Step Installation Guides
- Couchbase Lite 3.2 Download
- Couchbase Lite Vector Extensions Library Downloads
- Vector search support requires a separate extensions library that needs to be linked to your application in addition to the primary Couchbase Lite SDK.
- Couchbase Lite Vector Search Explainer video
- Sample app for Couchbase Lite vector search
Stay tuned for an upcoming blog post on reference architectures to support vector search






Deja un comentario
Lo siento, debes estar conectado para publicar un comentario.