[Conferencia sobre el ecosistema de la nube de Tencent] Base de datos de vectores de la nube de Tencent


  • Página de inicio personal : ζ小菜鸡
  • Hola a todos, soy un novato, experimentemos juntos Tencent Cloud Vector Database
  • Si el artículo le resulta útil, bienvenido a seguirlo, darle me gusta y recopilarlo (tres clics consecutivos)

1. Introducción a la base de datos de vectores en la nube de Tencent

1. ¿Qué es Tencent Cloud Vector Database?
Tencent Cloud Vector Database (Tencent Cloud VectorDB) es un servicio de base de datos distribuido a nivel empresarial, totalmente administrado y de desarrollo propio, dedicado a almacenar, recuperar y analizar datos vectoriales multidimensionales. La base de datos admite múltiples tipos de índices y métodos de cálculo de similitud. Un solo índice admite una escala de vectores de mil millones y puede admitir millones de QPS y latencia de consulta a nivel de milisegundos. Tencent Cloud Vector Database no solo puede proporcionar una base de conocimiento externa para modelos grandes y mejorar la precisión de las respuestas de modelos grandes, sino que también puede usarse ampliamente en campos de IA, como sistemas de recomendación y procesamiento de lenguaje natural.


2. Características del producto y ventajas de Tencent Cloud Vector Database
(1) Base de datos vectorial de alto rendimiento
Tencent Cloud VectorDB admite una escala de datos vectoriales de mil millones de niveles en un solo índice y puede admitir millones de QPS y latencia de consultas a nivel de milisegundos.
(2) Bajo costo
: simplemente siga las instrucciones de la consola para crear rápidamente una instancia de base de datos vectorial y alojar toda la plataforma de proceso sin ninguna operación de instalación, implementación, operación y mantenimiento, lo que reduce los costos de la máquina, los costos de operación y mantenimiento y los costos de mano de obra. .
(3) Alta
disponibilidad La base de datos vectorial Tencent Cloud VectorDB proporciona funciones de alta disponibilidad de copias múltiples para mejorar las capacidades de recuperación ante desastres y garantizar que la base de datos aún pueda ejecutarse normalmente cuando enfrenta desafíos como fallas de nodos y cambios de carga.
(4) Simple y fácil de usar.
Admite ricas capacidades de recuperación de vectores. Los usuarios pueden operar rápidamente la base de datos a través de la API y la eficiencia del desarrollo es alta. Al mismo tiempo, la consola proporciona capacidades completas de monitoreo y administración de datos, y es simple y conveniente de operar.
(5) La
arquitectura de base de datos vectorial a gran escala admite la expansión horizontal, y una sola instancia puede admitir decenas de miles de millones de QPS, lo que satisface fácilmente las necesidades de almacenamiento y recuperación de vectores en escenarios de IA. (6) La base de datos de vectores estable y confiable Tencent Cloud VectorDB se deriva del motor de búsqueda de vectores de desarrollo propio de Tencent Group, OLAMA. Casi 40 líneas de negocios funcionan de manera estable, con un promedio de 100 mil millones de solicitudes de búsqueda procesadas diariamente, y la continuidad y estabilidad del servicio están garantizadas
.
. .


2. Especificaciones del producto de la base de datos vectorial.

(1) Especificaciones del producto
Tencent Cloud VectorDB adopta una arquitectura de implementación distribuida, en la que cada nodo se comunica y coordina entre sí para lograr el almacenamiento y la recuperación de datos. Las solicitudes de los clientes se distribuyen a cada nodo a través del equilibrio de carga.


(2) Tipo de nodo
La base de datos vectorial de Tencent Cloud se divide en dos tipos: tipo de almacenamiento y tipo de computación según las diferentes proporciones de asignación de recursos de memoria y CPU del nodo de almacenamiento.
a. Tipo de almacenamiento: se utiliza principalmente para almacenar y administrar datos vectoriales a gran escala. Sus principales ventajas son: proporciona baja latencia de consulta y puede almacenar y administrar datos vectoriales de manera eficiente. Es especialmente adecuado para grandes cantidades de datos, rápido crecimiento de datos, y relativamente consultar QPS Escenarios de nivel inferior, como reconocimiento facial, búsqueda de imágenes, etc.
b.Tipo computacional: se utiliza principalmente para buscar y recuperar rápidamente datos vectoriales, admite solicitudes de consulta altamente concurrentes. Su principal ventaja es: proporciona un QPS de consulta más alto y una latencia de consulta más baja, adecuado para escenarios con mucho tráfico y sensibilidad al retraso. Por ejemplo: real- recomendaciones de tiempo, publicidad, etc.


