Este projeto implementa um sistema de pesquisa de similaridade eficiente para conteúdo de palestras usando incorporação, FAISS e quantização de produtos com implementações de índice personalizado e Kmeans. Ele permite encontrar palestras semelhantes com base no conteúdo textual, permitindo uma recuperação rápida e recomendação de palestras.
Clone o repositório
git clone https://github.com/bariscamli/Vector-Search-with-FAISS.git
cd Vector-Search-with-FAISSCrie um ambiente virtual (opcional, mas recomendado)
python -m venv venv
source venv/bin/activate # On Windows use `venvScriptsactivate`Crie um ambiente virtual (opcional, mas recomendado)
pip install -r requirements.txt Dados da palestra: Coloque seus textos de palestra em um arquivo especificado por LECTURE_FILE em config.py. Cada linha deve conter uma palestra.
Dados de consulta: Coloque seus textos de consulta em um arquivo especificado por QUERY_FILE em config.py. Cada linha deve conter uma consulta. Exemplo de formato para palestras.txt:
Introduction to Machine Learning
Advanced Topics in Deep Learning
Statistical Methods in Data Science
...
Exemplo de formato para consultas.txt:
Basics of Neural Networks
Regression Analysis Techniques
Clustering Algorithms Overview
...
Todas as configurações são gerenciadas através do arquivo config.py. Os principais parâmetros incluem:
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.
Execute o script principal para executar o pipeline completo:
python main.pyCarregamento de dados e pré -processamento
Incorporação de computação
EMBEDDING_MODEL_NAME .Computação de linha de base
FAISS Index Building and Avaluation
efSearch .Visualização de desempenho

Quantização
CustomIndexPQ ) é criado.Exemplo de pesquisa

numpymatplotlibfaiss (instale via pip install faiss-cpu ou faiss-gpu se você tiver uma GPU)loggingtransformers se estiver usando modelos de rosto de abraço)