Разрешение концептуальных меток для стандартизированных идентификаторов из существующих баз данных является фундаментальным требованием в процессе аннотирования биомедицинских данных. В то время как доступно несколько служб аннотации, в том числе биопортала и службы разрешения имен переводчика, большинство из них полагаются на простые механизмы сопоставления (соответственно MGREP и Solr). К сожалению, эти механизмы часто терпят неудачу при работе с концептуальными метками, которые демонстрируют существенные различия от стандартизированных идентификаторов или при работе с синонимами.
Мы предлагаем изучить использование поиска сходства вектора для повышения точности разрешения концепции. Мы будем использовать обширный набор данных, собранной проектом Babel Transtator, который включает в себя обширный хранилище идентификаторов, метки и синонимов из биомедицинского домена (Pubchem, Chembl, Uniprot, Mondo, Omim, HGNC, Drugbank и другие).
Во время биомедицинского связанного аннотационного хакатона наши ключевые цели заключаются в следующем:
Служба разрешения имен будет выявлена в виде API, разработанного OpenAPI, который принимает концептуальную метку в качестве ввода, и вернет список соответствующих сущностей, представленных словарем с результатом и их идентификатором, меткой, синонимов.
| Имя | Создание | Звезды GitHub | Написано в | SDK для | Язык запросов/API* | Реализовать векторные функции | Комментарий |
|---|---|---|---|---|---|---|---|
| Qdrant | Июль 2020 года | ~ 14K | Ржавчина | Python, JS, Rust, Go, .net | Openapi, Grpc | Косинус, Евклид, точка | Может использоваться в качестве локального автономного инструмента, в памяти или настойчивости на диске, не развертывая веб -сервис |
| Милвус | Октябрь 2019 | ~ 24K | Идти | Python, JS, Java, Go | Openapi ❓ | Косинус, Евклид, внутренний продукт | ака. Zilliz Cloud |
| Хрома | Октябрь 2022 года | ~ 9K | Питон | Python, JS | Openapi ❓ | ||
| Укоренившись | Март 2016 года | ~ 8K | Идти | Python, JS, Java, Go | Graphql api | Косинус, Евклид | |
| PGVector | Апрель 2021 года | ~ 6,5k | В | Через Postgres SDK ❓ | SQL | Косинус, Евклид, внутренний продукт, такси | Интегрирован в PostgreSQL |
*Язык запроса/API указывает, какой тип языка запросов или API может использоваться для запроса информации в векторной базе данных
Все эти продукты являются открытым исходным кодом, и все они предлагают простой веб -интерфейс для изучения векторной базы данных.
У большинства из них есть современный и простой API (кроме PGVector, который живет в PostgreSQL)
Справочный эталон для текстовых моделей моделей: https://huggingface.co/blog/mteb
Таблица лидеров: https://huggingface.co/spaces/mteb/leaderboard
Популярные модели встраивания:
bge-large-en-v1.5text-embedding-ada-002sentence-transformers/all-MiniLM-L6-v2jina-embeddings-v2-base-enembed-english-v3.0 Быть определенным.
Существующие тесты для векторных баз данных:
Предварительные результаты 19/01/2024 (синонимы Вавилона еще не полностью загружены, отсутствуют файлы после лекарственного средства: ген, белок, организмы, путь, UML): большинство проблем, по-видимому, решаются, кроме «крысы» и «доза ACP-044» (не время от времени, но не интересно)
Начать службы:
docker compose up -d Зайдите в контейнер workspace , чтобы запустить сценарии загрузки.
Загрузите синонимы Вавилоны и загрузите их в Vectordb:
make load(Экспериментальный) Нагрузочные пабдикции в PGVector:
python src/pubdict_load.pylimit функцию от VectordB (если 2 первые результаты из VectordB находятся с той же точки, то мы вернем только 1 результат, что не соответствует пределу 2, спросил пользователь)Возможным решением будет использование Postgres и PGVector, с 2 таблицами (одна для внедрения, одна для концепции Infos), но это сделает систему гораздо более сложной, чем магазин JSON.
Существует ли какой-нибудь самостоятельный вектор, который может поддерживать несколько неназванных векторов в течение одной точки? (Qdrant в настоящее время поддерживает только несколько именованных векторов, которые не соответствуют нашему варианту использования)
Введение Презентация: https://docs.google.com/presentation/d/1_ntmf-lthvybbvfusdxsdbeb0wm_yr_bvnnt-ivlktc/edit
Pubdictionary Эксперимент: https://docs.google.com/document/d/1nipvy2zhzedmf5bjcuzcbgzifn22v9kpzfo4etxl89m/edit
Заключение презентация: https://docs.google.com/presentation/d/1sjeuo4oegnmatrvcawb0tzjzr9sgnyh-efwtjf99lg/edit
Preprint biohackrxiv Paper: http://preview.biohackrxiv.org/papers/bdda0f94-f526-4f35-8768-8faf62d731fa/paper.pdf
Демо-API: https://concept-resolver.137.120.31.102.nip.io