abstracts-search هو مشروع حول فهرسة 95 مليون منشور أكاديمي في محرك بحث دلالي واحد. تتمثل الطريقة التي تقف وراء ذلك في أخذ الملخصات المتاحة للجمهور في مجموعة بيانات Openalex وإنشاء التضمينات باستخدام نموذج all-MiniLM-L6-v2 الذي يوفره محولات الجملة.
يتم تقسيم المشروع إلى ثلاثة مستودعات:
abstracts-search : المضيفين build.py و train.py ، البرامج النصية للتضمين وفهرسة على التواليabstracts-embeddings : يستضيف التضمينات الخام (التي تم إصدارها تحت CC0) كمجموعة بيانات وجه معانقةabstracts-index : يستضيف الفهرس و app.py ، واجهة البحث ، كمساحة وجه معنقة (تم إصدارها أيضًا بموجب CC0)لا يتم توفير جميع البيانات المرتبطة بالمنشورات (العناوين ، الملخصات ، المؤلفين ، إلخ) من قبل هذا المشروع. بدلاً من ذلك ، فإنه يحتوي فقط على تضمينات تحمل معرفات Openalex ، ويتم استخدام المعرفات لجلب تلك البيانات من Openalex API. لذلك هناك حاجة دائمًا إلى اتصال الإنترنت. ومع ذلك ، قد يكون تشغيل البحث الدلالي محليًا أمرًا مرغوبًا فيه.
إذا كان هذا هو الحال ، فإن الريبو الوحيد الذي يجب استنساخه هو abstracts-index :
git lfs install
git clone https://huggingface.co/spaces/colonelwatch/abstracts-index
cd abstracts-index
pip3 install -r requirements.txt
python3 app.py
تم إجراء جميع المباني على آلة بذاكرة وصول عشوائي 16 جيجابايت (بالإضافة إلى مبادلة 16 جيجابايت) ، و RTX 2060 6 جيجابايت ، وقرص خدش 1 تيرابايت ، وبالتالي فإن هذا يشكل الحد الأدنى من المتطلبات في الوقت الحالي.
هناك طريقتان لبناء الفهرس: من abstracts-embeddings (الموصى بها) أو من دلو Openalex S3.
للبناء من abstracts-embeddings ، تأكد من المتاحة conda و gcc-12 :
git lfs install
git clone https://github.com/colonelwatch/abstracts-search
env CC=gcc-12 conda env create -f environment.yml
conda activate abstracts-search
git submodule update --init abstracts-embeddings
cd abstracts-embeddings
cat embeddings_*.memmap > embeddings.memmap
cd ..
env GIT_LFS_SKIP_SMUDGE=1 git submodule update --init abstracts-index
python train.py
إذا كنت تبحث عن البناء من دلو Openalex S3 ، فقد تكون مهتمًا أيضًا بالاحتفاظ بتاريخ GIT. مرة أخرى ، تأكد من توفر conda و gcc-12 .
git lfs install
git clone https://github.com/colonelwatch/abstracts-search
env CC=gcc-12 conda env create -f environment.yml
conda activate abstracts-search
env GIT_LFS_SKIP_SMUDGE=1 git submodule update --init abstracts-embeddings
rm abstracts-embeddings/embeddings_*.memmap
rm abstracts-embeddings/openalex_ids.txt
python build.py
env GIT_LFS_SKIP_SMUDGE=1 git submodule update --init abstracts-index
python train.py