Этот проект реализует эффективную систему поиска сходства для содержания лекций, используя встроенные, FAISS и квантование продукта с помощью пользовательского индекса и реализаций Kmeans. Это позволяет вам найти аналогичные лекции на основе текстового контента, обеспечивая быстрый поиск и рекомендации лекций.
Клонировать репозиторий
git clone https://github.com/bariscamli/Vector-Search-with-FAISS.git
cd Vector-Search-with-FAISSСоздайте виртуальную среду (необязательно, но рекомендуется)
python -m venv venv
source venv/bin/activate # On Windows use `venvScriptsactivate`Создайте виртуальную среду (необязательно, но рекомендуется)
pip install -r requirements.txt Данные лекции: разместите тексты лекций в файл, указанный LECTURE_FILE в config.py. Каждая строка должна содержать одну лекцию.
Данные запроса: поместите тексты запроса в файл, указанный QUERY_FILE в config.py. Каждая строка должна содержать один запрос. Пример формата для лекций.txt:
Introduction to Machine Learning
Advanced Topics in Deep Learning
Statistical Methods in Data Science
...
Пример формата для Queries.txt:
Basics of Neural Networks
Regression Analysis Techniques
Clustering Algorithms Overview
...
Все конфигурации управляются через файл config.py. Ключевые параметры включают:
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.
Запустите основной сценарий, чтобы выполнить полный трубопровод:
python main.pyЗагрузка данных и предварительная обработка
Встраивание вычислений
EMBEDDING_MODEL_NAME .Базовые вычисления
Файсс индексное здание и оценка
efSearch .Визуализация производительности

Квантование
CustomIndexPQ ).Пример поиска

numpymatplotlibfaiss (установка через pip install faiss-cpu или faiss-gpu , если у вас есть графический процессор)loggingtransformers при использовании моделей обнимающего лица)