abstracts-search -это проект по индексации 95 миллионов академических публикаций в одну семантическую поисковую систему. Метод, стоящий за ним, состоит в том, чтобы взять общедоступные рефераты в наборе данных OpenAlex и генерировать встроения с использованием модели all-MiniLM-L6-v2 предоставленной трансформаторами предложений.
Проект разделен на три хранилища:
abstracts-search : Hosts build.py и train.py , сценарии встраивания и индексации соответственноabstracts-embeddings : размещает необработанные встраивания (выпущенные под CC0) как набор данных об объятияхabstracts-index : размещает индекс и app.py , интерфейс поиска, как обнимающее место для лица (также выпущенное под CC0)Все данные, связанные с публикациями (названия, тезисы, авторы и т. Д.) Не предоставляются этим проектом. Скорее, он содержит только вставки, помеченные с помощью идентификаторов OpenAlex, и идентификаторы используются для получения этих данных из API OpenAlex. Поэтому подключение к Интернету всегда необходимо. Тем не менее, запуск семантического поиска локально может быть желательным.
Если это так, единственное репо, которое нужно клонировать,-это 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