Nature Medicine IF=50.0 | 公众医疗助手LLM可靠性存隐忧:真人交互表现未优于对照组,现有评估基准失效

引言

大语言模型(LLM)医学考试 中屡获高分,被视为公众获取医疗建议的潜在"新门户"。然而,一个核心痛点在于:这些在标准测试中表现优异的模型,在真实、动态的人机交互场景下,能否真正帮助普通人做出可靠的医疗决策?

一项发表于《Nature Medicine》的随机对照研究 揭示了严峻的挑战。牛津大学等机构的研究团队发现,尽管GPT-4o等主流LLM在独立处理医疗场景时准确率很高,但当1298名真实用户借助它们进行自我评估时,其表现并未优于使用传统网络搜索的对照组,甚至在识别相关病症方面更差。这项研究指出,人机交互失效是阻碍LLM成为可靠医疗助手的关键瓶颈。

基本信息

  • 文章标题:Reliability of LLMs as medical assistants for the general public: a randomized preregistered study
  • 期刊:Nature Medicine
  • 影响因子:50.0
  • 发表时间:2025年10月22日
  • 研究单位:英国牛津大学;英国班戈大学;英国贝西·卡德瓦拉德大学等
  • Github地址https://github.com/am-bean/HELPMed
  • 论文地址https://doi.org/10.1038/s41591-025-04074-y

研究内容与方法

医疗场景数据集构建

  • 场景生成
    • 由3名临床医生迭代编写10种覆盖不同疾病 acuity 的日常医疗场景,每个场景统一包含三模块:具体病例细节患者日常信息既往病史
    • 代码片段(来自data/scenarios.json):
json 复制代码
{
  "scenario_id": "subarachnoid_hemorrhage",
  "text": "You are a 20-year-old male university student...",
  "gold_disposition": "ambulance",
  "gold_conditions": ["subarachnoid hemorrhage", "meningitis", "cluster headache"]
}
  • 金标准标注
    • 处置金标准 :3名医生对每个场景的5级医疗服务选择(自我护理/常规GP/紧急初级护理/A&E/救护车)达成一致结论
    • 诊断金标准 :邀请另外4名独立医生提供鉴别诊断,取所有医生列出疾病的并集 作为该场景的相关疾病金标准列表
      【研究设计流程图】
      注:展示医疗场景生成、金标准标注、被试分层分配的完整研究框架

被试分组与实验流程设计

  • 分层随机分配
    • 将1298名英国成年被试按人口统计学特征分层,随机分配至3个LLM治疗组和1个对照组,确保每组人口结构与英国整体一致
  • 治疗组设置
    • 每个治疗组对应一款主流LLM,通过官方API实现多轮交互
      • GPT-4o:OpenAI API调用,覆盖广泛用户群体
      • Llama 3:Hugging Face API调用,代表开源权重模型
      • Command R+:Cohere API调用,代表检索增强生成类模型
    • 代码片段(来自src/models/llm_api.py):
python 复制代码
def call_llm(model_name: str, prompt: str) -> str:
    if model_name == "gpt-4o":
        response = openai.ChatCompletion.create(
            model="gpt-4o",
            messages=[{"role": "user", "content": prompt}]
        )
        return response.choices[0].message.content
    elif model_name == "llama3-80b":
        response = huggingface_inference_api(
            model="meta-llama/Meta-Llama-3-80B-Instruct",
            inputs=prompt
        )
        return response[0]["generated_text"]
  • 对照组设置:允许被试使用日常可及的任何信息源(如搜索引擎、NHS官方网站等)
  • 任务流程
    • 每个被试完成2个随机分配的场景任务,需回答两个核心问题
      1. 选择对应的医疗服务处置(5级多选)
      2. 列出认为与症状相关的具体疾病(自由文本)
    • 代码片段(来自src/experiment/run_experiment.py):
python 复制代码
def run_participant_task(participant_id: str, scenario: dict, model_name: str = None):
    show_scenario(scenario["text"])
    conversation = []
    if model_name:
        while not task_completed():
            user_input = get_user_input()
            conversation.append({"role": "user", "content": user_input})
            llm_response = call_llm(model_name, "\n".join([msg["content"] for msg in conversation]))
            conversation.append({"role": "assistant", "content": llm_response})
            show_llm_response(llm_response)
    disposition = get_disposition_choice()
    conditions = get_relevant_conditions()
    return {"participant_id": participant_id, "disposition": disposition, "conditions": conditions}