(3) Número de nodos
Tencent Cloud Vector Database adopta una arquitectura distribuida para admitir la comunicación y coordinación de múltiples nodos. Actualmente, admite de 3 a 10 nodos.


(4) Especificaciones del nodo
Los diferentes tipos de nodos tienen diferentes especificaciones de producto correspondientes. Para obtener más información, consulte la siguiente tabla.
Insertar descripción de la imagen aquí


3. Conceptos clave de la base de datos vectorial.

Vector

Un vector puede entenderse como una colección ordenada de valores, generalmente utilizada para representar los atributos o características de un objeto o cosa. Estos valores pueden tener diferentes dimensiones, representando cada dimensión un atributo o característica. En el campo del aprendizaje automático y la inteligencia artificial, los vectores se utilizan a menudo para representar datos como imágenes, texto y audio. Al calcular la distancia o similitud entre vectores, se pueden lograr tareas como clasificación, agrupación y recuperación.
OLAMA

OLAMA es un motor vectorial desarrollado por Tencent, que tiene las características de alto rendimiento, alta disponibilidad, simplicidad y facilidad de uso. Admite un índice único de escala de mil millones de vectores, es adecuado para escenarios de recuperación y computación de IA y ha prestado servicios de manera estable a casi 40 empresas en línea.

Instancia

Una instancia es un entorno de base de datos que se ejecuta de forma independiente en Tencent Cloud, es la unidad básica para que los usuarios compren servicios de bases de datos vectoriales y existe como un proceso separado. Una instancia de base de datos puede contener varias bases de datos creadas por los usuarios. Puede crear, modificar y eliminar instancias en la consola. Las instancias son independientes entre sí y los recursos están aislados. No hay problemas de preferencia entre CPU, memoria, memoria persistente, IO, etc.
Base de datos

Una base de datos es un almacén que organiza, almacena y administra datos de acuerdo con una estructura de datos. Una instancia puede crear múltiples bases de datos.
Recopilación

En una base de datos vectorial, una colección se refiere a un grupo de documentos, similar a una tabla en una base de datos relacional, que puede contener múltiples datos de documentos. Las colecciones no tienen una estructura fija y se pueden insertar en diferentes formatos y tipos de datos. La base de datos vectorial admite funciones de múltiples fragmentos y múltiples copias en la dimensión de la colección. Puede especificar la cantidad de fragmentos y copias según sea necesario al crear una colección.
Documento

En una base de datos vectorial, una colección se puede ver como una tabla y un documento se puede ver como una fila de datos en la tabla. Cada documento representa un objeto de documento completo, incluidos varios campos, y cada campo representa una propiedad o campo del documento. El documento de una base de datos vectorial es un conjunto de pares clave-valor (clave: valor), y cada documento tiene una clave primaria única (id) y un campo vectorial (vector). Al insertar un documento, la base de datos vectorial no necesita configurar los mismos campos y los campos se pueden agregar o eliminar al insertar datos.
Campo

Cada campo es un par clave:valor que representa un atributo o campo en el documento. Cada campo tiene su propio tipo y rango de valores, que pueden ser diferentes tipos de datos, como cadenas y números.
Nodo

Desde la perspectiva de recursos de un clúster de base de datos vectorial, los nodos son unidades de recursos que se utilizan para almacenar datos. Una instancia de base de datos vectorial en ejecución generalmente contiene muchos nodos y varias copias y fragmentos de la colección se distribuyen en varios nodos. El nodo es una de las unidades básicas que componen un grupo de bases de datos vectoriales.
Casco

Para admitir datos a mayor escala, la colección generalmente se divide en varias partes de acuerdo con una determinada dimensión, y cada parte es un fragmento distribuido en varios nodos (Nodo). Para garantizar la confiabilidad y disponibilidad, se distribuirán varios fragmentos de la misma colección en diferentes nodos (Nodo).
Réplica

Para los datos de copia de seguridad del mismo fragmento (fragmento), habrá al menos 2 copias de un fragmento. La fragmentación de réplicas sirve como una copia de seguridad redundante para proteger los datos contra pérdidas en caso de falla del hardware y proporciona servicios para operaciones de lectura, como la recuperación de vectores y la consulta de documentos, lo que garantiza que la base de datos aún pueda ejecutarse normalmente frente a desafíos como la falla del nodo. y cambios de carga.
Índice

