Meta 的 WearableQA 健康推理基准 (GitHub 仓库)

TLDR AI 工具

摘要

WearableQA 是一个基准数据集,包含 4,084 道多选题,用于基于真实世界可穿戴数据的健康推理,旨在评估 AI 模型在纵向健康数据分析方面的性能。

Meta 已发布 WearableQA,这是一个包含数千道问题的基准,这些问题基于来自 200 名用户的真实世界可穿戴数据、血液生物标志物和人口统计数据构建。
查看原文
查看缓存全文

缓存时间: 2026/09/11 14:13

facebookresearch/WearableQA 来源:https://github.com/facebookresearch/WearableQA

WearableQA:基于真实世界可穿戴数据的健康推理基准

arXiv (https://arxiv.org/abs/2609.05405)
HuggingFace 数据集 (https://huggingface.co/datasets/facebook/WearableQA)
许可证:CC BY-NC 4.0

WearableQA 是一个包含 4,084 道十选一多项选择题 的基准测试集,基于 200 名真实用户 的可穿戴设备时间序列、血液生物标志物和人口统计学信息构建,每位用户拥有多达约 500 天的每日测量数据。与基于合成或理想化信号构建的基准测试集不同,它保留了真实的可穿戴数据分布——包括设备噪声、缺失天数以及个体间差异。每个问题要求模型基于单个用户的纵向记录进行推理:对原始测量值进行计算、进行生理学解读,或两者兼需。

WearableQA 分类法

这 16 种问题类型沿两个互补的轴组织:

  • 数据 vs. 健康推理 — 对纵向测量值进行计算(如相关性分析、异常计数、恢复时间、趋势形态)与对其进行生理学解读(如风险评估、鉴别诊断、预后预测)。
  • 单信号 vs. 跨信号推理 — 基于单一指标推理与整合多个指标进行推理。
类别数量
推理组数据 / 健康2,724 / 1,360
信号复杂度单信号 / 跨信号1,682 / 2,402
依据来源群体统计 / 文献依据3,154 / 930

在每个推理组内,标准答案在选项 A–J 之间均匀平衡,因此随机基线为 10%。


本仓库包含什么

三个文件,两种格式——一个可直接使用的已渲染数据集,以及其来源的结构化数据。

文件大小说明
WearableQA.jsonl306 MB预渲染基准数据集。 每行一个问题,提示词已展平为文本。用于评估模型。
WearableQA_raw.json39 MB结构化源文件。 包含问题及完整的逐用户时间序列,您可以按任意方式渲染数据。
render_raw.py10 KB渲染器,可将结构化源文件转换为 .jsonl 格式,支持四种序列化方式。

1. WearableQA.jsonl —— 预渲染基准数据集

共 4,084 行,每个 JSON 对象对应一个问题。如果您只想将模型运行于该基准测试,使用此文件即可:所有提示词都已为单个字符串,无需组装。

{
  "id": "Lit_user_25_2024-08-06",
  "question": "You are given a user's demographics, wearable health sensor history, ...",
  "choices": {
    "A": "an elevated resting heart rate with low daily activity ...",
    "...": "..."
  },
  "answer": "A",
  "category": "fitness_prediction",
  "reasoning_group": "health",
  "signal": "cross",
  "grounding": "literature",
  "representation": "row"
}
字段含义
id唯一问题ID(__
question完整提示词:指令、用户档案、传感器历史、血液检查、队列百分位、问题题干和选项
choices十个选项,键为 AJ
answer标准答案选项字母
category16 种问题类型之一
reasoning_groupdata(数据)或 health(健康)
signalsingle(单信号)或 cross(跨信号)
groundingpopulation(基于队列统计)或 literature(基于文献关系)
representation本文件使用的传感器序列化格式(发布文件中为 row

question 字符串由以下部分组装而成:

(指令)
=== USER PROFILE === 年龄、性别、BMI、种族
=== SENSOR DATA (row:每日一行) === 最多约500天的每日指标
=== BLOOD BIOMARKER PANEL === 如有,包含17种生物标志物
=== COHORT REFERENCE (population percentiles) === 5项指标的p10/p25/p50/p75/p90百分位
=== QUESTION === 问题题干
=== OPTIONS === A-J 选项

不适用的部分会被省略——有些问题特意不提供时间序列,模型必须仅凭血液检查面板进行推理;有些则省略队列参考。提示词很大:中位数约 86k 字符,最大约 124k。请相应配置上下文长度。

每位用户最多出现 16 项每日指标:步数、静息心率(RHR)、心率变异性(HRV)、最大摄氧量(VO2 max)、睡眠时长、睡眠效率、深睡占比(Deep%)、快速眼动占比(REM%)、就寝时间标准差、活动卡路里(Active Cal)、基础代谢率卡路里(BMR Calories)、平均压力水平(Stress)、运动次数(Exercise count)、运动时长(Exercise hours)、运动代谢当量(Exercise METs)和运动平均心率(Exercise average HR)。

真实记录是稀疏的——某一天缺失的指标在该天的行中简单地不出现。

2. WearableQA_raw.json —— 结构化源文件

这是渲染前的同一基准数据集,因此您可以以不同方式序列化时间序列,将数值馈送给使用工具的代理,或构建自己的提示模板。

{
  "description": "...",
  "n_mcqs": 4084,
  "n_unique_users": 200,
  "gt_balancing": "uniform A-J within each reasoning group (data / health)",
  "cohort_reference": {
    "": {p10, p25, p50, p75, p90, _min, _max, ...}
  },  // 5项指标
  "user_histories": {
    "": [
      {date, : value, ...}, ...
    ]
  },  // 200位用户
  "mcqs": [
    { ... }, ...
  ]  // 4,084个问题
}

mcqs 中的每个条目包含:

字段含义
id, user_id问题ID及其所属用户
stem, options, gt_letter问题文本、十个选项、标准答案字母
question_type, reasoning_group, signal, grounding分类标签
context该用户的 demographics(人口统计学信息)和 blood_panel(血液检查面板)
end_date问题观察窗口的最后一天
window_size问题所询问的窗口长度(天数,全程为28)
full_dropped_metrics本问题故意不提供的指标
no_cohort是否省略了队列参考

user_histories 存储每位用户的完整记录——渲染器会为每个问题切出所需的窗口。渲染一个问题需要28天的观察窗口加上最多500天的前置历史记录作为上下文。

3. render_raw.py —— 渲染器

从结构化源文件重建 .jsonl 文件。不加参数时,它逐字节复现发布的 WearableQA.jsonl(已验证:md5 82bb783e147db78501d35ffab4a5392f)。

# 重新生成发布的文件(row 格式)
python3 render_raw.py

# 以不同方式渲染传感器数据
python3 render_raw.py --format markdown --out WearableQA_markdown.jsonl
python3 render_raw.py --format csv --out WearableQA_csv.jsonl
python3 render_raw.py --format col --out WearableQA_col.jsonl
标志默认值含义
--dataWearableQA_raw.json结构化源文件
--formatrowrowcolcsvmarkdown
--outWearableQA.jsonl输出路径

只有 === SENSOR DATA === 块在不同格式间变化;提示词中的其他所有部分都相同。

row —— 每日一行,稀疏(缺失指标省略):

2023-10-20: Active Cal=1255, Stress=21.0, Deep%=30.7, RHR=38.0, Sleep(h)=5.05, Steps=27858, ...
2023-10-21: Active Cal=831.0, Stress=29.0, RHR=39.0, Steps=25463, VO2max=54.0

col —— 每个指标一个块,展示每个指标的整体轨迹:

Active Cal: 2023-10-20=1255, 2023-10-21=831.0, 2023-10-22=989.0, 2023-10-23=575.0, ...

csv —— 密集表格,缺失值为空字段:

date,Active Cal,Stress,Deep%,RHR,Sleep(h),Steps,VO2max
2023-10-20,1255,21.0,30.7,38.0,5.05,27858,54.0
2023-10-21,831.0,29.0,,39.0,,25463,54.0

markdown —— markdown 格式的同一表格。

格式选择很重要:在我们的实验中,序列化方式影响了几个百分点的准确度,并且相同数据的图像渲染远差于任何文本形式。

输出文件大小差异显著——csv 约 132 MB,row 306 MB,col 330 MB——这是因为稀疏格式重复指标名称,而密集格式重复分隔符。

render_raw.py 仅需 Python 3 —— 无第三方依赖。


获取数据(Git LFS)

数据集文件使用 Git LFS(https://git-lfs.com)存储。 克隆前请先安装 LFS,否则您将获得小型文本指针文件而非实际数据。

# 每台机器只需执行一次
git lfs install
git clone https://github.com/facebookresearch/WearableQA.git
cd WearableQA

已经克隆但未使用 LFS?请用以下命令获取实际文件:

git lfs pull

要检查您是否拥有实际数据而非指针:

$ ls -lh WearableQA.jsonl  # 应约为 306M,而非约 134 字节
$ head -c 60 WearableQA.jsonl  # 应为 JSON,而非 "version https://git-lfs..."

如果您只需要结构化源文件而不需要 306 MB 的渲染文件,可以在克隆时不拉取 LFS 内容,然后只拉取所需的文件:

GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/facebookresearch/WearableQA.git
cd WearableQA
git lfs pull --include="WearableQA_raw.json"
python3 render_raw.py  # 在本地重建渲染文件

快速开始

该数据集也托管在 Hugging Face Hub,这是最快获取方式——无需克隆,无需 LFS 设置:

from datasets import load_dataset
ds = load_dataset("facebook/WearableQA", split="test")
ds[0]["question"]  # 完整的提示词,可直接发送给模型
ds[0]["choices"]   # {"A": ..., ..., "J": ...}
ds[0]["answer"]    # "A"

Hub 上的副本也包含其他三种传感器序列化方式以及一个 structured 配置,提供原始数值而非渲染提示:

load_dataset("facebook/WearableQA", "markdown", split="test")  # 另一种序列化方式
load_dataset("facebook/WearableQA", "structured", split="test")  # 构建您自己的提示

如果您使用本仓库中的文件:

import json
with open("WearableQA.jsonl") as f:
    questions = [json.loads(line) for line in f]

print(len(questions))  # 4084

q = questions[0]
prompt = q["question"]  # 可直接发送给模型
gold = q["answer"]      # 例如 "A"

# 在分类法的某个切片上评估
health = [q for q in questions if q["reasoning_group"] == "health"]
cross = [q for q in questions if q["signal"] == "cross"]

只有当模型选择的字母与 answer 匹配时,我们才评分为正确;无法解析字母的回答计为不正确。


引用

@misc{lee2026wearableqa,
  title={{WearableQA}: A Benchmark for Health Reasoning over Real-World Wearable Data},
  author={Ji Soo Lee and Xilun Chen and Pierce Chuang and Ashish Shenoy and Jason Wei and Dohwan Ko and Hyunwoo J. Kim and Benoit Corda},
  year={2026},
  eprint={2609.05405},
  archivePrefix={arXiv},
  primaryClass={cs.CL},
  url={https://arxiv.org/abs/2609.05405},
}

许可证

数据采用知识共享署名-非商业性使用 4.0 国际许可协议(CC BY-NC 4.0)授权,并受以下附加条款约束: (i) 禁止尝试重新识别或重新识别用户; (ii) 禁止用于与临床、诊断或治疗决策相关的用途; (iii) 禁止以对健康相关结果具有歧视性、有害性或误导性的方式使用; (iv) 数据集按“原样”提供,不附带任何明示或暗示的保证,包括但不限于准确性、完整性或特定用途适用性,并且仅用于研究和基准测试目的。完整文本请参见 LICENSE

相似文章

介绍 HealthBench

OpenAI Blog

OpenAI 推出了 HealthBench,这是一个用于评估医疗保健环境中人工智能系统的新基准。该基准由来自 60 个国家的 262 名医生共同创建,包含 5,000 个逼真的健康对话和医生编写的评分标准,用于评估模型在有意义、可信和可改进的指标上的性能。

OpenMHC:加速可穿戴基础模型科学研究

arXiv cs.LG

OpenMHC推出了最大的开放获取可穿戴健康数据集,包含超过6000万小时的数据,并提供了可穿戴基础模型的开源实现,包括用于预测、插补和时序预测的统一基准测试。