このベンチマークが存在する理由と、何をテストするのか

AIによる血液検査の読み方は、消費者向けおよび臨床のワークフローでますます使われているが、検査医学に合わせて再現可能な評価枠組みを提供することは依然として一般的ではない。この状況で最も重要なのは、一般的な医療QAベンチマークで扱われるものではない問いである: 平均赤血球容積が同一でも、エンジンは鉄欠乏とサラセミア(ヘテロ接合体)を分けられるのか、肝炎としてギルバート症候群を過剰診断しないか、そして完全に正常なスクリーニングパネルで病理を“作り出す”ことはないのか?

Kantesti AIエンジンが凍結した採点基準に照らして評価される方法を示す、事前登録済みルーブリックのフローダイアグラム
図1: ベンチマークのアーキテクチャ――すべてのケース、すべてのキーワード、すべての採点システムは、エンジンが1つのPDFも見る前に、ソースコード内で固定されている。事後のルーブリック調整は設計上不可能です。.

単一の血液検査パネルには、通常、複数の競合する解釈を支えるだけの十分な情報が含まれています。そして、解釈する臨床医の仕事は、教科書的な答えを取り出すことではなく、それらの解釈を互いに比較して重み付けすることです。教科書的なケースでうまくいくエンジンでも、最も重要なケースでは失敗することがあります。鑑別診断の落とし穴、単独で見ると不安を招く良性のバリアント、そして、完全に正常なパネルが自信のあるアシスタントに病理を“作り出させてしまう”ケースです。.

このベンチマークは、まさにそうした失敗モードを想定して構築されました。15の各ケースは、特定の診断特性のために選ばれています。たとえば、同一の平均赤血球容積(MCV)を持つβサラセミア特性と区別して維持しなければならない鉄欠乏性の小球性、異常が単独の間接型高ビリルビン血症のみであるギルバート症候群の提示、そして15パラメータのスクリーニングパネルで、すべての検体(アナライト)が基準範囲内に収まっているケースです。ルーブリックは、各ケースをその条件に即して読み取るエンジンを評価し、そのような診断が妥当でないのに自信をもって診断に到達しようとするエンジンを減点します。.

Thomas Klein, MDとして、私はこのケースパネルを選びました。なぜなら、これらは私が実験室医学のアシスタントが最も頻繁に間違えるパターンだからです。. 高コストな失敗モードは「まれな疾患を見逃すこと」ではありません。そうではなく、それを持っていない患者に日常的な病理を"捏造する"ことです。. 私たちの 医学的検証 hubはより広い枠組みを説明しています。このページでは、V11エンジンに対する適用結果を説明します。.

最新の参照実行 — V11(2026年4月)

Kantesti AI Engine V11の2026年4月の参照実行では、複合スコアが 99.12% 事前登録された15ケースのルーブリックで得られました。過剰診断のトラップケースはいずれも上限(天井)に達しました。メンツァー指数は、鉄欠乏とサラセミアの鑑別において正しく適用されました。.

複合 99.12% 15/15ケースがスコア
0.998 構造スコア
0.998 臨床スコア
20.17 s 平均レイテンシ
0 / 13 トラップの偽陽性

複合式は3つの要素を組み合わせます: 構造的適合 7つの必須レポートセクションと16の必須サブセクションに, 臨床的正確性 キーワード再現率(リコール)+採点システムの再現率(リコール)+確率分布の妥当性チェックとして測定し、 応答レイテンシ 20秒の主要なサービスレベル目標に対して。正確な分解は、下記のルーブリック式に示します。.

複合= 0.35 × 構造 + 0.55 × 臨床 + 0.10 × レイテンシ

残りのヘッドルーム0.88パーセントポイントは、ほぼ全てがレイテンシ損失に分解される。すなわち、フェーズ2のフォールバック呼び出しが3回あり、それぞれ複合で-0.05ずつ寄与して、0.88ポイントの不足分のうち約0.60を占めた。臨床的な内容に起因するのではない。エンジンは15件のいずれのケースでも正しい診断を見逃さなかった。不足した場合は、少数の呼び出しにおいて、20秒の主要なパス目標よりわずかに長くかかったことによる。.