Un índice es una estructura de datos especial que se utiliza para buscar y acceder rápidamente a datos almacenados en la memoria. El índice en sí no almacena datos, sino que almacena punteros o pares clave-valor que apuntan a la ubicación donde se almacenan los datos. Tencent Cloud VectorDB admite índices vectoriales comunes como FLAT y HNSW. Para obtener una introducción a la indexación, consulte Recuperación de vectores.
KNN (K-búsqueda de vecino más cercano)

KNN se refiere a la búsqueda de vecinos K-más cercanos, que es un método basado en la búsqueda de fuerza bruta. Su principio es: calcular la distancia entre el vector a consultar y todos los vectores en la base de datos, y luego ordenarlos según la distancia de pequeño a grande., seleccione los K vectores más cercanos como resultados de la consulta. La ventaja del algoritmo KNN es que puede garantizar resultados precisos, pero para datos vectoriales a gran escala, la cantidad de cálculo será muy grande y la eficiencia es baja.
ANN (búsqueda aproximada de vecino más cercano)

ANN significa Búsqueda aproximada de vecino más cercano, que es un método para encontrar rápidamente vecinos más cercanos en un espacio de datos de alta dimensión. En comparación con la búsqueda exacta del vecino más cercano, ANN sacrifica cierta precisión a cambio de una mayor velocidad de búsqueda y, por lo tanto, tiene una mayor eficiencia al procesar conjuntos de datos a gran escala. Los métodos ANN a menudo preprocesan los datos para reducir la cantidad de cálculos de distancia en el momento de la consulta. Las ventajas del algoritmo ANN son su rápida velocidad y alta eficiencia, pero en comparación con el algoritmo KNN, sus resultados pueden no ser lo suficientemente precisos.
HNSW (pequeño mundo navegable jerárquico)

HNSW es ​​un algoritmo de búsqueda de similitud de vectores de alta dimensión basado en gráficos. Su nombre completo es: Hierarchical Navigable Small World. Construye un gráfico para representar la relación de similitud entre vectores y utiliza algunas estrategias de optimización para acelerar el proceso de búsqueda.


4. Uso de una base de datos vectorial para crear una nueva instancia de base de datos.

【1】 Utilice una cuenta de Tencent Cloud para iniciar sesión en la consola de Vector Database. (Xiao Caiji registró una cuenta de Tencent Cloud y completó la autenticación de nombre real. Si no tiene una cuenta de Tencent Cloud, primero debe registrarse e iniciar sesión en Tencent Cloud)

Insertar descripción de la imagen aquí


【2】Haga clic en Nuevo para ingresar a la página de instancia de la nueva base de datos de vectores. (Diamond eligió el modelo de computadora y el tamaño del vector es relativamente pequeño)

Insertar descripción de la imagen aquí


【3】Consulte la siguiente tabla, configure los siguientes parámetros y compre una instancia.

Insertar descripción de la imagen aquí
【4】Haga clic en Aplicar ahora para regresar automáticamente a la página de lista de instancias. El estado actual de la instancia es Creando. Espere a que el estado de la instancia se actualice a En ejecución antes de poder usarla.


5. Primera experiencia con bases de datos vectoriales.

[1] Los usuarios pueden comprar instancias CVM de servidor en la nube a través de la consola Tencent Cloud (CVM y la base de datos vectorial deben estar en la misma VPC de red privada) para iniciar las pruebas de rendimiento.
Insertar descripción de la imagen aquí


(Aquí, el novato creó una nueva instancia de prueba de rendimiento y luego inicia sesión en la columna de operación de la derecha)

Insertar descripción de la imagen aquí


Insertar descripción de la imagen aquí


(La interfaz después de iniciar sesión es como se muestra en la figura. Hay una opción de editor para facilitar las operaciones del usuario. El novato usa el editor)

Insertar descripción de la imagen aquí


La página del editor es como se muestra en la figura.

Insertar descripción de la imagen aquí


[2] Preparación de la herramienta de prueba
1. Descargue la herramienta de prueba: ann-benchmarks-dev.zip y luego cargue la herramienta de prueba y el conjunto de datos en el cliente de prueba CVM.

Insertar descripción de la imagen aquí


2. Instale las dependencias de la herramienta de prueba
Dependencias de software: si la versión de Python es superior a 3.6.8, use python3 en la versión recomendada del sistema operativo. (La elección del novato es python3)
a. Primero instale el paquete de dependencia del sistema operativo en el terminal CVM del cliente de prueba, como se muestra en la siguiente figura:

Insertar descripción de la imagen aquí


b. Ingrese al directorio de la herramienta de prueba en la terminal e instale las dependencias de ejecución de Python como se muestra a continuación: (Asegúrese de ingresar el directorio de la herramienta de prueba para la instalación aquí)

Insertar descripción de la imagen aquí
(No hay muchos módulos para instalar y el principiante tendrá que esperar unos 10 segundos antes de que se complete la instalación)


Insertar descripción de la imagen aquí


C. El resultado de una instalación exitosa del entorno dependiente de Python se muestra en la siguiente figura:

Insertar descripción de la imagen aquí


[3] Conecte la base de datos vectorial
1: al iniciar la prueba, puede copiar el archivo de configuración predeterminado 'ann_benchmarks/algorithms/vector_db/config.yml' del directorio del proyecto
a su propio directorio de trabajo en el proyecto para realizar modificaciones y luego especificar a través del parámetro de línea de comando –definiciones del propio archivo de configuración para ejecutar pruebas.

Insertar descripción de la imagen aquí


2: Seleccione el conjunto de datos de prueba y busque el conjunto de datos existente de Ann-benchamrk llamado sift-128-euclidean, que tiene exactamente 128 dimensiones. Puede utilizar este conjunto de datos para realizar pruebas. El comando del conjunto de datos termina en euclidiano, lo que significa usar el algoritmo de similitud L2

Insertar descripción de la imagen aquí


3: Base de datos de vectores de prueba de conexión CVM
a.Asegúrese de que la instancia de la base de datos se haya creado y el estado se esté ejecutando. Como se muestra abajo:

Insertar descripción de la imagen aquí


(En la lista de instancias, hacemos clic en el ID de la instancia o hacemos clic en Administrar en su columna de operación para ingresar a la página de detalles de la instancia. Puede ver la información específica de la base de datos de vectores)

Insertar descripción de la imagen aquí


B. Obtenga la dirección IP de la intranet y el puerto de red de la instancia de la base de datos vectorial (la información específica se encuentra en la imagen anterior de Xiaocaiji)

Insertar descripción de la imagen aquí


c. Obtenga la clave de acceso API de la base de datos vectorial (puede copiar directamente la clave secreta. Puede hacer clic en la visualización de la columna de la clave API para ver la información de la clave API y copiarla).

Insertar descripción de la imagen aquí


D. Para configurar reglas de salida en el grupo de seguridad CVM de Tencent Cloud, debe agregar la IP y el puerto de la base de datos vectorial de Tencent Cloud a las reglas de salida. Configure las reglas de entrada en el grupo de seguridad de la base de datos vectorial de Tencent Cloud y agregue la IP y el puerto de CVM a las reglas de entrada
(1) Grupo de seguridad de Tencent Cloud

Insertar descripción de la imagen aquí


Agregar reglas de entrada más tarde

Insertar descripción de la imagen aquí


(2) Grupo de seguridad de la base de datos vectorial, configure la información del grupo de seguridad. Como se muestra abajo:

Insertar descripción de la imagen aquí


Insertar descripción de la imagen aquí


[4] Ejemplo de ejecución de prueba
a: copie el archivo de configuración predeterminado a su propia ruta de archivo de configuración (no es posible para principiantes operar directamente en la consola y debe operarse en el archivo de prueba) como se muestra a continuación:

Insertar descripción de la imagen aquí


Insertar descripción de la imagen aquí


B. Establezca sus propios parámetros de configuración en mytest.yml según sea necesario.

Insertar descripción de la imagen aquí


c. Ejecute la prueba mediante el siguiente comando: la herramienta descargará automáticamente el conjunto de datos oficiales de ann-benchmark de la red externa y lo escribirá en la base de datos vectorial de Tencent Cloud. (El novato no prestó atención al formato al ingresar el comando y siguió informando un error. Aquí debe prestar atención al formato del comando). Como se muestra en la siguiente figura:

Insertar descripción de la imagen aquí


d. Una vez completada la prueba, los resultados de la prueba se guardan en la carpeta de resultados. Debe utilizar otra herramienta de línea de comando para convertir los resultados en un archivo csv legible. Como se muestra abajo:

Insertar descripción de la imagen aquí


6. Prueba de estrés del rendimiento de recuperación utilizando una base de datos vectorial