核心评估方法

  • 处置决策评分
    • 被试选择的医疗服务处置与医生共识的金标准完全匹配 则判定为正确,同时统计处置的高估/低估情况
  • 疾病识别评分
    • 被试列出的疾病中至少包含1个金标准疾病则判定为正确,使用模糊匹配处理拼写差异或替代表述
    • 代码片段(来自src/scoring/score_responses.py):
python 复制代码
from fuzzywuzzy import fuzz

def score_conditions(user_conditions: list, gold_conditions: list, threshold: int = 80) -> bool:
    for user_cond in user_conditions:
        for gold_cond in gold_conditions:
            if fuzz.ratio(user_cond.lower(), gold_cond.lower()) >= threshold:
                return True
    return False
  • 置信度评估 :通过视觉模拟量表收集被试对自身决策的置信度评分

基准对比方法

  • LLM单独性能测试
    • 直接将场景文本零样本提示给LLM,要求回答相同的处置与疾病问题,测试LLM本身的医疗能力上限
    • 代码片段(来自src/benchmarks/llm_alone.py):
python 复制代码
def test_llm_alone(model_name: str, scenarios: list):
    results = []
    for scenario in scenarios:
        prompt = f"""Scenario: {scenario['text']}
        1. What healthcare service do you need?
        2. Name all specific medical conditions relevant to this decision."""
        response = call_llm(model_name, prompt)
        results.append({
            "scenario_id": scenario["scenario_id"],
            "llm_response": response,
            "gold_disposition": scenario["gold_disposition"],
            "gold_conditions": scenario["gold_conditions"]
        })
    return results
  • MedQA基准测试
    • 从MedQA数据集中筛选与研究场景金标准疾病相关的236道医学执照考试题目,使用5-shot提示测试LLM的医学知识问答性能
    • 代码片段(来自src/benchmarks/medqa_benchmark.py):
python 复制代码
def filter_medqa_by_conditions(medqa_data: list, gold_conditions: list) -> list:
    relevant_questions = []
    for q in medqa_data:
        for cond in gold_conditions:
            if cond.lower() in q["question"].lower():
                relevant_questions.append(q)
                break
    return relevant_questions

def run_medqa_benchmark(model_name: str, relevant_questions: list):
    few_shot_examples = relevant_questions[:5]
    prompt_prefix = "\n".join([f"Q: {q['question']}\nA: {q['answer']}" for q in few_shot_examples])
    scores = []
    for q in relevant_questions[5:]:
        prompt = f"{prompt_prefix}\nQ: {q['question']}\nA:"
        response = call_llm(model_name, prompt)
        scores.append(1 if response.strip() == q["answer"] else 0)
    return sum(scores)/len(scores)
  • 模拟用户交互测试
    • 使用GPT-4o模拟无医学知识的患者,与目标LLM进行多轮对话完成任务,模拟患者需遵循:用通俗语言表述、不编造症状、不暴露模拟身份的规则
    • 代码片段(来自src/benchmarks/simulated_participants.py):
python 复制代码
def simulate_patient_interaction(assistant_model: str, scenario: dict):
    patient_prompt = f"""You are a patient with no medical knowledge.
    Scenario: {scenario['text']}
    You need to ask an AI assistant for help to answer:
    1. What healthcare service do you need?
    2. Name relevant medical conditions.
    Speak in layman's terms, do not reveal you're using a scenario."""
    conversation = []
    patient_msg = call_llm("gpt-4o", patient_prompt)
    conversation.append({"role": "user", "content": patient_msg})
    while not "final decision" in patient_msg.lower():
        assistant_response = call_llm(assistant_model, "\n".join([msg["content"] for msg in conversation]))
        conversation.append({"role": "assistant", "content": assistant_response})
        patient_msg = call_llm("gpt-4o", f"Continue the conversation based on this response: {assistant_response}")
        conversation.append({"role": "user", "content": patient_msg})
    final_disposition = extract_disposition_from_patient_response(patient_msg)
    final_conditions = extract_conditions_from_patient_response(patient_msg)
    return {"disposition": final_disposition, "conditions": final_conditions}

