Apache SeaTunnel, Milvus y OpenAI mejoran la precisión y eficiencia de la búsqueda de similitud de títulos de libros’.
Apache SeaTunnel, Milvus y OpenAI Mejorando la precisión y eficiencia en la búsqueda de títulos de libros similares
Actualmente, las soluciones de búsqueda de libros existentes (como las utilizadas en las bibliotecas públicas) dependen en gran medida de la coincidencia de palabras clave en lugar de comprender semánticamente el contenido real de los títulos de los libros. Como resultado, los resultados de búsqueda pueden no satisfacer nuestras necesidades muy bien o incluso ser muy diferentes a lo que esperamos. Esto se debe a que depender únicamente de la coincidencia de palabras clave no es suficiente, ya que no puede lograr comprensión semántica y, por lo tanto, no puede entender la verdadera intención del buscador.
Entonces, ¿hay una mejor manera de realizar búsquedas de libros de manera más precisa y eficiente? ¡La respuesta es sí! En este artículo, presentaré cómo combinar el uso de Apache SeaTunnel, Milvus y OpenAI para la búsqueda de similitud para lograr una comprensión semántica de todo el título del libro y hacer que los resultados de búsqueda sean más precisos.
El uso de modelos entrenados para representar datos de entrada se llama búsqueda semántica, y este enfoque se puede ampliar a varios casos de uso basados en texto, incluida la detección de anomalías y la búsqueda de documentos. Por lo tanto, la tecnología presentada en este artículo puede proporcionar avances significativos e impactos en el campo de la búsqueda de libros.
A continuación, presentaré brevemente varios conceptos y herramientas/plataformas relacionadas con este artículo para comprender mejor este artículo.
- Entendiendo las métricas de clasificación tu guía para evaluar la precisión del modelo
- Un cambio de paradigma en el desarrollo de software los agentes de inteligencia artificial AI de GPTConsole abren nuevos horizontes
- Nuevas formas en las que estamos ayudando a reducir las emisiones de transporte y energía
¿Qué es Apache SeaTunnel?
Apache SeaTunnel es una plataforma de gestión y computación de datos distribuida de código abierto y alto rendimiento. Es un proyecto de alto nivel respaldado por la Fundación Apache, capaz de manejar datos masivos, proporcionar consultas y cálculos de datos en tiempo real, y admitir múltiples fuentes y formatos de datos. El objetivo de SeaTunnel es proporcionar una plataforma de gestión e integración de datos escalable a nivel empresarial para satisfacer diversas necesidades de procesamiento de datos a gran escala.
¿Qué es Milvus?
Milvus es un motor de búsqueda de similitud de vectores de código abierto que admite el almacenamiento, la recuperación y la búsqueda de similitud de vectores masivos. Es una solución de alto rendimiento y bajo costo para datos vectoriales a gran escala. Milvus se puede utilizar en diversos escenarios, como sistemas de recomendación, búsqueda de imágenes, recomendación de música, etc.
¿Qué es OpenAI?
ChatGPT es un sistema de IA conversacional basado en el modelo Generative Pre-trained Transformer (GPT) desarrollado por OpenAI. El sistema utiliza principalmente tecnologías de procesamiento de lenguaje natural y aprendizaje profundo para generar texto en lenguaje natural similar a una conversación humana. ChatGPT tiene una amplia gama de aplicaciones, incluido servicio al cliente inteligente, chatbots, asistentes inteligentes e investigación y desarrollo de modelos de lenguaje. En los últimos años, ChatGPT se ha convertido en uno de los puntos de investigación más importantes en el campo del procesamiento de lenguaje natural.
¿Qué es LLM?
Un Modelo de Lenguaje Grande (LLM) es un modelo de procesamiento de lenguaje natural basado en tecnología de aprendizaje profundo que puede analizar y comprender un texto dado y generar contenido de texto relacionado. Los modelos de lenguaje grande suelen utilizar redes neuronales profundas para aprender la gramática y las reglas semánticas del lenguaje natural y convertir los datos de texto en representaciones vectoriales en un espacio vectorial continuo. Durante el entrenamiento, los modelos de lenguaje grande utilizan una gran cantidad de datos de texto para aprender patrones de lenguaje y reglas estadísticas, lo que les permite generar contenido de texto de alta calidad como artículos, noticias y conversaciones. Los modelos de lenguaje grande tienen una amplia gama de aplicaciones, incluida la traducción automática, la generación de texto, los sistemas de preguntas y respuestas, el reconocimiento de voz, etc. Actualmente, muchos marcos de aprendizaje profundo de código abierto proporcionan implementaciones de modelos de lenguaje grande, como TensorFlow, PyTorch, etc.
Tutorial
¡Aquí vamos! Te mostraré cómo combinar Apache SeaTunnel, el API de incrustación de OpenAI, con nuestra base de datos de vectores para realizar una búsqueda semántica en todo el título del libro.
Preparación
Antes del experimento, necesitamos obtener una token de OpenAI desde su sitio web oficial y luego implementar un entorno de experimentación de Milvus. También necesitamos preparar los datos que se utilizarán para este ejemplo. Puedes descargar los datos desde aquí.
Importar datos a Milvus a través de SeaTunnel.
Primero, coloca book.csv en /tmp/milvus_test/book, luego configura la configuración de la tarea como milvus.conf y colócala en la carpeta config. Por favor, consulta la Guía de inicio rápido.
env { # Puede configurar la configuración del motor aquí execution.parallelism = 1 job.mode = "BATCH" checkpoint.interval = 5000 # execution.checkpoint.data-uri = "hdfs://localhost:9000/checkpoint"}
source { # Este es un complemento de origen de ejemplo **solo para probar y demostrar las características del complemento de origen** LocalFile { schema { fields { bookID = string title_1 = string title_2 = string } } path = "/tmp/milvus_test/book" file_format_type = "csv" }}transform {}sink { Milvus { milvus_host = localhost milvus_port = 19530 username = root password = Milvus collection_name = title_db openai_engine = text-embedding-ada-002 openai_api_key = sk-xxxx embeddings_fields = title_2 }}
Ejecuta el siguiente comando:
./bin/SeaTunnel.sh --config ./config/milvus.conf -e local
Observando los datos en la base de datos, puedes ver que los datos se han escrito en ella.
Luego, utiliza el siguiente código para realizar una búsqueda semántica en los títulos de los libros:
import json
import random
import openai
import time
from pymilvus import connections, FieldSchema, CollectionSchema, DataType, Collection, utility
COLLECTION_NAME = 'title_db' # Nombre de la colección
DIMENSION = 1536 # Tamaño de los embeddings
COUNT = 100 # Cuántos títulos embedados e insertados
MILVUS_HOST = 'localhost' # Dirección del servidor Milvus
MILVUS_PORT = '19530' # Puerto de Milvus
OPENAI_ENGINE = 'text-embedding-ada-002' # Qué motor utilizar de Open AI
openai.api_key = 'sk-******' # Utiliza tu propia clave de API de Open AI aquí
connections.connect(host=MILVUS_HOST, port=MILVUS_PORT)
collection = Collection(name=COLLECTION_NAME)
collection.load()
def embed(text):
return openai.Embedding.create(
input=text,
engine=OPENAI_ENGINE)["data"][0]["embedding"]
def search(text):
# Parámetros de búsqueda para el índice
search_params={
"metric_type": "L2"
}
results=collection.search(
data=[embed(text)], # Valor de búsqueda incrustado
anns_field="title_2", # Buscar a través de los embeddings
param=search_params,
limit=5, # Limitar a cinco resultados por búsqueda
output_fields=['title_1'] # Incluir campo de título en el resultado
)
ret=[]
for hit in results[0]:
row=[]
row.extend([hit.id, hit.score, hit.entity.get('title_1')]) # Obtener el id, distancia y título de los resultados
ret.append(row)
return ret
search_terms=['self-improvement', 'landscape']
for x in search_terms:
print('Término de búsqueda:', x)
for result in search(x):
print(result)
print()
Aquí está el resultado:
Término de búsqueda: self-improvement
[96, 0.4079835116863251, "The Dance of Intimacy: A Woman's Guide to Courageous Acts of Change in Key Relationships"]
[56, 0.41880303621292114, 'Nicomachean Ethics']
[76, 0.4309804439544678, 'Possession']
[19, 0.43588975071907043, 'Vanity Fair']
[7, 0.4423919916152954, 'Knowledge Is Power (The Amazing Days of Abby Hayes: #15)']
Término de búsqueda: landscape
[9, 0.3023473024368286, 'The Lay of the Land']
[1, 0.3906732499599457, 'The Angry Hills']
[78, 0.392495334148407, 'Cloud Atlas']
[95, 0.39346450567245483, 'Alien']
[94, 0.399422287940979, 'The Known World']
Si utilizamos el antiguo método de búsqueda por palabras clave, los títulos de los libros deben contener palabras clave como “self-improvement” e “improvement”. Sin embargo, al utilizar modelos de lenguaje grandes para comprensión semántica, podemos recuperar títulos de libros que son más relevantes para nuestras necesidades. Por ejemplo, en el ejemplo anterior, cuando buscamos la palabra clave “self-improvement”, los títulos de los libros mostrados como “The Dance of Intimacy: A Woman’s Guide to Courageous Acts of Change in Key Relationships” y “Nicomachean Ethics” no contenían palabras clave relevantes, pero eran claramente más relevantes para nuestras necesidades.
Por lo tanto, al utilizar Apache SeaTunnel, Milvus y OpenAI, podemos lograr búsquedas de similitud de títulos de libros más precisas a través de modelos de lenguaje grandes, lo que supone un importante avance tecnológico en el campo de la búsqueda de libros y también proporciona valiosas referencias para la comprensión semántica. Espero que esto pueda inspirar a todos.
We will continue to update Zepes; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Agregando filtros de realidad aumentada a las videollamadas usando DeepAR y Dyte
- Aprovechando la IA para prevenir la falta de vivienda Un cambio radical en Los Angeles
- Investigadores de Google y Cornell presentan DynIBaR Revolucionando la reconstrucción dinámica de escenas con IA
- Explorando los Iteradores Infinitos en itertools de Python
- Ajuste fino de LLM con técnicas PEFT
- Los modelos de base Mistral 7B de Mistral AI ahora están disponibles en Amazon SageMaker JumpStart.
- Los 10 Mejores Generadores de Objetos 3D con IA Generativa