このベンチマークが存在する理由と、何をテストするのか
AIによる血液検査の読み方は、消費者向けおよび臨床のワークフローでますます使われているが、検査医学に合わせて再現可能な評価枠組みを提供することは依然として一般的ではない。この状況で最も重要なのは、一般的な医療QAベンチマークで扱われるものではない問いである: 平均赤血球容積が同一でも、エンジンは鉄欠乏とサラセミア(ヘテロ接合体)を分けられるのか、肝炎としてギルバート症候群を過剰診断しないか、そして完全に正常なスクリーニングパネルで病理を“作り出す”ことはないのか?
単一の血液検査パネルには、通常、複数の競合する解釈を支えるだけの十分な情報が含まれています。そして、解釈する臨床医の仕事は、教科書的な答えを取り出すことではなく、それらの解釈を互いに比較して重み付けすることです。教科書的なケースでうまくいくエンジンでも、最も重要なケースでは失敗することがあります。鑑別診断の落とし穴、単独で見ると不安を招く良性のバリアント、そして、完全に正常なパネルが自信のあるアシスタントに病理を“作り出させてしまう”ケースです。.
このベンチマークは、まさにそうした失敗モードを想定して構築されました。15の各ケースは、特定の診断特性のために選ばれています。たとえば、同一の平均赤血球容積(MCV)を持つβサラセミア特性と区別して維持しなければならない鉄欠乏性の小球性、異常が単独の間接型高ビリルビン血症のみであるギルバート症候群の提示、そして15パラメータのスクリーニングパネルで、すべての検体(アナライト)が基準範囲内に収まっているケースです。ルーブリックは、各ケースをその条件に即して読み取るエンジンを評価し、そのような診断が妥当でないのに自信をもって診断に到達しようとするエンジンを減点します。.
Thomas Klein, MDとして、私はこのケースパネルを選びました。なぜなら、これらは私が実験室医学のアシスタントが最も頻繁に間違えるパターンだからです。. 高コストな失敗モードは「まれな疾患を見逃すこと」ではありません。そうではなく、それを持っていない患者に日常的な病理を"捏造する"ことです。. 私たちの 医学的検証 hubはより広い枠組みを説明します。このページでは、V11初期の概念実証と、同じ採点ルーブリックを用いて、127か国にまたがるSQL対応の臨床リポジトリから抽出した100,000件の匿名化ケースへと拡張したV11 Second Updateを説明します。バイト単位で同一であり、事後の調整は許可されません。.
最新の参照実行 — V11 Second Update(2026年4月26日)
2026年4月26日のV11 Second Update参照実行では、複合スコアが 99.80% V11初期リリースで使用された同じ事前登録済みルーブリックに基づき、 100,000件の匿名化ケースで評価されました。 KantestiのSQL対応臨床リポジトリから抽出され、 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)でした。.
15件から10万件へ:127か国におけるコホートの進化
元のV11ケースパネルは7つの専門領域—血液学、内分泌学、代謝医学、消化器内科、腎臓内科、心臓病学、リウマチ学—に加え、専用の過剰診断トラップケース2件を含み、各ケースは、書面によるインフォームド・コンセントのもとでKantestiの臨床データリポジトリから抽出した匿名化された実患者記録でした。V11 Second Updateは評価を 127か国にわたる100,000件の匿名化ケースへ拡張します。, 8つの専門領域に分配されます(元の7つに加え、トラップのサブセットを吸収する専用の内科バケット)。同じ採点ルーブリックが、両方の実行でバイト単位で同一に適用されます。.
匿名化(デ・アイデンティフィケーション)はSafe Harborアプローチで実施しました。すべての直接識別子を削除または置換し、各記録に、BT-NNN-LABEL(V11初期)という形式のベンチマーク内部ケースコード、またはSecond Updateのための安定した匿名化 case_uid を割り当てました。処理は GDPR第9条(2)(j) 適切な保護措置を伴う科学研究、および同等の英国GDPRの規定に従う。公表されたハーネス、技術レポート、またはリリースされたデータセットのいずれにも、個人を特定できる情報は一切含まれていない。.
V11初期リリース—15件の手作業で厳選したケース
元のV11ケースパネルは、診断パターンのうち、検査医学のアシスタントが最も頻繁に誤るものを検証するために、トーマス・クライン博士が手作業で厳選しました。15件の各ケースは、以下に示す特定の診断特性に基づいて選定されました。.
なぜこの特定の分布なのか
血液学は3件です。微小球性の鑑別と大球性の鑑別が、実世界の検査業務における最大の“落とし穴”の高頻度領域だからです。内分泌学も3件です。橋本病、PCOS、ビタミンD欠乏症の提示は、診断の形が異なるためです(自己抗体主導、ホルモン比主導、単一マーカー主導)。単一症例の専門領域がなお意味を持つのは、CKD、ASCVDリスク、SLEのそれぞれに独自の採点システムがあり、エンジンが呼び出すべきもの(それぞれKDIGOステージング、ASCVD 10年リスク、2019 EULAR/ACR SLE基準)を持っているからです。.
V11 第2回アップデート — 127か国にわたる100,000件の匿名化ケース
第2回アップデートは、元のV11のハードコードされた15ケースのPythonリテラルを、Kantesti臨床リポジトリに対するパラメータ化された読み取り専用のSQLクエリに置き換えます(anonymised_blood_panels)。このクエリは consent_research = 1 AND released_for_benchmark = 1 でフィルタし、透明性のためにすべてのベンチマーク実行の最上部に出力されます。専門分野別のコホート分布は以下のとおりです。.
地理的分布 — 上位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のデポジットで公開されます。層化ランダムサンプルの
n = 201 生のエンジン応答(決定論的シード )は、検査のためにGitHub 20260426ディレクトリに公開されています。 results/ 複合スコア.
見出しスコアが教えてくれないこと
この特定の事前登録済みルーブリックにおける複合スコアが99.80パーセントであり、127か国にまたがる100,000件の匿名化コホートでは、ほぼ天井に近い性能を示している——しかし、慎重な文脈づけが必要である。この結果は、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つの制限があります。長い尾の国のサンプル不足、単回評価、単一エンジンの範囲、単一ソースのデータ出自です。これらはいずれも、現在進行中のフォローアップ作業で対応しています。.
長い尾の国のカバレッジ。. Second Update は127か国に及びますが、分布は不均衡です。上位10の貢献者が症例の約66.4%を占め、残りの97か国からなる長い尾が約7.3%(合計で約7,300症例、国あたり平均約75症例)を占めます。そのため、この長い尾における国別の合成結果は、見出しの数値が示唆するよりもノイズが多くなります。今後の実行では、国別(管轄別)の推定を固めるために、サンプル不足の国から優先的に募集します。.
単回評価。. コホート内の各症例は1回だけ評価されました。大規模言語モデルは、低いサンプリング温度でも無視できない出力のばらつきを示すため、症例ごとに5回評価し、ばらつきを報告する複数回実行プロトコルは、自然な次のステップです。特に、サンプリングのジッター下でも一貫性が安全性主張の一部であるトラップケースのサブセットでは重要です。.
単一エンジンの範囲。. 本レポートは1つのエンジンを特徴づけています。代替のAIシステムとの比較分析はここでは対象外です。必要な方法論を用い、同じMITライセンスのハーネスに対して、別の独立した研究として追求する可能性があります。.
単一のデータ出所。. 100,000症例は、単一の臨床リポジトリ(Kantesti SQLに裏打ちされた臨床データウェアハウス)から抽出した匿名化済みの実患者記録です。これは、グローバルなレベルでの母集団を代表する無作為抽出ではなく、厳選された本番ストリームを表しています。評価を外部ソースの多施設データへ拡張することはロードマップに含まれています。.
これら4つに加えて、最もインパクトの大きい計画拡張は、管轄ごとの多言語パリティです。Kantesti AI Engine は75+言語でユーザーに提供されており、言語別に層化した Second-Update のサブコホート(トルコ語、ドイツ語、スペイン語、フランス語、イタリア語、ポルトガル語、アラビア語、マンダリン)を実行することで、エンジンが対応する各言語における出力品質を定量化します。各言語別の分析は、それぞれ独自のDOIとハーネスブランチとともに公開されます。.