7つの医療専門分野にまたがる15症例

ケースパネルは7つの専門領域――血液学、内分泌学、代謝医学、肝臓学、腎臓学、心臓病学、リウマチ学――に加え、2つの専用ハイパー診断トラップケースを含む。各ケースは、書面によるインフォームド・コンセントのもとで、Kantesti臨床データリポジトリから抽出した匿名化済みの実患者記録である。.

7つの医療専門分野に分配された15件の匿名化された血液検査症例のカバレッジマップに加え、過剰診断トラップ症例
図2: 血液学、内分泌学、代謝医学、肝臓学、腎臓学、心臓病学、リウマチ学におけるケース分布に加え、2つのトラップケース――ギルバート症候群と、完全に正常なスクリーニングパネル。.

匿名化はセーフハーバー方式で実施した。すべての直接識別子を削除または置換し、各記録にBT-NNN-LABELの形式でベンチマーク内部ケースコードを割り当てた。処理は以下に従って実施した。 GDPR第9条(2)(j) 適切な保護措置を伴う科学研究、および同等の英国GDPRの規定に従う。公表されたハーネス、技術レポート、またはリリースされたデータセットのいずれにも、個人を特定できる情報は一切含まれていない。.

血液学(3) BT-001、BT-006、BT-007 鉄欠乏性貧血 · B12欠乏 · βサラセミア(軽症)
内分泌学(3) BT-002、BT-008、BT-012 橋本病 · インスリン抵抗性を伴うPCOS · 重度のビタミンD欠乏症
代謝(2) BT-003、BT-013 代謝性症候群を伴う2型糖尿病(T2DM) · 痛風リスクを伴う高尿酸血症
肝臓学(2) BT-004、BT-009 NAFLD / NASH · 急性ウイルス性肝炎
腎臓学 · 心臓病学 · リウマチ学(3) BT-005、BT-010、BT-011 CKDステージ3 · 動脈硬化性脂質異常症 · 全身性エリテマトーデス
トラップケース(2) BT-014、BT-015 ギルバート症候群(孤立性の間接型高ビリルビン血症) · 成人のスクリーニングは完全に正常

なぜこの特定の分布なのか

血液学は3件です。微小球性の鑑別と大球性の鑑別が、実世界の検査業務における最大の“落とし穴”の高頻度領域だからです。内分泌学も3件です。橋本病、PCOS、ビタミンD欠乏症の提示は、診断の形が異なるためです(自己抗体主導、ホルモン比主導、単一マーカー主導)。単一症例の専門領域がなお意味を持つのは、CKD、ASCVDリスク、SLEのそれぞれに独自の採点システムがあり、エンジンが呼び出すべきもの(それぞれKDIGOステージング、ASCVD 10年リスク、2019 EULAR/ACR SLE基準)を持っているからです。.

事前登録済みルーブリックの解説

事前登録(pre-registration)は、このベンチマークにおける最も重要な方法論上の選択です。想定されるすべての診断、すべての臨床採点システム、そしてすべてのレポート各セクションは、エンジンを呼び出す前にソースコードとして固定されていました。 エンジンが呼び出される前に. したがって、エンジンを持ち上げるための事後的なルーブリック調整は不可能です。.

合成スコアは3つの要素で構成されます。 構造要素 は35%を占め、エンジンが7つの必須レポートセクション(ヘッダー、要約、主要所見、鑑別、採点システム、推奨、フォローアップ)と、それらの中にある16の必須サブセクションを返したかどうかを測定します。セクションの有無は構造計算内で40%、サブセクションの有無は60%の重みです。.

臨床要素 は55%を占め、3つを組み合わせます。診断キーワードの想起(臨床サブスコアの70%)、採点システムの想起(20%—該当する場合、エンジンがMentzer、FIB-4、HOMA-IR、ASCVDリスク、KDIGOステージング、EULAR/ACR基準を計算するか)、および確率合計の妥当性チェック(10%—鑑別の確率が[90, 110]の範囲内に合計されるべき)です。落とし穴症例では、作為的な病理フラグ1件につき0.10として計算され、最大3件までの明示的な過剰診断ペナルティ(最大0.30)が差し引かれます。.

