abstracts-search adalah proyek tentang pengindeksan 95 juta publikasi akademik ke dalam mesin pencari semantik tunggal. Metode di baliknya adalah untuk mengambil abstrak yang tersedia untuk publik dalam dataset OpenAlex dan menghasilkan embeddings menggunakan model all-MiniLM-L6-v2 yang disediakan oleh kalimat-transformer.
Proyek ini dibagi menjadi tiga repositori:
abstracts-search : Hosts build.py dan train.py , masing-masing Script Embedding and Indexingabstracts-embeddings : Hosts the Raw Embeddings (dirilis di bawah CC0) sebagai dataset wajah pelukanabstracts-index : Hosts The Index dan app.py , Antarmuka Pencarian, sebagai Ruang Wajah Memeluk (juga dirilis di bawah CC0)Semua data yang terkait dengan publikasi (judul, abstrak, penulis, dll) tidak disediakan oleh proyek ini. Sebaliknya, ini hanya berisi embeddings yang diberi label dengan ID OpenAlex, dan ID digunakan untuk mengambil data itu dari API OpenalEx. Oleh karena itu koneksi internet selalu diperlukan. Namun, menjalankan pencarian semantik secara lokal mungkin diinginkan.
Jika itu masalahnya, satu-satunya repo yang perlu dikloning adalah 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
Semua bangunan dilakukan pada mesin dengan 16 GB RAM (ditambah 16 GB swap), RTX 2060 6GB, dan disk awal 1 TB, jadi ini menimbulkan persyaratan minimum untuk saat ini.
Ada dua cara untuk membangun indeks: dari abstracts-embeddings (disarankan) atau dari bucket OpenalEx S3.
Untuk membangun dari abstracts-embeddings , pastikan conda dan gcc-12 tersedia:
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
Jika Anda ingin membangun dari bucket OpenalEx S3, Anda mungkin juga tertarik untuk mempertahankan riwayat git. Sekali lagi, pastikan conda dan gcc-12 tersedia.
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