Dialogue OPE 数据集获取与构建指南:AirDialogue 合成 / 自玩 / 人类评估及 Convai2 数据全流程

发布时间:2026/9/20 23:23:32
Dialogue OPE 数据集获取与构建指南:AirDialogue 合成 / 自玩 / 人类评估及 Convai2 数据全流程 人工智能深度学习NLP计算机视觉强化学习【免费下载链接】google-researchGoogle Research项目地址https://gitcode.com/gh_mirrors/go/google-research点击查看免费下载本指南基于 dialogue_ope/airdialogue_ope/data/README.md系统讲解对话离线策略评估Offline Policy Evaluation, OPE研究所用的四类数据集——AirDialogue 合成数据、神经自玩Neural Selfplay数据、人类评估Human Eval数据与 Convai2 人类评估数据的获取方式既支持从零生成原始数据也支持直接下载预处理好的成品数据。读完本文你将掌握每条数据流水线的脚本调用关系、产出目录结构与数据格式并能将其与后续 OPE 模型训练main.py与各实验脚本正确衔接。一、数据体系总览四类 OPE 数据集与两种获取路线dialogue_ope项目用于评估对话策略的离线价值其训练数据统一存放在 data 目录下。根据对话参与双方身份的不同数据集分为四类数据集参与者构成产出目录获取方式AirDialogue 合成数据Synthetic规则 Agent vs 规则 Customersyn_opedata/自行生成 或 下载预处理版AirDialogue 神经自玩数据Neural SelfplayTransformer Agent vs Transformer Customerselfplay_opedata/下载脚本AirDialogue 人类评估数据Human EvalTransformer Agent vs Humanhuman_opedata/下载脚本Convai2 人类评估数据NN Agent vs Humanconvai2/opedata/下载脚本从获取路径上看合成数据提供了自己造与直接下两条路线下文第二、三节其余三类则统一通过 GCS 下载脚本获取。所有脚本均位于 data 目录下载类脚本在文件头明确标注了Internal Use Download Data from GCS——即依赖gcloud storage命令行工具与相应的存储桶访问权限这是使用下载路线的前置条件。二、AirDialogue 合成数据Option 1 自行生成如果希望完全掌控数据生成过程例如调整对话样本数量、验证生成器行为可以按以下三步在本地构建合成数据。步骤 1安装 AirDialogue 工具包合成数据生成依赖 AirDialogue 工具包提供的三个核心能力知识库分词tokenize_kb、奖励计算compute_reward与动作序列化action_obj_to_str。工具包的具体安装方式参见 AirDialogue 官方仓库说明安装完成后需保证airdialogue命令与 Python 库均可被当前环境调用。步骤 2下载原始 AirDialogue 数据在 data 目录下执行sh download_air.sh该脚本download_air.sh做了三件事通过wget从https://storage.googleapis.com/airdialogue/airdialogue_data.tar.gz下载原始数据包解压并把airdialogue_data/airdialogue/*移动到./data/airdialogue/json/把airdialogue_data/resources/*移动到./data/resources/清理临时文件后退出脚本顶部set -e保证任一步出错即终止避免产生残缺目录。最终在orig/下得到规整的原始数据目录作为下一步模拟的输入。步骤 3模拟生成 OPE 样本并转换为训练格式cd orig airdialogue sim_ope --output_dir ../syn_opedata/orig/syn_ope_data_500 --num_samples 500 --verbose sh make_syn_opedata.shairdialogue sim_ope是工具包自带的 OPE 模拟命令以规则 Agent 与规则 Customer 对弈的方式生成指定数量--num_samples 500的参考轨迹 目标策略轨迹样本输出到../syn_opedata/orig/syn_ope_data_500/--verbose会在终端打印模拟进度便于确认生成过程正常随后执行的sh make_syn_opedata.shmake_syn_opedata.sh负责把原始样本整理为 OPE 训练可读的成品格式详见第三节。注意若想生成其他规模的合成数据可调整--output_dir与--num_samples但需与make_syn_opedata.sh内置的规模列表保持一致见下文。三、合成数据转换流水线make_syn_opedata.sh 与 make_data_syn.py 深度解析3.1 多规模批处理逻辑make_syn_opedata.sh 内置了五种规模10、50、100、500、5K。对每一种规模size脚本执行如下流程以syn_opedata/orig/syn_ope_data_$size为原始目录对应上一步sim_ope的输出以syn_opedata/syn_ope_data_$size为目标目录遍历原始目录下的每个子目录每个子目录对应一个候选目标策略模型在子目录内将分片文件合并为全集cat data_ref_*.json data_all.json、cat kb_ref_*.json kb_all.json并用wc -l打印合并后的行数调用python make_data_syn.py --ref_file ... --ref_kb ... --output_dir ...完成格式转换。3.2 样本级转换逻辑make_data_syn.py 是合成数据转换的核心实现其输入为合并后的data_all.json参考轨迹与kb_all.json知识库输出为每个子目录下统一的data.json。关键步骤包括奖励回填逐行读取参考轨迹与知识库若样本中缺失reward字段则调用compute_reward(action, expected_action, kb)实时计算并累计打印平均参考奖励avg ref reward轨迹规整对每条对话做三处规范化——若首行不是customer:开头则补齐若末行是customer:结尾则裁掉随后断言customer agent agent_tgt三类行数之和等于总行数且总行数能被 3 整除三元组拆解每 3 行构成一个回合turn按固定间隔拆出三个列表ref_customer_response第 0、3、6…行参考 Customer 回复ref_agent_response第 1、4、7…行参考 Agent 回复gen_agent_response第 2、5、8…行目标策略生成的 Agent 回复即需要被评估的策略行为成品输出在output_dir下以 JSON Lines 格式写出data.json每行一个完整样本。该data.json即 OPE 模型的直接输入评估的目标就是让模型学会仅凭离线轨迹含gen_agent_response与奖励估计目标策略的价值而不需要在线交互。四、AirDialogue 合成数据Option 2 下载预处理成品若跳过生成环节直接使用已预处理好的合成数据在 data 目录下执行sh download_syn_opedata.shdownload_syn_opedata.sh 的行为如下创建syn_opedata/目录用gcloud storage cp gs://airdialogue_share/syn_opedata.tar.gz ./从 GCS 拉取压缩包解压后删除压缩包最后再次调用sh make_syn_opedata.sh做一次标准化整理。也就是说即使走下载路线脚本仍会复用第三节的转换流水线确保目录结构与自行生成的结果完全一致。需要提醒的是该脚本依赖gcloud工具及对airdialogue_share存储桶的访问权限脚本注释明确标注为内部使用场景。五、AirDialogue 神经自玩数据Neural Selfplay神经自玩数据由 Transformer 架构的 Agent 与 Customer 通过自我对弈self-play产生用于评估神经网络策略 vs 神经网络策略场景下的离线价值估计。sh download_selfplay_opedata.shdownload_selfplay_opedata.sh 的处理要点从gs://airdialogue_share/air_selfchat_ope_data.tar.gz下载自玩 OPE 数据包解压后把selfchat_ope_data重命名为orig/遍历orig/下每个模型子目录以目录名作为model_name这就是该数据对应的目标策略名例如tgt_L1一类表示不同强度/风格的 Transformer 策略先删除原始自玩日志$model_name.jsonl再把子目录内其余*.jsonl拼接为opedata/$model_name/data.json并打印行数作为质量核对。产出结构selfplay_opedata/opedata/model_name/data.json与合成数据的syn_opedata/syn_ope_data_500/model/data.json保持同构方便同一套训练入口无缝切换数据源。六、AirDialogue 人类评估数据Human Eval人类评估数据记录的是 Transformer Agent 与真人交互Human Eval的对话日志用于评估神经网络策略 vs 人类场景。sh download_human_opedata.shdownload_human_opedata.sh 与自玩脚本结构一致下载air_human_ope_data.tar.gz→ 解压重命名为orig/→ 按模型子目录把*.jsonl拼接为human_opedata/opedata/model_name/data.json。同样以目录名标识目标模型便于后续按模型逐个评估。需要说明的是此类日志来源于 airdialogue_model_transformer/README.md 中描述的 Command Line Human Evaluation 流程——通过selfplay.py --tgt human与真人半自动对话、再由generate_ope_data.py --eval-dir outputs/human_eval/等命令产出 OPE 日志最终打包上传至 GCS 供本脚本分发。七、Convai2 人类评估数据Convai2对话式 AI 挑战数据集上的人类评估数据单独存放在 convai2 子目录用于评估 NN Agent 与人类在开放域闲聊场景中的交互表现cd convai2 sh download_convai2_opedata.shdownload_convai2_opedata.sh 流程与上述脚本类似从gs://airdialogue_share/convai2_opedata.tar.gz下载 → 解压并把cleaned_logs重命名为orig/→ 按模型子目录拼接为opedata/model_name/data.json。此外convai2 目录还提供了三个配套工具脚本方便在评估前后做数据分析与实验配置stats.py对下载后的对话数据进行统计model_configs.py定义各目标模型对应的配置eval.py执行具体的评估计算。同时该目录还包含download_convai2_opedata_small.sh、download_convai2_opedata_half.sh、download_convai2_opedata_hard.sh等变体脚本以及download_raw.sh拉取原始日志可按实验规模与难度需求选用。八、数据集与 OPE 训练入口的衔接数据准备完成后如何被 OPE 模型消费以合成数据为例script/syn_air_ope.sh 展示了完整的衔接方式PROJECT_ROOT$(dirname $(readlink -f $0))/.. DATAsyn_ope_data_500/tgt_L1 DATA_ROOT$PROJECT_ROOT/data/syn_opedata/$DATA/ TASK_NAMEsyn_air_ope关键点DATA即OPE 数据文件夹中的子文件夹名通常对应目标模型名README 原文亦如此定义——比如syn_ope_data_500/tgt_L1就是第五节make_syn_opedata.sh产出目录下名为tgt_L1的模型子目录DATA_ROOT通过$PROJECT_ROOT/data/syn_opedata/$DATA/拼出完整数据路径最终以--data_dir $DATA_ROOT传给训练脚本脚本随后调用 main.py后者在 main.py 中用HfArgumentParser解析模型参数ModelArguments、数据参数AirOPETrainingArguments其中data_dir指明数据目录与训练参数三组配置并通过 utils.py 中的AirOPEDataset加载data.json、airope_data_collator完成批处理支持标量奖励与字典奖励两种形态最终由AirOPETrainer执行训练。同理自玩、人类评估与 Convai2 数据分别对应 script/selfplay_air_ope.sh、script/human_air_ope.sh 与 script/convai2_ope.sh只需把DATA换成各自opedata/下的模型目录名即可。若需批量跑多个模型可使用 keepruning_syn.py、keepruning_selfplay.py、keepruning_human.py、keepruning_convai2.py 逐个执行实验。九、实践建议与注意事项优先下载预处理数据除非需要自定义样本数量或研究数据生成本身否则建议直接走各download_*_opedata.sh脚本省去工具包安装、sim_ope模拟与转换三个环节但请先确认本机已安装gcloud且具备airdialogue_share存储桶读取权限自行生成时保持规模一致make_syn_opedata.sh只认10/50/100/500/5K五种规模目录名自定义--num_samples后需确保sim_ope的输出目录名落入该集合否则不会被转换奖励字段合成数据转换时若样本自带reward则保留原值否则由compute_reward实时计算训练前可通过脚本打印的平均奖励快速排查数据异常目录命名即模型标识四类数据流水线都以子目录名承载目标模型身份训练脚本的DATA参数与之严格对应新增数据时保持一模型一子目录的组织方式即可无缝接入现有训练流程。赞分享人工智能深度学习NLP计算机视觉强化学习【免费下载链接】google-researchGoogle Research项目地址https://gitcode.com/gh_mirrors/go/google-research点击查看免费下载相关推荐AirDialogue 端到端 Transformer 对话模型安装、训练、评估与 OPE 数据生成实战指南AirDialogue 端到端 Transformer 对话模型安装、训练、评估与 OPE 数据生成实战指南 导读 本文以 dialogue_ope/aird人工智能深度学习NLP计算机视觉强化学习多模态数据集构建实战从数据采集到质量评估的全流程指南多模态数据集构建实战从数据采集到质量评估的全流程指南 引言突破多模态数据困境 你是否在多模态项目中遭遇过这些挑战医学影像数据集标注成本高达数千美元/例跨知识库多模态人工智能Open-Assistant 数据集工程实践SODA Synthetic Dialogue 合成对话数据集的构建、加载与训练接入指南Open Assistant 数据集工程实践SODA Synthetic Dialogue 合成对话数据集的构建、加载与训练接入指南 SODA Synth人工智能大模型强化学习微调数据标注后端前端上一篇Prometheus Operator监控共享金属加工设备设备状态与生产效率下一篇终极Laravel日志查看器如何快速优雅地管理你的应用日志创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询