レイテンシ要素 は10%を占めます。20秒未満の応答は満点の0.10、40秒未満は0.05、それより遅い場合は0です。20秒の目標は、プロダクションの一次パスのサービスレベル目標を反映しています。40秒の上限は、重いエンジン呼び出しに対するフェーズ2のフォールバック予算を反映しています。.

MITライセンスのKantestiベンチマークハーネスが実行され、症例ごとのスコアを出力している様子の端末スクリーンショット
図3: 実行時のハーネス。各ケースはA4のPDFとしてレンダリングされ、プロダクションv11エンドポイントに投稿され、凍結されたルーブリックに基づいて採点されます。すべての生の応答は、集計されたスコアカードと並行して保存されます。.

事前登録が防ぐもの

第1者ベンチマークは、事後的なルーブリック調整によって自分たちの数値を水増しすることで悪名高いです。そのパターンはほぼ常に同じです。チームがエンジンを実行し、どこで不足しているかを見てから、うまくいっていない領域の重みが小さくなるように、こっそりルーブリックを調整します。最初のエンジン呼び出しの前にルーブリックをソースコードとしてコミットし、ハーネスをMITライセンスで公開することで、その調整はバージョン管理上で可視化されます。誰でもリポジトリをクローンし、ルーブリックの作成日を確認し、エンジン結果が採点の形作りに使われていないことを検証できます。.

過剰診断トラップ症例 — なぜ「呼び過ぎ」が本当の失敗モードなのか

正常な画面での病理の過剰な断定は、一般向け医療アシスタントにおける既知の失敗モードとして記録されています。その下流コストには、不必要な精査、患者の不安、そして医原性の精査が含まれます。このベンチマークの2つの落とし穴症例は、その失敗モードを可視化し、採点可能にするよう設計されています。.

素朴なAIがギルバート症候群のパネルで肝炎を捏造している例と、Kantestiエンジンが良性のUGT1A1多型を正しく同定している例の並列表記比較
図4: 落とし穴症例の設計。エンジンがギルバート症候群を自信をもって肝炎とラベル付けする、あるいは完全に正常な画面で境界域の病理を“捏造”するような場合、臨床的に聞こえることに対して報酬を与えるのではなく、ペナルティが課されます。.

🟡 落とし穴1 — BT-014-GILBERT

提示。. 総ビリルビンが2.4 mg/dLの24歳男性。直接分画は正常で、トランスアミナーゼとアルカリホスファターゼは基準範囲内にあり、網赤血球は目立った異常がなく、ハプトグロビンとLDHは溶血を否定します。.

正しい解釈。. ギルバート症候群—良性のUGT1A1多型。解釈では、肝炎、肝硬変、溶血性貧血、または胆道閉塞を想起してはなりません。.

V11の結果。. 合成スコア1.000。監視された6つの過剰診断フラグはいずれも、能動的な診断としては現れませんでした。.

🟡 落とし穴2 — BT-015-HEALTHY

提示。. 15パラメータの定期スクリーニング・パネルを受けた35歳の女性。すべての検査項目は基準範囲内にきちんと収まっている。.

正しい解釈。. 安心材料の提示と生活習慣の維持。解釈は、臨床的に有用に見せるために境界域の病態を作り出してはならない。.

V11の結果。. 複合スコア1.000。7つの監視された過剰診断フラグ(糖尿病、貧血、甲状腺機能低下症、脂質異常症、肝炎、腎疾患、欠乏症)はいずれも、能動的な診断としては現れなかった。.

両方のトラップで、13の監視された過剰診断(ハイパー)フラグを確認した。いずれも作動しなかった。これは、AIエンジンをトリアージや受診前のツールとして使おうと考えるあらゆる臨床家にとって、最も重要な結果である。 システムは、存在しない病気をでっち上げなかった。.

メンツァー指数:鉄欠乏とサラセミア(ヘテロ接合体)を見分ける