[1] Al explorar la tasa de recuperación especificada, se deben establecer las condiciones de consulta ef (Nota: este modo debe agregar el parámetro only_query para evitar la reinserción de datos) a. Encuentre el modo de exploración, modifique KNNSeekMode en la
configuración archivo en verdadero y pruebe este modo. La herramienta ejecutará repetidamente la consulta con diferentes valores ef hasta que se obtenga la mejor coincidencia. Como se muestra abajo:

Insertar descripción de la imagen aquí


b. Configure el parámetro de exploración
KNNSeekStartEF: especifique qué valor de referencia ef comenzar a consultar
KNNSeekStep: especifique cuántas unidades cambia el valor ef cada vez en el modo de exploración, como 1:
KNNSeekStartEF+=1 o resta. (Tamaño del paso para cada incremento o decremento)
KNNSeekExpect: la tasa de recuperación que se espera encontrar, como 0,95
(esto todavía está configurado en el archivo de configuración), como se muestra a continuación:

Insertar descripción de la imagen aquí


C. Ejecute la herramienta e ingrese el comando en la consola. Como se muestra en la siguiente imagen: (El novato aquí aún debe recordarles a todos que presten atención al formato del comando)

Insertar descripción de la imagen aquí


D. Los resultados se muestran a continuación (KNNSeekExpect = 0,95 en la imagen):
Insertar descripción de la imagen aquí


【2】Prueba de rendimiento de recuperación de búsqueda
a. Encuentre el EF de la prueba deseada o configure EF, y explore las condiciones de consulta que deben configurarse para obtener la tasa de recuperación especificada a través de '[1]' para encontrar el EF de la recuperación deseada tasa, o configúrelo usted mismo según sea necesario El valor ef
B. Configuración de la consulta de prueba de estrés, en el archivo de configuración, use la consulta de prueba de estrés de 8 núcleos ef = 111 de la siguiente manera. Tenga en cuenta que KNNSeekMode debe establecerse en falso. Como se muestra abajo:

Insertar descripción de la imagen aquí


C. Comando de prueba de esfuerzo. Durante la prueba de esfuerzo, debe activar el parámetro –batch y configurar –runs en un valor mayor para una operación a largo plazo. Como se muestra abajo:
Insertar descripción de la imagen aquí


【3】Ver los resultados de la prueba de estrés
a. Inicie sesión en la consola de Vector Database usando una cuenta de Tencent Cloud. En la lista de instancias, busque la instancia para la cual se deben ver los datos de monitoreo. Como se muestra abajo:

Insertar descripción de la imagen aquí


b. Haga clic en el ID de la instancia de destino o haga clic en Administrar en su columna de operación para ingresar a la página de detalles de la instancia y buscar el monitoreo de la instancia. como muestra la imagen:

Insertar descripción de la imagen aquí


c: Tencent Cloud Vector Database Console proporciona monitoreo de indicadores clave de rendimiento como CPU, memoria, QPS y latencia de instancias. Disponible desde una cómoda consola. Como se muestra abajo:

Insertar descripción de la imagen aquí


Insertar descripción de la imagen aquí


Insertar descripción de la imagen aquí


Insertar descripción de la imagen aquí


[4] Cuando la consulta no puede cargar completamente la CPU, la solución
está limitada por el modelo de subprocesos del lenguaje Python. A veces, la herramienta de prueba no puede cargar completamente la presión de prueba, lo que hace que el rendimiento de la instancia no alcance el límite. En este caso , se pueden utilizar múltiples procesos o múltiples CVM Realice pruebas de presión al mismo tiempo. como muestra la imagen:

Insertar descripción de la imagen aquí


7. Resumen

Tencent Cloud Vector Database se proporciona a los usuarios como un servicio dedicado a almacenar y recuperar datos vectoriales. Tiene importantes ventajas en cuanto a alto rendimiento, alta disponibilidad, gran escala, bajo costo, simplicidad y facilidad de uso, estabilidad y confiabilidad, y operación inteligente y mantenimiento. Es un servicio de base de datos distribuida a nivel empresarial, de desarrollo propio y totalmente administrado, dedicado a almacenar, recuperar y analizar datos vectoriales multidimensionales. No solo puede proporcionar una base de conocimiento externo para modelos grandes y mejorar la precisión de las respuestas de modelos grandes, sino que también puede usarse ampliamente en campos de IA como sistemas de recomendación, servicios de PNL, visión por computadora y servicio al cliente inteligente, con una amplia gama. de aplicaciones.


Supongo que te gusta

Origin blog.csdn.net/weixin_45191386/article/details/132692916
Recomendado
Clasificación