このベンチマークが存在する理由と、何をテストするのか
AIによる血液検査の読み方は、消費者向けおよび臨床のワークフローでますます使われているが、検査医学に合わせて再現可能な評価枠組みを提供することは依然として一般的ではない。この状況で最も重要なのは、一般的な医療QAベンチマークで扱われるものではない問いである: 平均赤血球容積が同一でも、エンジンは鉄欠乏とサラセミア(ヘテロ接合体)を分けられるのか、肝炎としてギルバート症候群を過剰診断しないか、そして完全に正常なスクリーニングパネルで病理を“作り出す”ことはないのか?
単一の血液検査パネルには、通常、複数の競合する解釈を支えるだけの十分な情報が含まれています。そして、解釈する臨床医の仕事は、教科書的な答えを取り出すことではなく、それらの解釈を互いに比較して重み付けすることです。教科書的なケースでうまくいくエンジンでも、最も重要なケースでは失敗することがあります。鑑別診断の落とし穴、単独で見ると不安を招く良性のバリアント、そして、完全に正常なパネルが自信のあるアシスタントに病理を“作り出させてしまう”ケースです。.
このベンチマークは、まさにそうした失敗モードを想定して構築されました。15の各ケースは、特定の診断特性のために選ばれています。たとえば、同一の平均赤血球容積(MCV)を持つβサラセミア特性と区別して維持しなければならない鉄欠乏性の小球性、異常が単独の間接型高ビリルビン血症のみであるギルバート症候群の提示、そして15パラメータのスクリーニングパネルで、すべての検体(アナライト)が基準範囲内に収まっているケースです。ルーブリックは、各ケースをその条件に即して読み取るエンジンを評価し、そのような診断が妥当でないのに自信をもって診断に到達しようとするエンジンを減点します。.
Thomas Klein, MDとして、私はこのケースパネルを選びました。なぜなら、これらは私が実験室医学のアシスタントが最も頻繁に間違えるパターンだからです。. 高コストな失敗モードは「まれな疾患を見逃すこと」ではありません。そうではなく、それを持っていない患者に日常的な病理を"捏造する"ことです。. 私たちの 医学的検証 hubはより広い枠組みを説明している。このページでは、V11の初期の概念実証と、それを127の国ラベルにまたがる合成ケースセットから抽出した10万件の合成ケースへと拡張したV11 第2回アップデートを説明する。同一の採点ルーブリック、バイト同一であり、事後のチューニングは許可されていない。.
最新の参照実行 — V11 Second Update(2026年4月26日)
2026年4月26日のV11 Second Update参照実行では、複合スコアが 99.80% V11初期リリースで使用された同じ事前登録済みルーブリックに基づき、 10万件の合成ケース Kantestiの合成ケースセットから抽出され、かつ 127の国ラベルにまたがる および75+言語にまたがります。すべてのケースはエンジンの主要パスで完了し、トラップケースの過剰診断フラグの作動は 0 / 87,412. のままでした。2026年4月23日の元のV11実行では、15件の手作業で厳選したケース(複合99.12%)を対象にルーブリックを検証しており、Second Updateではそのルーブリックをバイト単位で同一のまま維持し、評価を母集団規模のコホートへ拡張しています。.
複合式は3つの要素を組み合わせます: 構造的適合 7つの必須レポートセクションと16の必須サブセクションに, 内容の正確性 キーワード再現率(リコール)+採点システムの再現率(リコール)+確率分布の妥当性チェックとして測定し、 応答レイテンシ 主要パスのサービスレベル目標に対して。正確な内訳は下記のルーブリック式に示します。これらの重みやサブ・ルーブリックはSecond Updateのために変更されていません。.
残りの余裕0.20パーセンテージポイントは、ほぼすべて臨床サブスコアへ分解されます。少数のケース(主に消化器内科とリウマチ科)では、診断内容が正しいにもかかわらず、エンジンの解釈において、想定される採点システムのキーワードが1つ欠けていました。. 100,000件のSecond Updateコホートにおいて、診断そのものを見逃したケースはありませんでした。. レイテンシは、V11初期リリースの平均20.17 sからSecond Updateの13.26 sへ改善しました。これは2回の実行間での本番エンジン最適化を反映しています。ルーブリック、採点コード、APIエンドポイントは変更されていません。.
ラベルごとの複合スコアは、最も代表的な30の国ラベルにおいて0.9971から0.9985の範囲だった。残り97のラベルのロングテール(合計で約7,300件)は、体系的な劣化を示さなかった。ケース数で最も頻度が高いラベルは、米国(10,500)、ブラジル(9,500)、スペイン(9,000)、イタリア(8,000)、ドイツ(7,800)、フランス(7,400)、ポルトガル(5,800)、トルコ(3,400)、英国(2,900)、メキシコ(2,500)であった。ラベルごとの複合スコアは0.9971から0.9985の範囲だった。.
15件から10万件へ:127の国ラベルにまたがるコホートの進化
元のV11ケースパネルは7つの専門分野(血液学、内分泌学、代謝医学、肝臓学、腎臓学、心臓病学、リウマチ学)に加え、専用のハイパー診断トラップケース2件を含み、各ケースは合成生成された血液検査パネルであった。V11 第2回アップデートでは評価を 127の国ラベルにまたがる10万件の合成ケースへ拡張する, 8つの専門領域に分配されます(元の7つに加え、トラップのサブセットを吸収する専用の内科バケット)。同じ採点ルーブリックが、両方の実行でバイト単位で同一に適用されます。.
すべてのケースが合成生成であるため、除去すべき実在の識別子はなく、個人データも関与しない。各合成ケースにはベンチマーク内部のケースコード(V11の初期セットではBT-NNN-LABEL、第2回アップデートでは安定した case_uid )が付与される。公開されたハーネス、技術レポート、リリースされたデータセットのいずれにも個人データは登場しない。.
V11初期リリース—15件の手作業で厳選したケース
元のV11ケースパネルは、診断パターンのうち、検査医学のアシスタントが最も頻繁に誤るものを検証するために、トーマス・クライン博士が手作業で厳選しました。15件の各ケースは、以下に示す特定の診断特性に基づいて選定されました。.
なぜこの特定の分布なのか
血液学は3件です。微小球性の鑑別と大球性の鑑別が、実世界の検査業務における最大の“落とし穴”の高頻度領域だからです。内分泌学も3件です。橋本病、PCOS、ビタミンD欠乏症の提示は、診断の形が異なるためです(自己抗体主導、ホルモン比主導、単一マーカー主導)。単一症例の専門領域がなお意味を持つのは、CKD、ASCVDリスク、SLEのそれぞれに独自の採点システムがあり、エンジンが呼び出すべきもの(それぞれKDIGOステージング、ASCVD 10年リスク、2019 EULAR/ACR SLE基準)を持っているからです。.
V11 第2回アップデート — 127の国ラベルにまたがる10万件の合成ケース
第2回アップデートは、元のV11の15ケースのハードコードされたPythonリテラルを、より大きなプログラム生成の合成ケースセットに置き換える。ケースセットは毎回の実行の開始時に読み込まれ、透明性のため構成がログに記録される。内容領域ごとのコホート分布を以下に示す。.
合成の国ラベル分布 — 上位10ラベル
10万件の合成ケースには、ロケール処理を検証するために127の国ラベル(ISO 3166-1 alpha-2)が付与されている。ラベル割り当て:ヨーロッパ57.7%、アメリカ大陸25.4%、アジア太平洋6.2%、指定された中東/アフリカのラベル3.4%、そして残り97の追加ラベルのロングテールが合計で約7.3%。ケース数で最も頻度が高い10のラベルは、米国(10,500)、ブラジル(9,500)、スペイン(9,000)、イタリア(8,000)、ドイツ(7,800)、フランス(7,400)、ポルトガル(5,800)、トルコ(3,400)、英国(2,900)、メキシコ(2,500)である。ラベルごとの複合スコアは0.9971から0.9985の範囲だった。これらのラベル数は、ロケール処理を検証するために用いられた生成ケースの特性であり、実在のユーザーや現実世界の地理的カバレッジを表すものではない。.
事前登録済みルーブリックの解説
事前登録(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のフォールバック予算を反映しています。.
事前登録が防ぐもの
第1者ベンチマークは、事後的なルーブリック調整によって自分たちの数値を水増しすることで悪名高いです。そのパターンはほぼ常に同じです。チームがエンジンを実行し、どこで不足しているかを見てから、うまくいっていない領域の重みが小さくなるように、こっそりルーブリックを調整します。最初のエンジン呼び出しの前にルーブリックをソースコードとしてコミットし、ハーネスをMITライセンスで公開することで、その調整はバージョン管理上で可視化されます。誰でもリポジトリをクローンし、ルーブリックの作成日を確認し、エンジン結果が採点の形作りに使われていないことを検証できます。.
過剰診断トラップ症例 — なぜ「呼び過ぎ」が本当の失敗モードなのか
正常な画面での病理の過剰な断定は、一般向け医療アシスタントにおける既知の失敗モードとして記録されています。その下流コストには、不必要な精査、患者の不安、そして医原性の精査が含まれます。このベンチマークの2つの落とし穴症例は、その失敗モードを可視化し、採点可能にするよう設計されています。.
🟡 落とし穴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がβサラセミア小人症を裏付ける。.
両症例ともスコアは1.000だった。エンジンは両方の解釈でMentzer指数を明示的に用い、それぞれのケースで正しい診断を返した。. これは、ベンチマーク全体の中で最も臨床的に安心できる単一の結果である。, というのも、サラセミアの素因を鉄欠乏として誤分類すると、不適切な鉄補充につながり、家族スクリーニングの機会を逃すからであり、また鉄欠乏をサラセミアとして誤分類すると、単純な置換療法の開始が遅れる。私たちの 鉄フェリチンの範囲ガイド は、より広い鑑別の文脈を説明する。.
V11 初期リファレンス実行からのケース別結果(2026年4月23日)
15ケースのPoC(概念実証)コホートに対する元のV11リファレンス実行が、 第2回アップデートの方法論的基盤です。以下の各ケースの詳細は、ルーブリックが実際のエンジン応答をどのように扱うかを示しています。15件中12件は主要パスで一次天井の複合スコア1.000を達成しました。3件はフェーズ2のフォールバックで提供され、臨床的および構造的な内容はすべて維持しつつ、0.05のレイテンシボーナスを失いました。1件は必須のサブセクションを1つ欠いていました。1件は確率分布の合計がわずかに減少して返されました。 V11 第2回アップデート集計 — 100,000ケース.
PCOSの症例(BT-008)は、応答構造における必須の小見出しを1つ失いました――16/16ではなく15/16でした。その結果、構造スコアが1.000から0.963に減少しました。SLEの症例(BT-011)は、診断キーワードと採点システムをすべて保持したまま、臨床スコアを0.965に引き下げる、わずかに減少した確率分布の合計を返しました。どちらの「不完全」な症例も、正しい診断を見逃しませんでした。.
人口規模では、個々のケース行は人間が読めないため、第2回アップデートでは100,000行の表ではなく集計指標を報告します。主要な集計は以下に示します。専門分野別および国別の内訳は、技術レポートとFigshareのデポジットで公開されます。層化ランダムサンプルの
人口規模では、個々のケース行は人間が読めないため、第2回アップデートでは10万行の表ではなく集計指標を報告する。主要な集計は以下に示す。専門分野ごよび国ラベルごとの内訳は、技術レポートとFigshareのデポジットで公開されている。層化ランダムサンプルの 生のエンジン応答(決定論的シード )は、検査のためにGitHub 20260426ディレクトリに公開されています。 results/ 複合スコア.
見出しスコアが教えてくれないこと
この特定の事前登録済みルーブリックにおける99.80パーセントの複合スコアであり、127の国ラベルにまたがる10万ケースの合成コホートに対するものは、ほぼ天井に近い性能を示すが、慎重な位置づけが必要である。その結果は、V11でソースコードにコミットしたルーブリックに対するエンジンの挙動を記述するものであり、野外に存在するあらゆる血液検査パネルに対してエンジンが正しいことを普遍的に主張するものではない。.
このスコアは、評価のために選定された診断パターンを、人口規模のコホートに対して、公開され再現可能な方法論に基づき、エンジンが正しく処理したことを示している。野外に存在するあらゆる血液検査パネルに対してエンジンが正しいとは言っていない。エンジンが臨床家の判断に取って代わるべきだとも言っていない。そして、他のAIシステムが上回るかどうかについても言っていない——他のエンジンとの比較分析は、本報告書の範囲外として意図的に除外されている。.
スコアが確立しているのはベースラインである。ルーブリックとハーネスが公開されていれば、将来のエンジンのバージョンは同じルーブリックに対して評価できる——V11初期の15症例、第2回アップデートの100,000件コホート、あるいはその後の拡張のいずれにも適用でき、公開されたスコアとその後の実行との差は、それ自体が測定可能である。これが事前登録の価値である: パフォーマンス主張を、検証可能な主張へと変換する.
このベンチマークを10分で再現する方法
再現には、KantestiのAPI認証情報ペアと、Python 3.10以降の環境があれば十分です。 requests そして reportlab ライブラリがインストールされていること。完全なハーネスは、MITライセンスの下で公開された単一の自己完結型Pythonモジュールです。.
新しい実行のための4つのステップ
1つ目。. リポジトリをクローンします: git clone https://github.com/emirhanai/kantesti-blood-test-benchmark.git. 2つ。. 次のコマンドで依存関係をインストールします。 pip install -r requirements.txt (第2回アップデートでは追加: mysql-connector-python ≥ 8.0 SQLケースローダー用)。. 3つ。. 次を設定します。 KANTESTI_USERNAME そして KANTESTI_PASSWORD エンジンAPIの環境変数として。第2回アップデートのSQLケースローダーでは、さらに次も設定する: KANTESTI_DB_HOST, KANTESTI_DB_PORT, KANTESTI_DB_NAME, KANTESTI_DB_USER、 そして KANTESTI_DB_PASSWORD — ローダーは読み取り専用ロール経由で接続します(bench_reader)そのロールには、テーブルの特定に関する権限がありません。. 4つ。. 次を実行します。 python benchmark_bloodtest.py --limit 100000 完全な Second-Update 実行の場合、または python benchmark_bloodtest.py --limit 1000 迅速な反復のため。出力は ./benchmark_results/:国別ラベルおよび専門領域別の列を持つ CSV スコアカード、JSON 集計、層化ランダムな生応答サンプル、および Markdown レポート。.
参照実行は、2026年4月23日(V11初回、15症例)および2026年4月26日(V11 Second Update、100,000症例)で、リポジトリの results/ ディレクトリに保存されています。新しい実行では、参照実行を変更せずに、新しいタイムスタンプ付きスコアカードが生成されます。実行結果が有意に異なる場合は、実行タイムスタンプと、応答メタデータに返されたエンジンバージョンを添えてGitHub issueを開いてください。.
限界と今後の課題
127 の国別ラベルにまたがる 100,000 件でも、次の 4 つの制限は明示的に認める必要があります:ロングテール・ラベルのアンダーサンプリング、単発評価、単一エンジンの範囲、単一ソースのデータ出自。これらはいずれも、現在進行中のフォローアップ作業で対応しています。.
ロングテール・ラベルのカバレッジ。. 第 2 回更新は 127 の国別ラベルにまたがりますが、分布は不均衡です。上位 10 ラベルが症例の ≈66.4% を占め、残り 97 のラベルからなるロングテールが ≈7.3%(合計で約 7,300 件、ラベルあたり平均約 75 件)に寄与しています。したがって、このロングテールにおけるラベル別コンポジットは、見出しの数値が示唆するよりもノイズが多くなります。今後の実行では、ラベル割り当てを再調整して、ラベル別推定を確かなものにします。.
単回評価。. コホート内の各症例は1回だけ評価されました。大規模言語モデルは、低いサンプリング温度でも無視できない出力のばらつきを示すため、症例ごとに5回評価し、ばらつきを報告する複数回実行プロトコルは、自然な次のステップです。特に、サンプリングのジッター下でも一貫性が安全性主張の一部であるトラップケースのサブセットでは重要です。.
単一エンジンの範囲。. 本レポートは1つのエンジンを特徴づけています。代替のAIシステムとの比較分析はここでは対象外です。必要な方法論を用い、同じMITライセンスのハーネスに対して、別の独立した研究として追求する可能性があります。.
合成データ。. 100,000 件は合成的に生成されたものであり、合成症例ではありません。また、結果は現実世界の臨床パフォーマンスには転用できません。この合成ベンチマークに対して、実データ(同意を得た、外部ソース由来のもの)で評価するには、適切な倫理的監督が必要であり、本合成ベンチマークの範囲外です。.
これら4つに加えて、最もインパクトの大きい計画拡張は、管轄ごとの多言語パリティです。Kantesti AI Engine は75+言語でユーザーに提供されており、言語別に層化した Second-Update のサブコホート(トルコ語、ドイツ語、スペイン語、フランス語、イタリア語、ポルトガル語、アラビア語、マンダリン)を実行することで、エンジンが対応する各言語における出力品質を定量化します。各言語別の分析は、それぞれ独自のDOIとハーネスブランチとともに公開されます。.