2つ目の高価値な所見は、症例BT-001(鉄欠乏性貧血)と症例BT-007(βサラセミア小人症)を組み合わせた点に関する。いずれも小球性を呈し、素人の分類器にとってはよくあるつまずきどころである。MCVをRBC数で割って算出するMentzer指数は、鉄欠乏では13を超え、サラセミアの素因では13未満となる。.

BT-001では、患者は34歳の女性で、ヘモグロビン10.4 g/dL、MCV 72.4 fL、RBC 4.1 × 10¹²/L、フェリチン6 ng/mL、そしてTIBCの上昇がみられた。約17.7のMentzer指数は、絶対的な鉄欠乏を支持する。BT-007では、患者は28歳の男性で、小球性(MCV 65.8 fL)がある一方、RBC数は6.2と高く、RDWは正常、フェリチンは正常、HbA2は5.6パーセントであった。約10.6のMentzer指数はサラセミアの素因を示し、上昇したHbA2がβサラセミア小人症を裏付ける。.

鉄欠乏性貧血 Mentzer > 13 フェリチン低値、TSAT低値、TIBC高値、RDW上昇
βサラセミアの素因 Mentzer < 13 フェリチン正常、RDW正常、HbA2上昇(>3.5%)、RBC数高値

両症例ともスコアは1.000だった。エンジンは両方の解釈でMentzer指数を明示的に用い、それぞれのケースで正しい診断を返した。. これは、ベンチマーク全体の中で最も臨床的に安心できる単一の結果である。, というのも、サラセミアの素因を鉄欠乏として誤分類すると、不適切な鉄補充につながり、家族スクリーニングの機会を逃すからであり、また鉄欠乏をサラセミアとして誤分類すると、単純な置換療法の開始が遅れる。私たちの 鉄フェリチンの範囲ガイド は、より広い鑑別の文脈を説明する。.

2026年4月の実行結果(症例ごと)

15例中12例は、主要なパスで一次複合スコアの上限である1.000を達成した。3例はフェーズ2のフォールバック経由で提供され、0.05のレイテンシ・ボーナスを失ったが、すべての臨床的および構造的な内容は維持された。1例は必須のサブセクションを1つ欠いていた。1例は確率分布の合計がわずかに減少した状態で返された。.

症例ID 専門領域 複合 レイテンシ パス
BT-001-IDA血液学1.00017.8 sprimary
BT-006-B12血液学1.00018.4秒primary
BT-007-THAL血液学1.00017.0秒primary
BT-002-HASH内分泌学0.95037.0秒フォールバック
BT-008-PCOS内分泌学0.98718.6秒primary
BT-003-T2DM代謝1.00019.1秒primary
BT-013-GOUT代謝1.00019.4秒primary
BT-004-NAFLD肝臓学1.00019.6秒primary
BT-009-VIRHEP肝臓学0.95023.4秒フォールバック
BT-014-GILBERTトラップ1.00018.9秒primary
BT-005-CKD腎臓学1.00017.4秒primary
BT-010-ASCVD心臓病学1.00019.7秒primary
BT-011-SLE免疫学(リウマチ学)0.98118.2秒primary
BT-012-VITD内分泌学1.00019.3秒primary
BT-015-HEALTHYトラップ1.00018.7秒フォールバック

PCOSの症例(BT-008)は、応答構造における必須の小見出しを1つ失いました――16/16ではなく15/16でした。その結果、構造スコアが1.000から0.963に減少しました。SLEの症例(BT-011)は、診断キーワードと採点システムをすべて保持したまま、臨床スコアを0.965に引き下げる、わずかに減少した確率分布の合計を返しました。どちらの「不完全」な症例も、正しい診断を見逃しませんでした。.

見出しスコアが教えてくれないこと

この特定の事前登録済みルーブリックにおける複合スコア99.12%は、ほぼ上限に近い性能を表しますが、慎重な位置づけが必要です。この結果は、単一のルーブリックに対して、匿名化された15の厳選症例をそれぞれ1回ずつ評価したときのエンジンの挙動を示しています。私たちは、この数値が何を示し、何を示さないのかを明確にしています。.

