CONFLICTBANK
收藏ConflictBank 数据集概述
概览
ConflictBank 是一个全面分析模型行为的基准测试,通过模拟预训练和推理阶段遇到的知识冲突来实现。该基准包含 7,453,853 个声明-证据对和 553,117 个问答对,涵盖三种主要冲突原因:错误信息冲突、时间冲突和语义冲突。
数据加载
可以通过以下代码获取 ConflictBank 数据集:
python from datasets import load_dataset
加载声明-证据对
dataset = load_dataset("Warrieryes/CB_claim_evidence")
加载问答对
dataset = load_dataset("Warrieryes/CB_qa")
数据集构建
步骤1:下载和设置 Wikidata
首先,需要安装 SLING 框架并获取相关数据集:
bash
通过 pip 安装 SLING
pip3 install https://ringgaard.com/data/dist/sling-3.0.0-py3-none-linux_x86_64.whl
下载 SLING KB 和 en wikidata 映射
sling fetch --dataset kb,mapping --overwrite
步骤2:事实提取和冲突声明构建
使用提供的脚本提取事实并构建冲突声明:
bash python3 data_construct.py --qid_names_file "$QID_NAMES_FILE" --kb_file "$KB_FILE" --fact_triples_file "$FACT_TRIPLES_FILE" --templates_file "$TEMPLATES_FILE" --conflict_row_output_file "$CONFLICT_ROW_OUTPUT_FILE" --relation_to_object_output_file "$RELATION_TO_OBJECT_OUTPUT_FILE" --s_r_object_output_file "$S_R_OBJECT_OUTPUT_FILE" --fact_conflict_output_file "$FACT_CONFLICT_OUTPUT_FILE"
步骤3:生成冲突证据
使用预训练模型生成冲突证据,指定要模拟的冲突类型:
bash CONFLICT_TYPE="semantic_conflict" # 选项:correct, fact_conflict, temporal_conflict, semantic_conflict
python3 generate_conflicts.py --model_name "$MODEL_NAME" --file_path "$FILE_PATH" --output_dir "$OUTPUT_DIR" --num_batch "$NUM_BATCH" --conflict_type "$CONFLICT_TYPE"
步骤4:质量控制
最后,运行质量控制脚本以确保数据集的完整性和质量:
bash python quality_control.py --raw_data_dir --nli_model deberta-v3-base-tasksource-nli --embedding_model all-mpnet-base-v2 --classifier_model sbert_conflict_dict.pth --selected_raw_data_path selected_data.json --question_template_path question_templates.json --output_path test_dataset.json --relation_to_object relation_to_object.json --qid_names qid_names.txt --batch_size 32




