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/ – Съдържа изходни отчети от различни модули като сканиране за аномалии, предсказване на връзки и тематичен анализ.

Инсталация и настройка

  1. Инсталирайте Python 3.10 или 3.11, като отбележите "Add Python to PATH" по време на инсталацията.
  2. Създайте проектна папка (напр. D:\RAG) и поставете всички основни скриптове вътре.
  3. Настройте виртуална среда:
    • Windows: python -m venv venv && venv\Scripts\activate
    • macOS/Linux: python3 -m venv venv && source venv/bin/activate
  4. Инсталирайте зависимостите: Изпълнете pip install -r requirements.txt.
  5. Индексирайте своите документи: Поставете файловете в data/docs/ и стартирайте python ingest.py. Системата ще:
    • Открива нови или променени файлове чрез сравнение на MD5 хешове.
    • Ги разделя на семантични части.
    • Генерира ембединги.
    • Актуализира FAISS и BM25 индексите инкрементално.
    • Пропуска вече обработените файлове и премахва дубликати.
  6. Стартирайте визуалния интерфейс: Стартирайте приложението с python main.py и отворете http://127.0.0.1:7860 в браузъра си.

Модул 1: Сканиране за научни прозрения

BORIS.AI включва два усъвършенствани инструмента за идентифициране на необичайни или потенциално значими фрагменти от биомедицински текст:

  • scann.py – Стриктен скенер за аномалии, използващ статистически методи и неконтролиран машинен анализ за откриване на отклонения.
  • scan_rand.py – Хибриден скенер, който комбинира фрагменти с най-високи оценки и случайни проби за откриване на пренебрегнати прозрения.

Как работят:

  1. Предобработка: Зарежда части от index/chunks.json, филтрира фрагменти с ниско съдържание или само с цитати.
  2. Генериране на ембединги: Използва модела intfloat/multilingual-e5-large за създаване на ембединги на изреченията, кеширани в index/embeddings_anomaly.npy.
  3. TF-IDF векторизация: Измерва лексикалната рядкост в корпуса.
  4. Метрики за аномалия: Всеки фрагмент получава оценка въз основа на:
    • Разстояние до центроида (семантичен коефициент за отклонение)
    • TF-IDF рядкост (рядко срещани словосъчетания)
    • Гъстота на термините (лексикално богатство)
    • Оценка от Isolation Forest (обучение с машини за откриване на аномалии)
  5. Стратегия за избор:
    • scann.py избира N най-високо оценени фрагменти.
    • scan_rand.py избира N_стриктни и произволно избира N_случайни измежду следващите 100 кандидата.
  6. Интерпретация с LLM: Избраните фрагменти се изпращат към OpenAI (или съвместим API) с подканване за оценка на тяхната научна значимост.
  7. Изходен отчет: И двата инструмента генерират подробни отчети в Markdown и обикновен текст в директорията /logs/.

Модул 2: Предсказване на биомедицински връзки

Този модул идентифицира скрити връзки между научни фрагменти чрез ембединг сходство, логистична регресия и логическо разсъждение чрез LLM.

Основни стъпки:

  1. Зареждане на текстови фрагменти и ембединги: Чете chunks.json, paths.json и embeddings.npy от /index/.
  2. Създаване на граф със сходства: Създава връзки между възли, ако:
    • Тяхната косинусна сходност надвишава зададен праг.
    • Споделят биомедицински ключови думи (напр. имена на гени, заболявания).
  3. Обучение на модел с логистична регресия:
    • Положителни примери = съществуващи връзки в графа.
    • Отрицателни примери = случайни двойки без връзка.
    • Характеристики = съединени ембединги на двойките възли.
  4. Предсказване на нови връзки: Идентифицира високоуверени потенциални връзки, които все още не съществуват.
  5. Разсъждение с LLM: Пита LLM дали предсказаните връзки имат научна логика и генерира обяснения.
  6. Визуализации:
    • Оформление на графа чрез spring алгоритъм (networkx)
    • Топлинна карта с нива на увереност между фрагменти (matplotlib, seaborn)
  7. Изход:
    • /logs/link_prediction_report.md – Подробно обяснение на водещите предсказания.
    • /logs/link_prediction_graph.png – Визуален граф на връзките.
    • /logs/link_prediction_heatmap.png – Топлинна карта с лесни за четене етикети.

Модул 3: Моделиране на теми с BioBERT

Този модул извършва неконтролирано откриване на теми в големи биомедицински корпуси, използвайки BioBERT и BERTopic за извличане на смислени тематични структури.

Работен процес:

  1. Вход: Зарежда текстови фрагменти от index/chunks.json.
  2. Почистване: Премахва нерелевантно съдържание, нормализира текста, филтрира кратки или празни записи.
  3. Вграждане: Генерира семантични представяния, специфични за биомедицинската област, с помощта на dmis-lab/biobert-base-cased-v1.1.
  4. Намаляване на размерността: Прилага UMAP (използван вътрешно от BERTopic).
  5. Клъстериране: Използва HDBSCAN за идентифициране на плътни зони в пространството на вгражданията.
  6. Етикетиране на теми: Извлича четими етикети и представителни примери чрез BERTopic.
  7. Изход: Запазва резултатите в logs/biobert_topics.md във структуриран и лесен за четене формат.

Технически изисквания

  • Операционна система: Windows / macOS / Linux
  • Версия на Python: Препоръчва се 3.10 или 3.11
  • RAM: Поне 4 GB (препоръчително 8+ GB)
  • Интернет връзка: Изисква се само за първоначалната настройка и изтегляне на модели.

Защо BORIS.AI?

  • Поверителност на първо място: Не се използват външни API-та — всичко работи локално, с изключение на незадължителни LLM заявки.
  • Модулен дизайн: Лесно разширим с нови модули или интегрирани инструменти.
  • Научен фокус: Специално създаден за работа със сложни биомедицински текстове и изследователски процеси.
  • Ефективно индексиране: Умно прирастово индексиране, кеширане и премахване на дубликати за минимизиране на използваните ресурси.
  • Цялостен анализ: Комбинира RAG с откриване на аномалии, предсказване на връзки и моделиране на теми за извличане на задълбочена информация.

Приложения

  • Ускоряване на прегледа на литература
  • Генериране на хипотези в биомедицински изследвания
  • Откриване на знания в големи колекции от документи
  • Системи за подпомагане на клинични решения
  • Потоци за куриране и анотиране на данни
  • Експериментални изследвания на нововъзникващи заболявания (напр. Лаймска болест, автоимунни разстройства)