इस प्रोजेक्ट के बारे में

Faiss एक लाइब्रेरी है जो घने वेक्टर के लिए कुशल समानता खोज और क्लस्टरिंग के लिए विकसित की गई है, मुख्य रूप से Meta के Fundamental AI Research समूह में। यह मानता है कि उदाहरणों को पूर्णांक द्वारा पहचाने गए वेक्टर के रूप में दर्शाया जाता है, और L2 (यूक्लिडियन) दूरी या डॉट प्रोडक्ट का उपयोग करके तुलना की जाती है; cosine similarity normalized वेक्टर पर डॉट प्रोडक्ट के माध्यम से समर्थित है। यह लाइब्रेरी एल्गोरिदम को समाहित करती है जो किसी भी आकार के वेक्टर सेट में खोज करते हैं, जिनमें वे सेट भी शामिल हैं जो RAM में फिट नहीं हो सकते हैं। इसमें मूल्यांकन और पैरामीटर ट्यूनिंग के लिए सहायक कोड भी शामिल है। Faiss C++ में लिखा गया है जिसमें Python/numpy के लिए पूर्ण wrappers हैं, और सबसे उपयोगी एल्गोरिदम में से कुछ GPU पर लागू किए गए हैं। Index प्रकार सरल exact-search baseline से लेकर संरचनाओं तक विस्तृत हैं जो खोज समय, खोज गुणवत्ता, प्रति index वेक्टर मेमोरी, प्रशिक्षण समय, जोड़ने का समय, और unsupervised प्रशिक्षण के लिए बाहरी डेटा की आवश्यकता के बीच trade-off करती हैं। binary वेक्टर और compact quantization codes पर आधारित विधियाँ केवल एक compressed representation का उपयोग करती हैं और मूल वेक्टर रखने की आवश्यकता नहीं होती, जो आमतौर पर कम सटीक खोज की लागत पर होता है लेकिन एक ही सर्वर पर मुख्य मेमोरी में अरबों वेक्टर तक scale करने की क्षमता प्रदान करता है। HNSW और NSG जैसी अन्य विधियाँ खोज को अधिक कुशल बनाने के लिए raw वेक्टर के ऊपर एक indexing structure जोड़ती हैं। GPU implementation CPU या GPU मेमोरी से इनपुट स्वीकार करता है। GPU वाले सर्वर पर, GPU indexes का उपयोग CPU indexes के drop-in replacement के रूप में किया जा सकता है (उदाहरण के लिए, IndexFlatL2 को GpuIndexFlatL2 से बदलना), जहाँ GPU मेमोरी से और उसमें copies स्वचालित रूप से संभाली जाती हैं। परिणाम तब तेज़ होते हैं जब इनपुट और आउटपुट दोनों GPU पर resident रहते हैं। एकल और बहु-GPU उपयोग समर्थित हैं। स्थापना: precompiled libraries Anaconda में Python के लिए उपलब्ध हैं (faiss-cpu, faiss-gpu, faiss-gpu-cuvs)। यह लाइब्रेरी मुख्य रूप से C++ में लागू की गई है; एकमात्र निर्भरता एक BLAS implementation है। वैकल्पिक GPU समर्थन CUDA या AMD ROCm के माध्यम से प्रदान किया जाता है, और Python interface वैकल्पिक है। NVIDIA cuVS के backend GPU implementations को भी वैकल्पिक रूप से सक्षम किया जा सकता है। यह cmake के साथ compile होता है; विवरण के लिए INSTALL.md देखें। Documentation entry points में project wiki (getting-started tutorial, FAQ, और troubleshooting section के साथ), faiss.ai पर per-class जानकारी के लिए doxygen documentation जो code comments से निकाली गई है, और research papers जैसे Polysemous codes, Billion-scale similarity search with GPUs, और Link and code से परिणामों को दोहराने के लिए benchmark READMEs शामिल हैं। Faiss MIT-licensed है। सार्वजनिक चर्चा GitHub Discussions में होती है, और bug reports और प्रश्नों के लिए issues page की निगरानी की जाती है।