Este proyecto implementa un sistema de búsqueda de similitud eficiente para el contenido de conferencias utilizando incrustaciones, FAISS y cuantificación de productos con implementaciones de índices personalizados y KMeans. Le permite encontrar conferencias similares basadas en contenido textual, lo que permite una recuperación rápida y recomendación de conferencias.
Clonar el repositorio
git clone https://github.com/bariscamli/Vector-Search-with-FAISS.git
cd Vector-Search-with-FAISSCrear un entorno virtual (opcional pero recomendado)
python -m venv venv
source venv/bin/activate # On Windows use `venvScriptsactivate`Crear un entorno virtual (opcional pero recomendado)
pip install -r requirements.txt Datos de conferencias: coloque los textos de su conferencia en un archivo especificado por LECTURE_FILE en config.py. Cada línea debe contener una conferencia.
Datos de consulta: Coloque sus textos de consulta en un archivo especificado por QUERY_FILE en config.py. Cada línea debe contener una consulta. Formato de ejemplo para Lectures.txt:
Introduction to Machine Learning
Advanced Topics in Deep Learning
Statistical Methods in Data Science
...
Formato de ejemplo para consultas.txt:
Basics of Neural Networks
Regression Analysis Techniques
Clustering Algorithms Overview
...
Todas las configuraciones se administran a través del archivo config.py. Los parámetros clave incluyen:
File Paths
- LECTURE_FILE: Path to the lecture data file.
- QUERY_FILE: Path to the query data file.
Embedding Model
- EMBEDDING_MODEL_NAME: Name or path of the embedding model to use.
- BATCH_SIZE: Batch size for computing embeddings.
FAISS Parameters
- FAISS_EFSEARCH_VALUES: List of efSearch values for performance evaluation.
Quantization Parameters
- PQ_M: Number of sub-vector quantizers.
- PQ_NBITS: Number of bits per sub-vector.
- KMEANS_MAX_ITER: Maximum iterations for k-means during PQ training.
Ejecute el script principal para ejecutar la tubería completa:
python main.pyCarga de datos y preprocesamiento
Incrustación de computación
EMBEDDING_MODEL_NAME .Cálculo de línea de base
Construcción y evaluación del índice FAISS
efSearch .Visualización de rendimiento

Cuantificación
CustomIndexPQ ).Búsqueda de ejemplo

numpymatplotlibfaiss (instalar a través de pip install faiss-cpu o faiss-gpu si tiene una GPU)loggingtransformers si se usa modelos de cara de abrazo)