Files
AIclinicalresearch/docs/03-业务模块/ASL-AI智能文献/05-开发记录/2025-11-18-卒中数据泛化测试报告.md
HaHafeng 2e8699c217 feat(asl): Week 2 Day 2 - Excel import with template download and intelligent dedup
Features:
- feat: Excel template generation and download (with examples)
- feat: Excel file parsing in memory (cloud-native, no disk write)
- feat: Field validation (title + abstract required)
- feat: Smart deduplication (DOI priority + Title fallback)
- feat: Literature preview table with statistics
- feat: Complete submission flow (create project + import literatures)

Components:
- feat: Create excelUtils.ts with full Excel processing toolkit
- feat: Enhance TitleScreeningSettings page with upload/preview/submit
- feat: Update API interface signatures and export unified aslApi object

Dependencies:
- chore: Add xlsx library for Excel file processing

Ref: Week 2 Frontend Development - Day 2
Scope: ASL Module MVP - Title Abstract Screening
Cloud-Native: Memory parsing, no file persistence
2025-11-19 10:24:47 +08:00

8.3 KiB
Raw Blame History

卒中数据泛化能力测试报告

测试日期: 2025-11-18
测试目的: 验证系统对不同研究主题的泛化能力
测试样本: 用户真实数据 - 卒中二级预防研究5篇文献


📊 测试结果

指标 结果 状态 说明
准确率 60% (3/5) ⚠️ 中等 距离目标85%还有差距
双模型一致率 100% (5/5) 优秀 超过目标80%
排除判断准确率 100% (3/3) 完美 应排除的文献全部正确
纳入判断准确率 0% (0/2) 失败 应纳入的文献全部误判

🔬 测试场景对比

之前测试SGLT2抑制剂

PICOS标准:

  • P: 2型糖尿病成人患者
  • I: SGLT2抑制剂empagliflozin、dapagliflozin等
  • C: 安慰剂或常规疗法
  • O: 心血管结局MACE、心衰住院、心血管死亡
  • S: RCT

结果: 准确率60%一致率70%

本次测试(卒中二级预防)

PICOS标准:

  • P: 非心源性缺血性卒中患者、亚洲人群
  • I: 抗血小板/抗凝/溶栓药物(阿司匹林、氯吡格雷等)
  • C: 安慰剂或常规治疗
  • O: 卒中进展、复发、残疾、死亡等
  • S: SR、RCT、RWE、OBS

结果: 准确率60%一致率100%


💡 核心发现

发现1: 系统确实具有泛化能力

证据:

  1. 从糖尿病 → 卒中PICOS完全不同系统能理解
  2. 对应该排除的文献判断100%准确
  3. 两个模型判断完全一致100%

结论: 基本假设成立 - LLM可以理解不同研究主题的PICOS标准

发现2: 系统过于保守 ⚠️

误判案例1:

文献: 替格瑞洛 vs 氯吡格雷TICA-CLOP研究
人类: Included
AI: Excluded

AI理由:
- "研究对象为北非人群,而非亚洲人群"
- "急性期治疗24小时内非二级预防"

分析: AI严格执行了"亚洲人群"要求,但人类专家可能认为:
- 研究结果可以参考(即使不是亚洲人群)
- 或者用户实际想要的是"非心源性卒中",地域不重要

误判案例2:

文献: 双抗 vs 单抗Meta分析
人类: Included
AI: Excluded

AI理由:
- "研究时间截止2019年不符合2020年后要求"
- "对照组是单抗,不是安慰剂"
- "急性期<72小时"

分析: AI严格执行了纳入标准但人类可能认为
- Meta分析本身发表在2020年后即可
- 单抗治疗也算"常规治疗"
- 72小时内开始的治疗也算"二级预防"

发现3: 判断标准存在歧义 🎯

关键问题:

标准 AI理解 人类可能理解 歧义来源
"亚洲人群" 必须明确是亚洲 全球研究也可参考 地域限制的严格程度
"二级预防" 排除急性期治疗 急性期后持续用药算 时间窗口的定义
"安慰剂对照" 只能是安慰剂 另一种药物也算 对照类型的范围
"2020年后" 研究时间在2020年后 发表时间在2020年后 时间标准的参照点

🎯 根本原因分析

问题不在Prompt而在需求不明确

示例: "亚洲人群"这个要求

方案AAI当前理解:

if 文献明确说明是"北非人群":
    → 不是亚洲人群 → 排除

方案B人类可能期望:

if 文献包含亚洲亚组数据:
    → 可以纳入
elif 文献虽然不是亚洲,但结果具有参考价值:
    → 也可以纳入

两种理解都合理,但需要用户明确!


💡 解决方案

方案1: 优化Prompt治标不治本

