Dieses Projekt implementiert ein effizientes Ähnlichkeitssuchsystem für Vorlesungsinhalte unter Verwendung von Einbettungsdings, FAISS und Produktquantisierung mit benutzerdefinierten Index- und Kmeans -Implementierungen. Sie können ähnliche Vorträge basierend auf Textinhalten finden, um schnelles Abrufen und Empfehlungen von Vorträgen zu ermöglichen.
Klonen Sie das Repository
git clone https://github.com/bariscamli/Vector-Search-with-FAISS.git
cd Vector-Search-with-FAISSErstellen Sie eine virtuelle Umgebung (optional, aber empfohlen)
python -m venv venv
source venv/bin/activate # On Windows use `venvScriptsactivate`Erstellen Sie eine virtuelle Umgebung (optional, aber empfohlen)
pip install -r requirements.txt Vorlesungsdaten: Platzieren Sie Ihre Vorlesungstexte in eine von LECTURE_FILE in config.py angegebene Datei. Jede Zeile sollte einen Vortrag enthalten.
Abfragedaten: Platzieren Sie Ihre Abfragetexte in einer von QUERY_FILE angegebenen Datei in config.py. Jede Zeile sollte eine Abfrage enthalten. Beispielformat für Vorträge.txt:
Introduction to Machine Learning
Advanced Topics in Deep Learning
Statistical Methods in Data Science
...
Beispielformat für Abfragen.txt:
Basics of Neural Networks
Regression Analysis Techniques
Clustering Algorithms Overview
...
Alle Konfigurationen werden über die Datei config.py verwaltet. Zu den wichtigsten Parametern gehören:
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.
Führen Sie das Hauptskript aus, um die vollständige Pipeline auszuführen:
python main.pyDatenbelastung und Vorverarbeitung
Berechnung einbetten
EMBEDDING_MODEL_NAME geladen.Basisberechnung
Aufbau und Bewertung von Faiss -Index
efSearch -Werte bewertet.Leistungsvisualisierung

Quantisierung
CustomIndexPQ ) wird erstellt.Beispielsuche

numpymatplotlibfaiss (Installieren Sie über pip install faiss-cpu oder faiss-gpu , wenn Sie eine GPU haben)loggingtransformers , wenn Sie umarme Gesichtsmodelle verwenden)