BORIS.AI - Интелигентна система за изследване на Лаймска болест
Платформа с изкуствен интелект за проучвания, анализ и прозрения относно Лаймска болест и преносими с кърлежи заболявания
Създадено от: LymeCare Alliance
Имейл: contacts at lymecare.org
BORIS.AI е мощен, цялостен AI асистент, създаден специално за биомедицински изследвания и анализ на научна литература. Той комбинира модерна архитектура тип RAG (Retrieval-Augmented Generation) с локална база данни, за да предоставя точни, контекстуално осъзнати отговори при пълна поверителност и сигурност на данните.
За разлика от базираните в облак системи, BORIS.AI работи изцяло на вашия компютър – не се изискват външни API заявки, освен при желание за взаимодействие с LLM. Това го прави идеален за работа с чувствителни или поверителни научни документи по етичен и сигурен начин.
Модул 1: Сканиращи модули за научни прозрения
Първият модул на BORIS.AI е Скенер за научни прозрения, предназначен да открива редки, необичайни или потенциално значими фрагменти от биомедицински текст в големи колекции от документи. Този инструмент използва както статистическо откриване на аномалии, така и интерпретация чрез LLM, за да извлече съдържание с възможни нови открития или пренебрегнати връзки.
Основни характеристики:
- Два режима на сканиране:
scann.py: Стриктен скенер за аномалии, който избира N най-високо оценени фрагменти по няколко метрики за аномалия.scan_rand.py: Хибриден скенер, който смесва топ аномалии с произволно избрани "изследователски" кандидати, за да открие неочаквани прозрения.- Оценка на база метрики: Всеки фрагмент се оценява по четири ключови метрики:
- Центроидно разстояние: Измерва до каква степен семантичното значение на фрагмента се отклонява от средното.
- TF-IDF рядкост: Открива фрагменти с необичайни комбинации от думи.
- Гъстота на термините: Оценява лексикалното богатство чрез съотношението уникални термини/общ брой думи.
- Оценка от Isolation Forest: Машинно самообучаваща се оценка за това колко аномален е фрагментът спрямо останалите.
- Интерпретация чрез LLM: След подбора, всеки фрагмент се изпраща до LLM (чрез OpenAI-съвместим API) за оценка на неговата научна значимост.
- Кеширане и ефективност: Ембедингите се съхраняват в
index/embeddings_anomaly.npy, за да се избегне повторна обработка и да се ускори работата.
Работен процес:
- Зареждане на предварително обработени фрагменти от
index/chunks.json. - Филтриране на фрагменти с ниско съдържание или само с цитати.
- Генериране на ембединги със
intfloat/multilingual-e5-largeмодел. - Изчисляване на TF-IDF вектори за анализ на лексикалната рядкост.
- Изчисляване и комбиниране на аномални оценки в композитна метрика.
- Избор на фрагменти на база избраната стратегия за сканиране.
- Изпращане към LLM за научна интерпретация.
- Генериране на подробни отчети в Markdown и обикновен текст във
/logs/директорията.
Приложения:
- Генериране на хипотези от медицинска литература.
- Идентифициране на редки симптоми или резултати от лечения в клинични изследвания.
- Откриване на пренебрегнати данни в дълги научни статии.
- Подобряване на систематични прегледи чрез извличане на по-дълбоки прозрения.
Модул 2: Предсказване на биомедицински връзки
Вторият модул е посветен на Предсказване на биомедицински връзки, като идентифицира скрити зависимости между различни текстови фрагменти. Използва се комбинация от векторна прилика, логистична регресия и LLM интерпретация, за да се изгради граф от свързани понятия с обяснения за всяка връзка.
Основни характеристики:
- Създаване на семантичен граф: Възлите представляват отделни текстови фрагменти, а връзките възникват при съвпадение на ключови думи или висока косинусна прилика между ембедингите.
- Класификатор с логистична регресия: Обучен на реални връзки (положителни примери) и случайни несвързани двойки (отрицателни примери), за да предсказва нови връзки.
- Обясним изкуствен интелект: Предсказаните връзки се валидират от LLM, който генерира научни обяснения.
- Визуални изходи: Включва графики и топлинни карти за визуализация на структурата и увереността в откритите връзки.
Работен процес:
- Зареждане на текстови фрагменти и ембединги от
/index/. - Изграждане на граф на база ембединг разстояния и съвпадения на ключови думи.
- Обучение на логистична регресия за разграничаване между реални и случайни връзки.
- Предсказване на нови, високоуверени връзки.
- Заявка към LLM за валидиране и обяснение на всяка предсказана връзка.
- Генериране на визуализации и подробен доклад с резултатите.
Изходни файлове:
/logs/link_prediction_report.md: Пълен доклад с обяснения за топ предсказанията, генерирани от LLM./logs/link_prediction_graph.png: Визуализация на графа с биомедицински прилики./logs/link_prediction_heatmap.png: Топлинна карта на увереността във връзките между фрагменти.
Приложения:
- Свързване на симптоми със съпътстващи заболявания в клинични бележки.
- Картографиране на връзки между гени, протеини и болести.
- Откриване на индиректни лекарствени взаимодействия или странични ефекти.
- Подкрепа за изследвания, базирани на хипотези, чрез откриване на знания.
Модул 3: Тематично моделиране с BioBERT
Третият модул на BORIS.AI е посветен на Тематично моделиране, извличане на тематични структури от големи колекции биомедицински текстове. Изграден около BioBERT и BERTopic, този модул автоматично открива кохерентни теми, обозначава ги с описателни етикети и предоставя представителни примери от входните документи.
Основни характеристики:
- Домейн-специфични ембединг вектори: Използва
dmis-lab/biobert-base-cased-v1.1, вариант на BERT, дообучен върху биомедицински текстове, за осигуряване на висококачествени семантични представяния. - Алгоритъм за клъстериране: HDBSCAN се използва за откриване на плътни региони в ембединг пространството, позволявайки гъвкаво и надеждно идентифициране на теми.
- Човешки четими етикети: Темите се обозначават чрез BERTopic, който комбинира UMAP за намаляване на размерността и CountVectorizer за извличане на кратки и информативни описания.
- Структуриран изход: Резултатите се записват във файл във формат Markdown (
logs/biobert_topics.md) с ясна структура, включваща ID на темите, етикети, ключови думи и примерни изречения.
Работен процес:
- Зареждане на текстовите фрагменти от
index/chunks.json. - Почистване и предварителна обработка на текста чрез премахване на кратки или нерелевантни записи.
- Генериране на домейн-специфични ембединг вектори чрез BioBERT.
- Прилагане на UMAP за намаляване на размерността и HDBSCAN за клъстериране.
- Извличане на етикети и представителни примери чрез BERTopic.
- Запис на структурираните резултати в папката logs за лесен преглед.
Изисквания:
- Валиден файл
index/chunks.json, съдържащ достатъчно дълги и смислени текстови фрагменти (например абстракти, параграфи). - Поне няколко десетки документа за ефективно тематично моделиране.
- Параметри като
min_dfилиmin_cluster_sizeмогат да бъдат настроени за подобряване на резултатите.
Приложения:
- Експлораторен анализ на големи научни корпуси.
- Тематична категоризация на научни статии или клинични доклади.
- Автоматизирано обобщение на литературни бази данни.
- Вход за последващи задачи като анализ на тенденции или картографиране на знания.
С какво BORIS.AI се отличава
BORIS.AI не е просто чатбот или търсачка — той е пълноценен AI-базиран научен асистент, създаден специално за сложността на биомедицинската литература. Ето какво го прави уникален:
- Дизайн с приоритет върху поверителността: Всичко работи локално — без нужда от външни API, освен при желание за LLM заявки.
- Модулна архитектура: Всеки компонент е самостоятелен и може да бъде разширяван или персонализиран независимо.
- Цялостен анализ: Комбинира RAG с откриване на аномалии, предсказване на връзки и тематично моделиране за дълбоко, многопластово извличане на знания.
- Ефективно индексиране: Интелигентно, инкрементално индексиране позволява бързи актуализации без нужда от преработка на всички документи.
- Научен фокус: Специално създаден за работа със сложни, технически и домейн-специфични текстове.
Идеален за
BORIS.AI е идеален за:
- Изследователи, провеждащи прегледи на научна литература.
- Клиницисти, анализиращи пациентски досиета или терапевтични насоки.
- Данни учени, изграждащи системи за откриване на знания.
- Академични институции, подкрепящи експлораторни изследвания.
- Здравни организации, разработващи системи за подпомагане на решения.
- Основни скриптове:
main.py– Стартира чатбота и потребителския интерфейс за търсене чрез Gradio.ui.py– Съдържа логиката на потребителския интерфейс с няколко раздела за различни модули.ingest.py– Индексира нови или променени документи с хибридно извличане FAISS + BM25.remove_file.py– Позволява пълно премахване на всеки индексиран файл от системата.retriever.py– Управлява хибридното извличане чрез комбиниране на векторна близост (FAISS) и съвпадение по ключови думи (BM25).utils.py– Помощни функции, включително зареждане на документи, разделяне на части, генериране на ембединг и работа с метаданни.config.py– Централен конфигурационен файл за модели, пътища, API ключове и други константи.
Структура на папките
data/docs/– Съхранявайте тук своите PDF, Markdown и TXT файлове за индексиране.static/– Огледално копие наdata/docs/, което позволява кликаеми линкове във визуалния интерфейс.index/– Съхранява всички ембединги, индекси и метаданни (FAISS индекс, BM25 данни, chunks.json, paths.json).logs/– Съдържа изходни отчети от различни модули като сканиране за аномалии, предсказване на връзки и тематичен анализ.
Инсталация и настройка
- Инсталирайте Python 3.10 или 3.11, като отбележите "Add Python to PATH" по време на инсталацията.
- Създайте проектна папка (напр.
D:\RAG) и поставете всички основни скриптове вътре. - Настройте виртуална среда:
- Windows:
python -m venv venv && venv\Scripts\activate - macOS/Linux:
python3 -m venv venv && source venv/bin/activate
- Windows:
- Инсталирайте зависимостите: Изпълнете
pip install -r requirements.txt. - Индексирайте своите документи: Поставете файловете в
data/docs/и стартирайтеpython ingest.py. Системата ще:- Открива нови или променени файлове чрез сравнение на MD5 хешове.
- Ги разделя на семантични части.
- Генерира ембединги.
- Актуализира FAISS и BM25 индексите инкрементално.
- Пропуска вече обработените файлове и премахва дубликати.
- Стартирайте визуалния интерфейс: Стартирайте приложението с
python main.pyи отворете http://127.0.0.1:7860 в браузъра си.
Модул 1: Сканиране за научни прозрения
BORIS.AI включва два усъвършенствани инструмента за идентифициране на необичайни или потенциално значими фрагменти от биомедицински текст:
- scann.py – Стриктен скенер за аномалии, използващ статистически методи и неконтролиран машинен анализ за откриване на отклонения.
- scan_rand.py – Хибриден скенер, който комбинира фрагменти с най-високи оценки и случайни проби за откриване на пренебрегнати прозрения.
Как работят:
- Предобработка: Зарежда части от
index/chunks.json, филтрира фрагменти с ниско съдържание или само с цитати. - Генериране на ембединги: Използва модела
intfloat/multilingual-e5-largeза създаване на ембединги на изреченията, кеширани вindex/embeddings_anomaly.npy. - TF-IDF векторизация: Измерва лексикалната рядкост в корпуса.
- Метрики за аномалия: Всеки фрагмент получава оценка въз основа на:
- Разстояние до центроида (семантичен коефициент за отклонение)
- TF-IDF рядкост (рядко срещани словосъчетания)
- Гъстота на термините (лексикално богатство)
- Оценка от Isolation Forest (обучение с машини за откриване на аномалии)
- Стратегия за избор:
scann.pyизбира N най-високо оценени фрагменти.scan_rand.pyизбира N_стриктни и произволно избира N_случайни измежду следващите 100 кандидата.
- Интерпретация с LLM: Избраните фрагменти се изпращат към OpenAI (или съвместим API) с подканване за оценка на тяхната научна значимост.
- Изходен отчет: И двата инструмента генерират подробни отчети в Markdown и обикновен текст в директорията
/logs/.
Модул 2: Предсказване на биомедицински връзки
Този модул идентифицира скрити връзки между научни фрагменти чрез ембединг сходство, логистична регресия и логическо разсъждение чрез LLM.
Основни стъпки:
- Зареждане на текстови фрагменти и ембединги: Чете
chunks.json,paths.jsonиembeddings.npyот/index/. - Създаване на граф със сходства: Създава връзки между възли, ако:
- Тяхната косинусна сходност надвишава зададен праг.
- Споделят биомедицински ключови думи (напр. имена на гени, заболявания).
- Обучение на модел с логистична регресия:
- Положителни примери = съществуващи връзки в графа.
- Отрицателни примери = случайни двойки без връзка.
- Характеристики = съединени ембединги на двойките възли.
- Предсказване на нови връзки: Идентифицира високоуверени потенциални връзки, които все още не съществуват.
- Разсъждение с LLM: Пита LLM дали предсказаните връзки имат научна логика и генерира обяснения.
- Визуализации:
- Оформление на графа чрез spring алгоритъм (
networkx) - Топлинна карта с нива на увереност между фрагменти (
matplotlib,seaborn)
- Оформление на графа чрез spring алгоритъм (
- Изход:
/logs/link_prediction_report.md– Подробно обяснение на водещите предсказания./logs/link_prediction_graph.png– Визуален граф на връзките./logs/link_prediction_heatmap.png– Топлинна карта с лесни за четене етикети.
Модул 3: Моделиране на теми с BioBERT
Този модул извършва неконтролирано откриване на теми в големи биомедицински корпуси, използвайки BioBERT и BERTopic за извличане на смислени тематични структури.
Работен процес:
- Вход: Зарежда текстови фрагменти от
index/chunks.json. - Почистване: Премахва нерелевантно съдържание, нормализира текста, филтрира кратки или празни записи.
- Вграждане: Генерира семантични представяния, специфични за биомедицинската област, с помощта на
dmis-lab/biobert-base-cased-v1.1. - Намаляване на размерността: Прилага UMAP (използван вътрешно от BERTopic).
- Клъстериране: Използва HDBSCAN за идентифициране на плътни зони в пространството на вгражданията.
- Етикетиране на теми: Извлича четими етикети и представителни примери чрез BERTopic.
- Изход: Запазва резултатите в
logs/biobert_topics.mdвъв структуриран и лесен за четене формат.
Технически изисквания
- Операционна система: Windows / macOS / Linux
- Версия на Python: Препоръчва се 3.10 или 3.11
- RAM: Поне 4 GB (препоръчително 8+ GB)
- Интернет връзка: Изисква се само за първоначалната настройка и изтегляне на модели.
Защо BORIS.AI?
- Поверителност на първо място: Не се използват външни API-та — всичко работи локално, с изключение на незадължителни LLM заявки.
- Модулен дизайн: Лесно разширим с нови модули или интегрирани инструменти.
- Научен фокус: Специално създаден за работа със сложни биомедицински текстове и изследователски процеси.
- Ефективно индексиране: Умно прирастово индексиране, кеширане и премахване на дубликати за минимизиране на използваните ресурси.
- Цялостен анализ: Комбинира RAG с откриване на аномалии, предсказване на връзки и моделиране на теми за извличане на задълбочена информация.
Приложения
- Ускоряване на прегледа на литература
- Генериране на хипотези в биомедицински изследвания
- Откриване на знания в големи колекции от документи
- Системи за подпомагане на клинични решения
- Потоци за куриране и анотиране на данни
- Експериментални изследвания на нововъзникващи заболявания (напр. Лаймска болест, автоимунни разстройства)