📄 Фармаконадзор · AI Автоматизация · Opella

Phase 1: Proof of Concept

12 недель · 1 продукт · 1 регион · только английский язык · теневой режим без риска для пациентов. Цель — доказать техническую состоятельность перед масштабированием.

12
недель
1
инженер
Shadow
только теневой режим

Что строим и что НЕ строим

Цель Phase 1

К концу Phase 1 — работающий BioBERT NER и классификатор серьёзности, запущенные в shadow mode на реальных кейсах Opella, с утверждённой QA документацией IQ/OQ.

Фокус — один продукт, один регион, только английский язык. Никакого production-влияния на кейсы до Go/No-Go решения.

НЕ строим в Phase 1
  • Интеграция с Argus API (Phase 2)
  • Поддержка нескольких языков (Phase 2 — 7 языков)
  • LLM/Claude слой для нарративного анализа (Phase 2)
  • Движок маршрутизации кейсов (Phase 2)
  • Пользовательский дашборд для ревьюеров (Phase 2)

До первой строки кода — измеряем текущее состояние

⚠️
Принцип: нельзя улучшить то, что не измерено
Метрики baseline фиксируются как исходные KPI в Project Charter и используются в финальном сравнении на Go/No-Go.
SQL к ARGUS Safety DB

Пишем read-only SQL-запросы к Oracle Argus Safety Database для извлечения из audit log хронологии каждого кейса: когда поступил, когда прошёл triage, когда был закодирован в MedDRA.

Измеряем: медиану и p90 времени по каждому шагу, объём на специалиста, процент переработок (rework rate), разбивку по источникам (email / web-form / E2B XML).

ARGUS SQL Oracle SQL
Python-анализ и визуализация

Данные из ARGUS загружаем через pandas, считаем перцентили (p50/p90/p99) по каждому шагу pipeline. Wilcoxon signed-rank test и bootstrap 95% CI — доказываем статистическую значимость для QA-отчёта.

Результат — PDF baseline-отчёт с boxplots и heatmaps, которые войдут в Project Charter, и живой Power BI дашборд для PV-менеджеров.

pandas scipy.stats Seaborn Power BI

6 спринтов · 12 недель

S0
Pre-work
–1 / 0
S1
Dev Env
1 – 2
S2
BioBERT NER
3 – 4
S3
Classifier
5 – 6
S4
Ingestion
7 – 8
S5
Shadow mode
9 – 10
S6
Go/No-Go
11 – 12
Sprint 0 · Pre-work
Разрешения и доступы
Недели –1 / 0
  • IT: read-only доступ к ARGUS DB + облачная sandbox
  • DPO: DPIA инициация для ML на данных пациентов
  • QA: CSV Risk Assessment встреча
  • PV Lead: Project Charter + экспорт 500 исторических кейсов
⚠ Блокер: без DPIA и IT-доступа Sprint 1 не стартует
Sprint 1
Dev-окружение + аннотация данных
Недели 1 – 2
  • Docker Compose стек среды разработки
  • Label Studio NER-аннотация (500+ кейсов)
  • PostgreSQL схема: cases, audit_log, whodrug, rsi_terms
  • Quality gate: Cohen's Kappa ≥ 0.85
✓ Gate: аннотированный датасет с Kappa-отчётом
Sprint 2
BioBERT NER · Fine-tuning
Недели 3 – 4
  • dmis-lab/biobert-v1.1 с HuggingFace
  • TokenClassification: DRUG, AE, PATIENT_AGE, PATIENT_SEX, REPORTER_TYPE
  • AWS g4dn.xlarge обучение (~$25 суммарно)
  • MLflow трекинг экспериментов
  • Target: F1 ≥ 0.90 по AE и DRUG
✓ Gate: F1-отчёт в MLflow, модель в реестре
Sprint 3
Классификатор серьёзности + RSI
Недели 5 – 6
  • DistilBERT multi-label: 6 ICH E2A выходов
  • Platt scaling калибровка вероятностей
  • pdfplumber → SmPC section 4.8 → RSI terms
  • sentence-transformers cosine ≥ 0.80 для RSI match
✓ Gate: AUC-ROC ≥ 0.90 на validation set
Sprint 4
Пайплайн приёма данных
Недели 7 – 8
  • FastAPI: /ingest/email, /ingest/web-form, /ingest/e2b
  • Kafka: raw-reports → nlp-results
  • E2B(R3) XML валидация по ICH XSD
  • Dead letter queue для failed parsing + alert
✓ Gate: все 3 источника обработаны в integration test
Sprint 5
Shadow mode · Накопление данных
Недели 9 – 10
  • AI параллельно с командой PV — результаты скрыты до завершения ручной проверки
  • Таблица shadow_comparison: human_serious, ai_serious, ai_confidence, matched
  • Streamlit дашборд: agreement rate, confusion matrix, расхождения
  • Один цикл дообучения по накопленным расхождениям
