Proyek ini mengimplementasikan sistem pencarian kesamaan yang efisien untuk konten kuliah menggunakan embeddings, faiss dan kuantisasi produk dengan implementasi indeks & kmeans khusus. Ini memungkinkan Anda untuk menemukan kuliah yang sama berdasarkan konten tekstual, memungkinkan pengambilan cepat dan rekomendasi kuliah.
Klon Repositori
git clone https://github.com/bariscamli/Vector-Search-with-FAISS.git
cd Vector-Search-with-FAISSBuat lingkungan virtual (opsional tetapi direkomendasikan)
python -m venv venv
source venv/bin/activate # On Windows use `venvScriptsactivate`Buat lingkungan virtual (opsional tetapi direkomendasikan)
pip install -r requirements.txt Data kuliah: Tempatkan teks kuliah Anda dalam file yang ditentukan oleh LECTURE_FILE di config.py. Setiap baris harus berisi satu kuliah.
Data kueri: Tempatkan teks kueri Anda dalam file yang ditentukan oleh QUERY_FILE di config.py. Setiap baris harus berisi satu kueri. Format Contoh untuk Lectures.txt:
Introduction to Machine Learning
Advanced Topics in Deep Learning
Statistical Methods in Data Science
...
Format contoh untuk kueri.txt:
Basics of Neural Networks
Regression Analysis Techniques
Clustering Algorithms Overview
...
Semua konfigurasi dikelola melalui file config.py. Parameter kunci meliputi:
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.
Jalankan skrip utama untuk menjalankan pipa lengkap:
python main.pyPemuatan dan preprocessing data
Menanamkan perhitungan
EMBEDDING_MODEL_NAME .Komputasi dasar
Bangunan dan Evaluasi Indeks FAISS
efSearch yang berbeda.Visualisasi kinerja

Kuantisasi
CustomIndexPQ ) dibuat.Contoh pencarian

numpymatplotlibfaiss (Instal melalui pip install faiss-cpu atau faiss-gpu Jika Anda memiliki GPU)loggingtransformers jika menggunakan model wajah memeluk)