可以做的:

  • 让Prompt更宽松"亚洲人群"改为"优先亚洲人群"
  • 增加灰度:"急性期治疗如果持续用于预防也算"

问题:

  • 只对当前测试有效
  • 下一个用户可能期望相反(更严格)
  • 无法解决根本问题

方案2: 用户自定义边界(治本) 推荐

您之前提出的方案:

1. 用户输入PICOS + 纳排标准
2. 系统生成20种边界情况
3. 用户确认每种情况是纳入/排除/不确定
4. 系统基于用户确认生成Prompt

为什么这是正确方案:

  1. 让用户明确定义"什么算匹配"
  2. 避免AI过度猜测
  3. 适用于任何研究主题
  4. 可以持续学习优化

示例边界情况表:

# 情况 AI建议 用户确认
1 非心源性卒中 + 亚洲人群 + 抗血小板 + RCT 纳入 纳入
2 非心源性卒中 + 北非人群 + 抗血小板 + RCT 排除 纳入(用户纠正)
3 非心源性卒中 + 亚洲人群 + 急性期24h + RCT 排除 纳入(用户纠正)
4 非心源性卒中 + 亚洲人群 + 对照为另一种药 排除 纳入(用户纠正)

📈 修复Bug后的改进

Bug1: 冲突检测逻辑 已修复

之前:

// PICO任一维度不同就标记冲突
if (P不同 || I不同 || C不同 || S不同 || conclusion不同) {
  hasConflict = true;
}

之后:

// 只看conclusion是否一致
hasConflict = (conclusion1 !== conclusion2);

效果: 一致率从70% → 100%

Bug2: 决策比较逻辑 已修复

之前:

"Excluded" === "Exclude"  // false大小写和后缀不匹配

之后:

normalize("Excluded") === normalize("Exclude")  // true

效果: 准确率从0% → 60%(真实准确率)


🎯 结论与建议

验证成功的假设

  1. 泛化能力存在: LLM可以理解不同研究主题的PICOS
  2. 双模型策略有效: 两个模型完全一致
  3. 基本Prompt框架可用: 对明确的排除情况判断准确

⚠️ 需要解决的问题

  1. 边界情况定义: 不同用户对"匹配"的理解不同
  2. 过度保守: 当前Prompt倾向于排除而非纳入
  3. 无法猜测用户意图: AI不知道用户真正想要什么

📝 下一步行动(按优先级)

立即行动(本周)

选择A: 快速MVP1-2天 ⚠️ 不推荐

  • 放宽当前Prompt的判断标准
  • 手动调整"亚洲人群"、"二级预防"等要求
  • 问题: 只对当前场景有效,不可扩展

选择B: 基础PICOS配置2-3天 推荐

  • 前端PICOS配置表单纯文本输入
  • 后端动态Prompt生成变量替换
  • 测试:用更多真实数据验证
  • 优点: 通用,可扩展

中期行动Week 2-3

实现智能边界情况确认:

  1. 用户输入PICOS → LLM分析生成20种边界情况
  2. 用户确认每种情况的处理方式
  3. 系统基于确认生成定制化Prompt
  4. 从用户纠正中学习Few-shot

📊 测试数据统计

项目 数值
测试样本数 5篇2 Included + 3 Excluded
正确判断 3篇全部是Excluded
错误判断 2篇全部是Included误判为Excluded
假阴性率 100% (2/2)
假阳性率 0% (0/3)
平均处理时间 16.3秒/篇
Token消耗 ~3000 tokens/篇(双模型)

💬 用户反馈(需确认)

需要向用户确认的问题:

  1. "亚洲人群"的定义:

    • 必须是明确的亚洲人群?
    • 还是全球研究也可以参考?
  2. "二级预防"的时间窗口:

    • 严格排除急性期治疗?
    • 还是急性期后持续用药也算?
  3. "安慰剂对照"的范围:

    • 只能是安慰剂?
    • 还是另一种药物对照也可以?
  4. "2020年后"的标准:

    • 指研究开展时间?
    • 还是文献发表时间?

这些问题的答案,将直接影响系统的判断标准!


🚀 下一步建议

我的推荐方案

阶段1: 本周完成 (2-3天)

1. 开发PICOS配置界面前端表单
2. 实现动态Prompt生成后端
3. 用10-20篇真实数据测试
4. 验证准确率能否达到75%+

阶段2: Week 2 (如果阶段1成功)

1. 实现智能边界情况生成
2. 用户交互确认机制
3. 从纠正中学习Few-shot
4. 目标准确率 85%+

阶段3: V1.0 (如果阶段2成功)

1. 完整的交互式配置
2. 案例库管理
3. 持续学习优化

报告人: AI Assistant
审核人: [待用户确认]
日期: 2025-11-18
版本: v1.0


附录:详细测试日志

详见: backend/scripts/test-results/