✓ Gate: agreement rate ≥ 90% на rolling 7-day window
Sprint 6 · Валидация
IQ/OQ · Слепой тест · Go/No-Go
Недели 11 – 12
  • IQ/OQ: 100 known-answer test cases
  • Слепой тест: 50 новых кейсов, AI vs. PV-эксперт независимо
  • Bootstrap 95% CI для precision/recall
  • MLflow Model Registry: promote to Staging
  • Go/No-Go: Lead AI + PV Lead + QA + IT Security
  • Финальный отчёт Phase 1 с метриками и рекомендациями
✓ Gate: ≥ 97% agreement · 0% FN на серьёзных кейсах · IQ/OQ approved

Где всё это работает

Phase 1 — это не production. Большая часть разработки идёт локально. Облако используется точечно: GPU только на период обучения, shadow mode на минимальном VM.

💻
Dev-окружение + аннотация данных
Sprint 1 · Недели 1–2
Локально
Где запускается

На твоём рабочем MacBook Pro. Docker Compose поднимает весь стек локально: PostgreSQL, Label Studio, FastAPI, MLflow. Никакого дополнительного железа — Mac Mini не нужен.

Label Studio для аннотации тоже запускается локально через Docker. PV-эксперт работает через браузер по адресу localhost:8080.

Требования к машине
MacBook Pro M2/M3 или аналогичный
16GB RAM минимум (PostgreSQL + Docker + Label Studio)
Docker Desktop установлен
VPN-доступ к корпоративной сети Opella (для ARGUS read-only)
Docker Desktop Label Studio
🧠
BioBERT NER · Fine-tuning
Sprint 2 · Недели 3–4
AWS · GPU · ~$25
Где запускается

На локальном Mac обучение BioBERT невозможно — CPU слишком медленный (дни вместо часов). Используем AWS EC2 g4dn.xlarge — арендуем на время обучения, потом выключаем.

Готовые веса модели скачиваем обратно на локальную машину. Inference (применение модели) работает на CPU — GPU для этого не нужен.

Стоимость и процесс
Обучение 4–6 часов на 500 кейсах
~$25 итого (Spot instance)
MLflow логирует метрики в реальном времени
После обучения — EC2 инстанс останавливается
Inference на MacBook — никакого GPU в production Phase 1
g4dn.xlarge Spot pricing MLflow local
📥
Пайплайн приёма данных · Shadow mode
Sprint 4–5 · Недели 7–10
AWS t3.medium · ~$30/мес
Где запускается

Для shadow mode нужен постоянно работающий сервер, доступный команде PV. Используем AWS EC2 t3.medium — простой VM с Docker Compose.

FastAPI + Kafka + PostgreSQL + NLP inference — всё в Docker Compose на одном VM. В production (Phase 2+) переезжает на Kubernetes или ECS.

Архитектура Phase 1
1 VM (t3.medium): FastAPI + Kafka + PostgreSQL
NLP inference: BioBERT на CPU (достаточно для shadow mode)
Streamlit дашборд: на той же VM, доступ по HTTPS
Данные: PostgreSQL на VM + S3 (MinIO → AWS S3) для сырых файлов
Сеть: VPN / private subnet, не открыто в интернет
t3.medium Docker Compose AWS S3
Итоговые расходы на инфраструктуру · Phase 1
~$25
BioBERT обучение
AWS g4dn.xlarge Spot
~$90
Shadow mode VM
AWS t3.medium × 3 мес
<$200
Итого за Phase 1
без зарплат

Go / No-Go: три условия

Все три должны быть выполнены одновременно. Нарушение любого — No-Go и дополнительный цикл улучшения.

≥ 97% согласие с экспертами на слепом тест-сете
50 новых кейсов. AI и PV-эксперт оценивают серьёзность независимо. Измеряется простое agreement, Cohen's Kappa и Bootstrap 95% CI для обоих.
0% пропущенных серьёзных кейсов (False Negative Rate = 0)
Критерий безопасности пациентов. Разрешён recall = 1.0 при любом precision. Лучше переклассифицировать несерьёзный как серьёзный, чем пропустить настоящий. Измеряется отдельно на слепом тест-сете.
Протокол IQ/OQ утверждён QA-подразделением
100 known-answer test cases с заранее зафиксированными ожидаемыми результатами. Документация хранится в QMS (Quality Management System). Является обязательным prerequisite перед любым расширением скоупа.

Что добавляет Phase 2

Phase 2 строится поверх валидированного ядра Phase 1 и расширяет скоуп с одного продукта на 10 рынков, добавляя LLM-слой для нарративного анализа, живую интеграцию с Argus Safety и полноценный интерфейс ревьюера.

7 языков (XLM-RoBERTa) Claude API · LLM-нарратив Argus Safety live API React reviewer dashboard 10 рынков Signal detection (PRR/ROR)
← Вернуться к полному роадмапу