このスコアは、V11エンジンが、この評価のために選定された診断パターンを、公開され再現可能な方法論に基づいて正しく扱ったことを示しています。野外に存在するあらゆる血液検査パネルでエンジンが正しいことを意味しません。また、エンジンが臨床医の判断に取って代わるべきだとも言っていません。そして、エンジンが他の代替AIシステムより優れているとも言っていません――他のエンジンとの比較分析は、本レポートの範囲外として意図的に扱っていません。.

スコアが確かに示すのは、ベースラインです。ルーブリックとハーネスが公開されていれば、エンジンの今後のバージョンは同じ15の症例に対して評価でき、公開されたスコアとその後の実行との差は、それ自体が測定可能です。これが事前登録の価値です: パフォーマンス主張を、検証可能な主張へと変換する.

このベンチマークを10分で再現する方法

再現には、KantestiのAPI認証情報ペアと、Python 3.10以降の環境があれば十分です。 requests そして reportlab ライブラリがインストールされていること。完全なハーネスは、MITライセンスの下で公開された単一の自己完結型Pythonモジュールです。.

Figshare、ResearchGate、Academia.edu、GitHubにベンチマークをミラーリングし、FigshareのDOIを正準アンカーとして示す再現性ネットワーク図
図5: ベンチマークは4つの研究プラットフォームにミラーされています。FigshareのDOIが標準的な学術識別子です。ResearchGate、Academia.edu、GitHubでは、コードと生データを含む並行コピーがホストされています。.

新しい実行のための4つのステップ

1つ目。. リポジトリをクローンします: git clone https://github.com/emirhanai/kantesti-blood-test-benchmark.git. 2つ。. 次のコマンドで依存関係をインストールします。 pip install -r requirements.txt. 3つ。. 次を設定します。 KANTESTI_USERNAME そして KANTESTI_PASSWORD を環境変数として指定します。資格情報は実行時に読み込まれ、スクリプト内にハードコードされません。. 4つ。. 次を実行します。 python benchmark_bloodtest.py そして、作業ディレクトリに出力される4つの成果物を確認してください。CSVスコアカード、JSONスコアカード、エンジンの生の応答を含む完全なJSONダンプ、人が読めるMarkdownレポートです。.

2026年4月23日の参照実行は、リポジトリの results/ ディレクトリに保存されています。新しい実行では、参照実行はそのままに、新しいタイムスタンプ付きスコアカードが生成されます。実行結果が明確に異なる場合は、実行のタイムスタンプと、応答メタデータに返されたエンジンのバージョンを添えてGitHub issueを作成してください。.

限界と今後の課題

4つの制限について、明示的な注意が必要です。サンプルサイズ、単回評価、単一エンジンの範囲、単一のデータ出所です。これらはいずれも、現在進行中のフォローアップ作業で対応しています。.

サンプルサイズ。. 専門領域8つのバケットにまたがる15症例は、概念実証には十分ですが、専門領域内のサブグループ分析には不十分です。50症例への拡張を計画しており、凝固パネル、血液腫瘍のスクリーニング、妊娠パネル、小児の症例を含めます。.

単回評価。. 各症例は1回だけ評価されました。大規模言語モデルは、低いサンプリング温度でも出力のばらつきが無視できないため、症例ごとに5回評価する複数回実行プロトコルと、報告される分散を次のステップとするのが自然です。.

単一エンジンの範囲。. 本レポートは1つのエンジンを特徴づけるものです。代替のAIシステムとの比較分析はここでは対象外です。適切な方法論を用いた別の独立研究として追求する可能性はあります。.

単一のデータ出所。. 15症例は、単一の臨床リポジトリから抽出した実在患者の記録を匿名化したものです。これは厳選されたサンプルであり、母集団を代表する無作為抽出ではありません。評価を複数施設のデータへ拡張する計画はロードマップに含まれています。.

最もインパクトの大きい計画上の拡張は、多言語での同等性です。Kantesti AI Engineは75+言語のユーザーに提供されており、トルコ語、ドイツ語、スペイン語、フランス語、アラビア語で同じ15症例のハーネスを実行することで、エンジンが対応する各言語における出力品質を定量化します。各言語ごとの実行結果は、それぞれ固有のDOIとハーネスのブランチとともに公開します。.