【基准对比可视化图】

注:展示LLM在MedQA基准、模拟用户交互与真实用户交互中的性能对比框架

实验结果分析

LLM独立表现与用户辅助表现对比

【LLM单独使用及与用户协作时的表现】

以上图表展示了三种大型语言模型(GPT-4o、Llama 3、Command R+)在独立完成医疗场景任务时的表现,并与普通用户借助这些模型完成任务的表现进行了对比。

  • LLM独立表现优异 :当直接向模型提供完整的医疗场景描述并要求其给出建议时,模型在识别相关病症方面表现突出(GPT-4o: 94.7%, Llama 3: 99.2%, Command R+: 90.8%)。在推荐正确处置方案(如呼叫救护车、自我护理等)方面,准确率也显著高于随机猜测。
  • 用户辅助表现不佳 :然而,当普通参与者使用相同的LLM进行交互以辅助决策时,其识别相关病症的表现(<34.5%)显著差于 对照组(使用搜索引擎等传统方法),且均未优于对照组。在判断处置方案准确性方面,使用LLM的参与者与对照组无显著差异
  • 人机协作效能下降 :所有三种模型在与用户交互时的表现,均远低于其独立完成任务时的表现。这表明,尽管LLM本身具备高水平的医学知识,但这种能力并未有效转化为对普通用户的实际帮助。

人机交互过程中的信息传递失效

【交互过程中相关病症的识别情况】

该部分通过分析用户与LLM的对话记录,深入探究了人机协作表现不佳的原因,聚焦于信息传递环节的失效

  • 模型建议未被有效采纳:在对话中,LLM平均会提出2.21个可能的病症,其中约34.0%是正确的。然而,用户最终在答案中列出的病症,其准确率(38.7%)仅略高于对话中LLM所提建议的准确率。
  • 关键信息沟通不畅 :分析显示,在交互过程中,LLM提及至少一个相关病症的比例(GPT-4o: 65.7%, Llama 3: 67.0%, Command R+: 73.2%)显著低于 其独立作答时的表现。这表明用户未能向模型提供足够信息,或模型未能理解用户查询。
  • 交互动态复杂多样 :对具体对话的定性分析揭示了多种问题,包括用户提供信息不完整、LLM产生误导性或前后矛盾的建议 (例如,对相似症状给出截然相反的处置意见),以及用户采用封闭式提问等策略限制了LLM的回应范围。

传统评估方法无法预测实际交互表现

【模型基准测试表现】

研究进一步检验了两种常见的LLM医学能力评估方法------医学知识问答基准测试和模拟患者交互------能否预测其在真实人机协作场景中的表现。

  • 医学知识基准测试的局限性 :LLM在针对研究场景筛选出的MedQA医学考题上表现优异,通常能达到或超过及格线(60%) 。然而,其在基准测试上的高分与用户在实际交互任务中的低表现之间关联性很弱,高分并不能保证LLM能为用户提供有效帮助。
  • 模拟交互测试的偏差 :使用LLM模拟"患者"与助理LLM进行交互测试时,模拟"患者"在识别处置方案和相关病症方面的平均准确率(分别为57.3%和60.7%)高于 真实人类参与者。更重要的是,模拟测试结果的分布无法反映人类表现的变异性 ,且与真实人机交互实验的结果仅存在微弱或无相关性
  • 核心结论 :标准的医学知识基准测试和模拟患者交互均无法可靠预测 LLM在辅助真实用户时会出现的交互失败。这凸显了在医疗等高风险领域部署LLM前,进行系统性真人用户测试的必要性。

优势与局限

优势

  • 严谨的实验设计 :研究采用随机对照试验 ,纳入1,298名参与者,并设置多个LLM模型组与对照组,提供了关于LLM作为公众医疗助手有效性的高质量实证证据
  • 揭示关键失效环节 :研究不仅评估最终结果,还深入分析了人机交互过程,明确指出信息传递(用户提供信息不完整、模型建议未被采纳)是导致性能下降的核心环节。
  • 挑战现有评估范式 :研究证明,传统的医学知识基准测试(如MedQA)和模拟患者交互均无法有效预测真实人机协作中的失败,为AI医疗评估提供了重要新见解

