WearableQA
收藏资源简介:
WearableQA是一个基准数据集,包含4084个十选项多项选择题,这些题目基于200个真实用户的穿戴时间序列、血液生物标志物和人口统计信息构建。每个用户有长达约500天的每日测量数据。与基于合成或理想化信号的基准不同,它保留了真实的穿戴数据分布——包括设备噪声、缺失天数和个体间变异性。
WearableQA is a benchmark dataset containing 4,084 ten-option multiple-choice questions, which are constructed based on wearable time series, blood biomarkers and demographic information from 200 real users. Each user has daily measurement data spanning up to approximately 500 days. Unlike benchmarks built on synthetic or idealized signals, it preserves the real-world distribution of wearable data, including device noise, missing days and inter-individual variability.
WearableQA 数据集概述
一、数据集基本信息
- 名称:WearableQA
- 性质:基于真实世界可穿戴数据进行健康推理的基准(Benchmark)
- 规模:4,084 道十选一多项选择题
- 数据来源:来自 200 名真实用户的可穿戴时间序列、血液生物标志物和人口统计学数据
- 数据跨度:每位用户拥有最多约 500 天的每日测量数据
- 数据特点:保留了真实可穿戴数据的分布特征,包括设备噪声、缺失日期和个体间差异
- 许可证:Creative Commons Attribution-Non Commercial 4.0 International (CC BY-NC 4.0)
- 论文:arXiv 编号 2609.05405
二、任务设计
每道题要求模型对单个用户的纵向记录进行推理,具体包括:
- 对原始测量值进行计算
- 对测量值进行生理学解释
- 或同时包含以上两者
三、问题分类体系
16 种问题类型沿两个互补维度组织:
- 数据推理 vs. 健康推理:对纵向测量进行计算(相关性、偏移计数、恢复时间、趋势形态) vs. 对测量进行生理学解释(风险评估、鉴别诊断、预后预测)
- 单信号推理 vs. 跨信号推理:单一指标内的推理 vs. 多个指标的整合
划分统计
| 维度 | 划分 | 数量 |
|---|---|---|
| 推理组 | data / health | 2,724 / 1,360 |
| 信号复杂度 | single / cross | 1,682 / 2,402 |
| 依据来源 | population / literature | 3,154 / 930 |
每个推理组内,真值答案在选项 A–J 上均匀平衡,随机基线为 10%。
四、仓库内容
仓库包含三个文件、两种格式:
| 文件 | 大小 | 说明 |
|---|---|---|
WearableQA.jsonl |
306 MB | 预渲染基准,每行一个问题,提示已展平为文本,用于评估 |
WearableQA_raw.json |
39 MB | 结构化源文件,包含问题及完整的按用户时间序列,可自行渲染 |
render_raw.py |
10 KB | 渲染器,将结构化源渲染为 .jsonl,支持四种序列化格式 |
1. WearableQA.jsonl(预渲染基准)
包含 4,084 行,每行一个 JSON 对象。字段说明:
| 字段 | 含义 |
|---|---|
id |
唯一问题 id(<source>_<user>_<end-date>) |
question |
完整提示:指令、用户画像、传感器历史、血液面板、队列百分位、问题题干、选项 |
choices |
十个选项,键为 A–J |
answer |
真值选项字母 |
category |
16 种问题类型之一 |
reasoning_group |
data 或 health |
signal |
single 或 cross |
grounding |
population(源自队列统计)或 literature(源自已发表关系) |
representation |
该文件渲染所用的传感器序列化方式(发布文件中为 row) |
问题字符串构成部分:
- (instruction)
- === USER PROFILE ===(年龄、性别、BMI、族裔)
- === SENSOR DATA (row: one line per day) ===(最多约 500 天的每日指标)
- === BLOOD BIOMARKER PANEL ===(17 项生物标志物,如有)
- === COHORT REFERENCE (population percentiles) ===(5 项指标的 p10/p25/p50/p75/p90)
- === QUESTION ===(问题题干)
- === OPTIONS ===(A–J)
不适用时会省略相应部分。提示体积较大:中位数约 86k 字符,最大约 124k。
每位用户最多出现 16 项每日指标:步数、静息心率、HRV、VO2 max、睡眠时长、睡眠效率、深睡百分比、REM 百分比、就寝时间标准差、活动卡路里、BMR 卡路里、平均压力水平、运动次数、运动小时数、运动 METs、运动平均心率。
2. WearableQA_raw.json(结构化源)
结构包含:
description、n_mcqs(4084)、n_unique_users(200)gt_balancing:每个推理组内均匀 A–Jcohort_reference:5 项指标的百分位user_histories:200 名用户的完整记录mcqs:4,084 个问题
mcqs 条目字段:id、user_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。
3. render_raw.py(渲染器)
从结构化源重建 .jsonl。无参数运行时逐字节复现发布的 WearableQA.jsonl(md5 为 82bb783e147db78501d35ffab4a5392f)。
命令示例: bash 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
参数:
| 标志 | 默认值 | 含义 |
|---|---|---|
--data |
WearableQA_raw.json |
结构化源文件 |
--format |
row |
row、col、csv 或 markdown |
--out |
WearableQA.jsonl |
输出路径 |
仅 === SENSOR DATA === 块随格式变化。渲染器仅需 Python 3,无第三方依赖。
输出体积:csv 约 132 MB,row 306 MB,col 330 MB。
五、数据获取方式
数据集文件使用 Git LFS 存储,克隆前需先安装 LFS。
bash git lfs install git clone https://github.com/facebookresearch/WearableQA.git cd WearableQA
已克隆但未使用 LFS 时可执行 git lfs pull。若仅需结构化源文件:
bash 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:
python from datasets import load_dataset
ds = load_dataset("facebook/WearableQA", split="test")
ds[0]["question"] ds[0]["choices"] ds[0]["answer"]
Hub 副本还包含其他三种传感器序列化配置和 structured 配置:
python load_dataset("facebook/WearableQA", "markdown", split="test") load_dataset("facebook/WearableQA", "structured", split="test")
从仓库文件使用:
python import json
with open("WearableQA.jsonl") as f: questions = [json.loads(line) for line in f]
print(len(questions))
q = questions[0] prompt = q["question"] gold = q["answer"]
health = [q for q in questions if q["reasoning_group"] == "health"] cross = [q for q in questions if q["signal"] == "cross"]
评分方式:仅当模型选择的字母与 answer 匹配时记为正确;无解析字母的响应计为错误。
七、许可证附加条款
数据采用 CC BY-NC 4.0 许可,并附加以下条款:
- (i) 禁止重新识别或尝试重新识别;
- (ii) 禁止用于临床、诊断或治疗决策;
- (iii) 禁止以对健康相关结果具有歧视性、有害或误导性的方式使用;
- (iv) 数据集按“原样”提供,不附带任何明示或暗示的保证,仅供研究和基准测试使用。





