記事のサマリー(TL;DR)
- AMD MI300X × Unslothで266,854件のがん症例QLoRA学習を約50分で完了(当初見積5時間比)
- 8ノードLangGraphトポロジー+3層Reflexion安全検証+Zero-PHIポリシーで院内完結型クリニカルAIを実現
- CRAG文書グレーディング成功率100%・RAG信頼スコア2.3超を達成し、ハルシネーション排除を設計レベルで担保
国内医療SaaS・病院情報システム担当者が注目すべき点
日本の医療機関はHIPAAに相当する個人情報保護法・医療情報安全管理ガイドライン(厚生労働省)により、患者データの院外送信に対して極めて厳格な対応が求められています。OncoAgentが示す「クラウドAPIへの依存ゼロ・オンプレミス完結」という構成は、この国内規制文脈と直接整合します。
LangGraph+ChromaDB(ローカル永続インデックス)+AMD ROCm対応のオープンスタック全体が公開予定であるため、EMR(電子カルテ)ベンダーや病院情報システム担当者が参照できるリファレンス実装として機能します。また、kintone・Salesforce Health Cloudなど既存業務SaaS上に専用UIを構築して意思決定支援レイヤーを乗せる構成にも応用可能なアーキテクチャパターンを提示しています。
合成データ生成(Qwen 3.6-27Bで約6,800件/時、API比56倍)と4-bit NF4 QLoRAの組み合わせは、がん以外の専門医療領域でも同様のドメイン特化ファインチューニングを現実的なコストで実施できることを示しており、医療AIプロダクト開発の工数見積もりを根本から変える可能性があります。
詳細
Abstract(要旨)
OncoAgent は、腫瘍科向けのオープンソース・プライバシー保護型臨床意思決定支援システムです。主な構成要素は以下のとおりです。
- デュアルティア微調整LLMアーキテクチャ:9Bパラメータの高速モデル(Tier 1)と27Bの深層推論モデル(Tier 2)
- LangGraphによる8ノードマルチエージェントトポロジー
- 4段階Corrective RAGパイプライン:NCCN・ESMOガイドライン70件以上を対象
- 3層Reflexion安全バリデーター:Zero-PHIポリシーを強制
- 学習基盤:AMD Instinct MI300X(HBM3 192 GB)上のUnslothフレームワークで266,854件のデータをQLoRA微調整
- 学習時間:約50分(シーケンスパッキング適用後)。APIベース生成比で合成データ生成速度56倍
- CRAG文書グレーディング成功率:100%、RAG信頼スコア:2.3超
- 完全オープンソース・オンプレミスデプロイ対応、クラウドAPI依存ゼロ
1. Introduction(はじめに)
腫瘍科は臨床医学の中でも特に情報密度が高く、認知負荷の大きい領域です。NCCNやESMOなどのエビデンスベースガイドラインは量・多様性・更新速度のいずれも急増しており、出版された知見と臨床現場の実践との間に恒常的な知識ギャップが生じています。
現在商用利用可能な多くのAI臨床支援システムは、次の3点で失敗しています。
- ハルシネーション:検証済みガイドラインに裏付けられない推奨の生成
- クラウドAPI依存:プライバシー上センシティブな病院環境でのオンプレミス展開を不可能にする
- モノリシックLLMアーキテクチャ:複数合併症を持つ複雑症例でコンテキスト飽和が発生しやすい
OncoAgentは3つの設計原則を柱とします。
- アーキテクチャ分解:8つの専門化されたLangGraphノードに臨床推論を分散
- グラウンデッド生成:4段階検索パイプラインで出力を必ずガイドラインに接地
- ハードウェア主権:AMD MI300X+ROCm+オープンソースフレームワークで推論・学習をすべてオンプレミス完結
2. Related Work(関連研究)
2.1 Clinical LLMs and Decision Support
BioMedLM、Med-PaLM 2、ClinicalBERTなどのドメイン特化ファインチューニングが汎用モデルを医療ベンチマークで上回ることは一貫して示されています。OncoAgentはその延長として、ハルシネーションの影響が最も深刻な腫瘍科のトリアージと治療経路推薦に特化します。
2.2 Multi-Agent Architectures
OncoAgentは以下の4つのSOTAパターンを統合しています。
- Claude Codeパターン:LLM推論から決定論的安全ハーネスを分離
- Hermesエージェントパターン:構造化ツール呼び出し+セッション単位メモリ分離
- Corrective RAG(Shi et al., 2024):文書関連性グレーディングとクエリ再構成
- Reflexion(Shinn et al., 2023):フィードバック拡張リトライによる自己訂正生成
2.3 Retrieval-Augmented Generation in Medicine
標準的なバイエンコーダ検索は医療用語の精度要件(例:「チロシンキナーゼ阻害剤」vs「TKI」)に不向きです。OncoAgentはクロスエンコーダ再ランキングとHyDE(Hypothetical Document Embeddings; Gao et al., 2022)を組み合わせ、医療同義語のミスマッチを解消します。
3. System Architecture(システムアーキテクチャ)
3.1 Overview
OncoAgentはLangGraphを用いたステートフル有向グラフとして実装されています。システム状態は不変のAgentState TypedDict(11セクション・約30キー)で表現され、各ノードは上流データを変更せずに特定キーに追記することで完全な監査証跡を保持します。
8ノードトポロジー:
Router → Ingestion → Corrective RAG → Specialist ↔ Critic → HITL Gate → Formatter → END
↓
Fallback → END
主要特性:
- 条件付きエッジ:5本
- Reflexionリトライループ:最大2回
- 高複雑度または低信頼度出力に対する強制HITL割り込み:1回
3.2 Complexity Router and Model Tiering
症例複雑度は専門家呼び出し前に加重加算モデルで定量化されます。
S = w_cancer + w_stage + w_mutations + w_treatment
| 因子 | 条件 | 重み |
|---|---|---|
| がん種 | 希少がん | +0.40 |
| がん種 | 原発不明 | +0.30 |
| ステージ | Stage IV | +0.25 |
| ステージ | Stage III | +0.15 |
| 変異 | 2件以上 | +0.30 |
| 変異 | 1件 | +0.15 |
| 既往治療 | キーワード一致 | +0.10 |
判定基準:S ≥ 0.5 → Tier 2(Qwen 3.6-27B深層推論)、S < 0.5 → Tier 1(Qwen 3.5-9B高速トリアージ)
検証例:Stage IVの膵臓がん+KRAS・BRCA2変異でS = 0.80となり、Tier 2へ正しくルーティング。
3.3 Corrective RAG with Document Grading
CRAGノードは取得した各文書の臨床関連性を専門家への転送前にグレーディングします。2値関連性分類に失敗した文書はクエリ再構成(最大1回リトライ)を自動トリガーします。
Qwen 3.5からQwen 2.5 Instructへのグレーディング担当モデル移行後、成功率が**0%から100%**に改善し、子宮がんトリアージテストでRAG信頼スコアが2.3超に到達しました。
3.4 Reflexion Safety Loop(Criticノード)
Criticノードは出力がHITLゲートに到達する前に3層検証カスケードを実行します。
- フォーマットチェック:OncoCoT出力スキーマへの構造的適合を検証
- 安全チェック:ガイドライン引用なしの絶対的投与量記載や薬物相互作用の省略などを決定論的ルールでスキャン
- LLMエンタイルメントチェック:専門家の推奨が取得されたRAGコンテキストに完全に裏付けられているかを検証
FAILの場合、Criticの具体的フィードバックをSpecialistコンテキストに注入してリトライ(最大2回)。
重要:CriticはLLM制御ロジックではなく決定論的コードとして動作するため、敵対的プロンプトによる安全バイパスが不可能です。
3.5 Human-in-the-Loop Gate and Fallback
HITLゲートは、Tier 2のすべてのケースおよびrag_confidence < 0.3のすべての出力に対して臨床医への強制割り込みを提供します。専用Fallbackノードは回復不能な失敗をキャッチし、いかなる失敗モードでもハルシネーションされた代替を返さず、臨床的に安全な拒否("Información no concluyente en las guías provistas")を返します。
3.6 Per-Patient Memory Isolation
PatientMemoryStoreモジュールは各患者セッションに一意のthread_id(形式:PT-XXXX)を割り当て、LangGraphのネイティブチェックポイントシステムに渡すことで、厳格な患者単位メモリ分離とセッション内多ターン対話の両立を実現します。
4. Knowledge Base Construction and RAG Pipeline(知識ベース構築とRAGパイプライン)
4.1 Guideline Ingestion and Sanitisation
138件のNCCN詳細ページを60秒未満で処理したWebスクレーパーが77件の医師向けガイドラインPDFを特定。PyMuPDF(fitz)でブロックレベル構造解析を実施し、複数列レイアウトのセマンティックな読み取り順序を保持。正規表現ベースのサニタイズで機関ブランディングを除去、患者向け資料はヒューリスティックフィルタリングで除外。
最終的な知識ベースは、HCC・NSCLC・乳がん・大腸がん・神経内分泌腫瘍を含む全主要がん種にわたる70件以上の専門腫瘍科ガイドラインをカバーします。
4.2 Medical Embeddings and Vector Store
汎用埋め込みモデル(例:all-MiniLM-L6-v2)は医療用語のセマンティクスが不十分なため採用を見送り。OncoAgentは以下を採用:
- 埋め込みモデル:
pritamdeka/S-PubMedBert-MS-MARCO(非対称医療セマンティック検索向けにPubMedとMS-MARCOでファインチューニング済み) - ベクターストア:ローカルChromaDB永続インデックス(クラウドゼロ・Zero-PHI準拠)
4.3 Four-Stage Retrieval Pipeline(4段階検索パイプライン)
| ステージ | コンポーネント | 機能 | 設定 |
|---|---|---|---|
| 1. 想起 | PubMedBERT Bi-Encoder | 広域検索 | top-15候補 |
| 2. 距離ゲート | コサイン距離フィルタ | ハルシネーション防止フロア | 閾値 = 0.10 |
| 3. 再ランキング | Cross-Encoder (MS-MARCO MiniLM) | クエリ・文書結合関連度 | top-5返却 |
| 4. コンテキスト整形 | 文字数制限 | LLMコンテキストウィンドウ内に収める | 最大6,000文字 |
Stage 2で失敗したクエリには専門家を呼び出さず安全な拒否を返す設計により、ドメイン外入力へのハルシネーション推奨をゼロに保証します。
NCCNコーパスに対する閾値キャリブレーション結果:
- 医療クエリのコサイン距離:~0.06–0.09
- ドメイン外クエリ:~0.11–0.15
- ハードしきい値:0.10
5. Dual-Tier QLoRA Fine-Tuning(デュアルティアQLoRA微調整)
5.1 Training Corpus: OncoCoT(266,854サンプル)
| ソース | 種別 | サンプル数 | 備考 |
|---|---|---|---|
| PMC-Patients | 実臨床症例 | ~85,000 | PubMed Central患者レポート |
| Asclepius | 実臨床データ | ~85,000 | 厳選医療QAコーパス |
| OncoCoT Synthetic | 合成(Qwen 3.6-27B生成) | 96,941 | MI300X上で~6,800件/時生成・棄却率0.65% |
| 合計 | — | 266,854 | 90/10学習/評価分割・SHA-256ハッシュ・重複排除 |
5.2 QLoRA Configuration
両ティアとも4ビットNormalFloat4(NF4)量子化(BitsAndBytes)を使用し、LoRAアダプタは主要プロジェクションモジュール(q_proj、k_proj、v_proj、o_proj、gate_proj、up_proj、down_proj)を対象とします。
| パラメータ | Tier 1(Qwen 3.5-9B) | Tier 2(Qwen 3.6-27B) |
|---|---|---|
| デバイスバッチサイズ | 4 | 2 |
| 勾配累積 | 4 | 8 |
| 実効バッチサイズ | 16 | 16 |
| 学習率 | 2×10⁻⁴ | 1×10⁻⁴ |
| LoRAランク(r) | 16 | 32 |
| シーケンスパッキング | True、2048トークン | True、2048トークン |
| アーリーストッピング | patience = 3 | patience = 3 |
| 量子化 | NF4 4-bit | NF4 4-bit |
5.3 AMD MI300X Optimisation with Unsloth
当初のHuggingFace transformers + PEFTパイプラインはMI300Xで2つの問題により失敗:
trl v0.24.0の厳格なEOS検証とQwen3VLProcessorラッパー間のトークン化競合- 標準精度での目標実効バッチサイズに対するVRAM不足
Unsloth FastLanguageModelへの移行で両問題を同時解決:
- VRAM使用量:60%削減(OOMから安定した64 GB、192 GBデバイス上)
- 学習速度:実効バッチ16で約16 s/stepへ~2倍改善
AMD ROCm固有の対応が必要なポイント:
- Qwen3VLProcessorラッパーではなくinner tokenizerをSFTTrainerに渡す
- EOS注入を無効化(
eos_token=None) - ROCm 6.2/gfx942対応bitsandbytesのインストール
is_bf16_supported()がROCmでFalseを返す問題に対し学習中はfp16、最終デプロイはBF16を使用
5.4 Sequence Packing and Throughput Breakthrough
SFTConfigのpacking=Trueにより複数の短い臨床レコードを2048トークンのシーケンスに連結し、パディングオーバーヘッドを排除。Unslothカーネルとシーケンスパッキングの相乗効果により、MI300X上で266,854サンプルのフルデータセット学習を約50分で完了(当初見積5時間比、約6倍の学習時間圧縮)。GPU使用率はピーク70%、スループットは11.3 s/イテレーションで安定。
Tier 1アダプタ(Checkpoint-1000)の結果:1,339ステップ学習、学習ロス≈0.05、アダプタサイズ187 MB。
6. Safety and Privacy Framework(安全・プライバシー設計)
6.1 Zero-PHI Policy
専用Zero-PHIリダクションノードがIngestionノードの最初のステップとして実行され、いかなるテキストもLLMに到達する前に処理されます。患者氏名・生年月日・MRN・住所・施設識別子を中立的なプレースホルダーに置換し、元のテキストは破棄。これによりHIPAA匿名化要件をポリシーではなく設計レベルで満足します。
6.2 Layered Safety Architecture
| レイヤー | メカニズム | 対象リスク |
|---|---|---|
| L1: 検索ゲート | コサイン距離ゲート(閾値0.10) | ドメイン外ハルシネーション |
| L2: 信頼度ゲート | RAG信頼スコア < 0.3 → ブロック | 低品質検索グラウンディング |
| L3: Reflexion Critic | フォーマット+安全+LLMエンタイルメント(最大2リトライ) | 根拠のない・安全でない出力 |
| L4: HITLゲート | Tier 2/フラグ付き症例への強制臨床医割り込み | 専門家判断が必要な高複雑度症例 |
L3はすべて決定論的コードとして実行されるため、敵対的プロンプトによる安全バイパスが不可能です。
7. Clinical Interface(臨床インターフェース)
UIはGradioのリアルタイムストリーミングアプリケーションとしてChatGPT風の会話レイアウトで実装されています。
- 左サイドバー:セッション管理、KPIタイル、エビデンスソースタブ
- メインチャットエリア:各ノード完了時のライブ推論更新表示
LangGraphの.stream(stream_mode="updates")APIにより{node_name: node_output}辞書をリアルタイム出力し、UIが各ノードを人間が読めるラベル(例:corrective_rag → 「NCCN/ESMOガイドライン検索中」)にマッピングして完全なパイプライン可視性を提供します。
インターフェースはWCAG 2.1 AA基準に準拠:Lucideスタイルインラインアイコン、slate-900/sky-500ダークテーマ、Figtree/Interタイポグラフィ、prefers-reduced-motion対応、すべてのトランジション200ms以下。
8. Results(結果)
| コンポーネント | 指標 | 値 |
|---|---|---|
| 知識ベース | 取り込みガイドライン数 | 70件以上、138 PDFを60秒未満で解析 |
| CRAGパイプライン | 文書グレーディング成功率(修正後) | 100% |
| CRAGパイプライン | RAG信頼スコア(子宮がんテスト) | 2.3+(修正前は0.0) |
| 複雑度ルーター | Stage IV膵臓がん+KRAS+BRCA2 | スコア0.80→Tier 2✅ |
| 学習(Tier 1, 9B) | 266kサンプル全体学習時間 | ~50分(見積5時間比) |
| 学習 | GPU使用率(MI300X) | ~70%ピーク |
| 学習 | VRAM使用量(Unsloth) | ~64 GB / 192 GB |
| 学習 | チェックポイント1000の学習ロス | ~0.05 |
| 合成データ生成 | MI300X vs API | 6,800 vs 120件/時(56倍↑) |
9. Discussion(考察)
9.1 Hardware Sovereignty as a Clinical Requirement
HIPAA(米国)・GDPR(EU)・各国同等規制のもとで運営される病院環境において、管理下のインフラ内にデータを保持する法的・倫理的義務は絶対的です。OncoAgentは、この制約内でSOTAマルチエージェント臨床AIが実現可能であることを示します。
9.2 The Throughput Breakthrough
合成データ生成の56倍加速(120→6,800件/時)と学習時間の~6倍圧縮は、時間制約のある環境でのドメイン特化ファインチューニングの実現可能性に対する実践的貢献です。AMDのCDNA3アーキテクチャとUnslothのTritonカーネル最適化・SFTシーケンスパッキングの組み合わせが、標準HuggingFaceパイプラインでは大きく利用不足になっている可能性が示唆されています。
9.3 Limitations
- 学習コーパスの約36%が合成生成症例
- 認定腫瘍科医による臨床精度検証が大規模には未実施
- 現在の知識ベースはNCCNガイドライン(主に英語)が中心;ESMOと非英語コーパスは今後の課題
- Tier 1アダプタはCheckpoint-1000時点;MedQAやUSMLE形式の腫瘍科ベンチマークでの評価は後続リリースで予定
10. Conclusion(結論)
OncoAgentは、SOTAマルチエージェント設計パターン・ドメイン特化ファインチューニング・4段階グラウンデッド検索パイプラインを統合した、腫瘍科向けの完全なオープンソース・プライバシー保護型臨床意思決定支援アーキテクチャを確立しました。
266kサンプルのQLoRA微調整、70件以上のガイドラインRAG、8ノードLangGraphオーケストレーション、3層Reflexion安全検証、リアルタイム臨床ストリーミングUI——これらすべてが単一のAMD Instinct MI300Xインスタンス上でROCm環境下で動作します。
Corrective RAG・Reflexion・HITLゲーティングを単一の安全スタックに統合したアーキテクチャ設計は、ハルシネーションの結果が生命に直結する医療領域の専門AI展開に向けた再現可能な設計ブループリントです。
すべてのコード・アダプタウェイト・OncoCoT合成コーパスは Hugging Face Spaces および GitHub で公開予定です。
免責事項:OncoAgentは臨床意思決定支援ツールです。すべての出力は臨床適用前に免許を持つ医療専門家によるレビューが必要です。