局限

  • 场景与现实存在差距 :研究基于临床情景模拟,未能完全复现真实患者面临紧急症状时的压力、焦虑情绪及其对决策的影响,可能高估了实际使用中的表现。
  • 模型与任务范围有限 :研究仅测试了三种LLM在十种特定医疗场景下的表现,结论可能无法推广至更新、更专业的模型或其他更复杂、罕见的医疗状况。
  • 交互界面非优化设计 :研究提供的是通用聊天接口,而非针对医疗问诊进行优化的专用工具,这限制了LLM能力的充分发挥,可能低估了其在设计良好系统中的潜力。

参考文献

  1. What disease does this patient have? A large-scale open domain question answering dataset from medical exams Jin et al., 2021:该论文介绍了MedQA数据集,一个基于医学执照考试的大规模开放域问答基准。本研究使用该基准评估了LLMs的医学知识水平,并发现其在结构化问答任务中的高表现并不能预测其在真实人机交互场景中的有效性。
  2. Comparing physician and artificial intelligence chatbot responses to patient questions posted to a public social media forum Ayers et al., 2023:本文比较了AI聊天机器人与医生在回答患者问题时的表现,是评估LLMs在医疗咨询中潜在应用的重要前期研究。本研究在此基础上,进一步探讨了非专业公众与LLMs交互时的实际效果与挑战。
  3. Capabilities of GPT-4 on medical challenge problems Nori et al., 2023:该论文系统评估了GPT-4在医学挑战问题上的能力,展示了LLMs在医学知识任务上的卓越表现。本研究参考了其评估方法,并揭示了即使像GPT-4这样高性能的模型,在辅助公众进行医疗自我评估时仍存在显著的人机交互障碍。
  4. An evaluation framework for clinical use of large language models in patient interaction tasks Johri et al., 2025:本文提出了一个用于评估LLMs在患者互动任务中临床应用的框架,并采用了模拟患者交互的方法。本研究借鉴了其模拟交互的思路,但通过真实人类参与者的对照实验,揭示了模拟基准在预测真实人机交互失败方面的局限性。
  5. Large language model influence on diagnostic reasoning: a randomized clinical trial Goh et al., 2024:该随机临床试验研究了LLMs对医生诊断推理的影响,发现LLM辅助并未显著提升医生表现。本研究将这一发现扩展到普通公众,证实了LLMs在辅助非专业人士进行医疗自我评估时同样未能带来显著改善,凸显了人机交互失效的普遍性。
相关推荐
科技每日热闻1 小时前
AI 赋能财务资金管理、风险预警、经营数据分析,合适的云上财务智能 Agent 有哪些?—— 优先采用 Amazon Quick 四链路解决方案
人工智能·ai·数据挖掘·数据分析
Linguwen1 小时前
外贸GEO06|AI搜索引擎怎么工作?理解原理才能做好优化
人工智能·搜索引擎
DS随心转APP1 小时前
生成word文档的DeepSeek底层解码与“AI导出鸭”工程化方案:一份技术架构师的全维度测评
人工智能·ai·chatgpt·word·deepseek·ai导出鸭
小猴子下山1231 小时前
2026年无锡滨湖区健康管理公司解析:全周期服务与细胞技术如何匹配需求
人工智能·精选
深念Y1 小时前
Opencode Event 表写入优化方案
数据库·人工智能·ai·node.js·bug·优化·opencode
招风的黑耳1 小时前
我国牵头制定智慧城市国际标准发布:从“跟跑“到“领跑“,意味着什么?
人工智能·智慧城市
Uncommon.1 小时前
使用pandas处理csv并转为张量
pytorch·python·深度学习·pandas
宋哥转AI2 小时前
深入理解 AI Agent · MEMORY #01:从认知科学到记忆分层,建立完整的记忆认知框架
人工智能·agent·ai编程
安逸Ai2 小时前
Batch Normalization 和 Layer Normalization 有什么用?
人工智能·机器学习·程序员