Search-R1要求训练数据采用JSON Lines(.jsonl)格式,分为问答数据和语料库两类:
1. 问答数据规范:
每行需包含以下字段:{
"data_source": "web",
"prompt": [{"role": "user", "content": "问题"}],
"ability": "fact-reasoning",
"reward_model": {"style": "rule", "ground_truth": "答案"},
"extra_info": {"split": "train", "index": 1}
}
2. 语料库要求:
用于本地检索的语料需包含id
和contents
字段:{"id": "0", "contents": "文本内容"}
数据处理建议:
- 参考项目中的
nq_search.py
脚本处理NQ数据集 - 使用
build_index.sh
为本地语料创建FAISS索引 - 对于多轮对话任务,需在prompt中维护完整的对话历史
本答案来源于文章《Search-R1:强化学习训练大模型搜索与推理的工具》