Wanfq/Explore_Instruct_Brainstorming_16k
收藏数据集概述
概述
Explore-Instruct 是一种增强特定领域指令覆盖率的新方法。该方法假设领域空间本质上类似于树状结构,借鉴经典搜索算法的精髓并结合大型语言模型(LLMs)的能力,主动遍历领域空间并生成指令调优数据,无需预定义的树结构。具体操作包括:
- Lookahead:深入探索多个潜在的细粒度子任务,从而绘制出复杂的任务网络。
- Backtracking:寻找替代分支以扩大搜索边界,从而扩展领域范围。
数据发布
Explore-Instruct 数据集在 brainstorming、rewriting 和 math 领域发布于 🤗 Huggingface Datasets。每个领域包含两个版本的数据集:基础版本和扩展版本。基础版本包含 10k 指令调优数据,扩展版本分别为 16k、32k 和 64k 指令调优数据。每个数据集是 JSON 格式的结构化文件,包含以下字段:
instruction:描述模型应执行的任务。input:任务的上下文或输入(可选)。output:任务和输入文本的地面真实输出文本。
数据生成过程
生成领域特定指令调优数据的步骤如下:
领域空间探索
bash python3 generate_instruction.py --action extend --save_dir ./en_data/demo_domain --out_dir ./en_data/demo_domain_exploration --lang en --domain demo_domain --extend_nums <TASK_NUMBER_DEPTH_0>,...,<TASK_NUMBER_DEPTH_MAX_DEPTH-1> --max_depth <MAX_DEPTH> --assistant_name <ASSISTANT_NAME>
指令调优数据生成
bash python3 generate_instruction.py --action enrich --save_dir ./en_data/demo_domain_exploration --out_dir ./en_data/demo_domain_generation --lang en --domain demo_domain --enrich_nums <DATA_NUMBER_DEPTH_0>,...,<DATA_NUMBER_DEPTH_MAX_DEPTH> --enrich_batch_size <BATCH_SIZE> --assistant_name <ASSISTANT_NAME>
任务修剪
bash python3 generate_instruction.py --action prune --save_dir ./en_data/demo_domain_generation --out_dir ./en_data/demo_domain_pruning --lang en --domain demo_domain --pruned_file ./en_data/demo_domain_pruning/pruned_subtasks_name.json --prune_threshold <PRUNE_THRESHOLD> --assistant_name <ASSISTANT_NAME>
数据过滤
bash python3 generate_instruction.py --action filter --save_dir ./en_data/demo_domain_pruning --out_dir ./en_data/demo_domain_filtering --lang en --domain demo_domain --pruned_file ./en_data/demo_domain_pruning/pruned_subtasks_name.json --filter_threshold <FILTER_THRESHOLD> --assistant_name <ASSISTANT_NAME>
数据采样
bash python3 generate_instruction.py --action sample --save_dir ./en_data/demo_domain_filtering --out_dir ./en_data/demo_domain_sampling --lang en --domain demo_domain --pruned_file ./en_data/demo_domain_filtering/pruned_subtasks_name.json --sample_example_num <SAMPLE_EXAMPLES_NUM> --sample_max_depth <SAMPLE_MAX_DEPTH> --sample_use_pruned --assistant_name <ASSISTANT_NAME>
模型发布
Explore-LM 模型在 brainstorming、rewriting 和 math 领域发布于 🤗 Huggingface Models。每个领域包含两个版本的模型:基础版本和扩展版本,分别使用相应版本的数据集进行训练。
评估
评估数据集和指标如下:
- Brainstorming 和 Rewriting:使用 BELLE 翻译测试集中的相应类别进行自动和人工评估。
- Math:从 MATH 测试集中随机选择 500 个问题进行准确率评估。
自动评估命令如下:
Brainstorming 和 Rewriting 领域
bash
1. 推理
python3 ./eval/generate.py --model_id <MODEL_ID> --model_path <MODEL_PATH> --question_file ./eval/question/en_eval_set.jsonl --answer_file ./eval/answer/<MODEL_ID>.jsonl --num_gpus 8 --num_beams 1 --temperature 0.7 --max_new_tokens 512 --prompt_type alpaca --do_sample
2. 评估
python3 ./eval/chatgpt_score.py --baseline_file ./eval/answer/<MODEL_1>.jsonl --answer_file ./eval/answer/<MODEL_2>.jsonl --review_file ./eval/review/<MODEL_1>cp<MODEL_2>_<DOMAIN>.jsonl --prompt_file ./eval/prompt/en_review_prompt_compare.jsonl --target_classes <DOMAIN> --batch_size <BATCH_SIZE> --review_model "gpt-3.5-turbo-0301"
Math 领域
bash
1. 推理
python3 ./eval/generate.py --model_id <MODEL_ID> --model_path <MODEL_PATH> --question_file ./eval/question/MATH_eval_set_sample.jsonl --answer_file ./eval/answer/<MODEL_ID>.jsonl --num_gpus 8 --num_beams 10 --temperature 1.0 --max_new_tokens 512 --prompt_type alpaca
2. 评估
python3 ./eval/auto_eval.py --question_file ./eval/question/MATH_eval_set_sample.jsonl --answer_file ./eval/answer/<MODEL_ID>.jsonl
限制
Explore-Instruct 仍在开发中,需要大量改进。我们的工作主要集中在增强领域特定指令覆盖率,未涉及生成复杂和挑战性指令或减轻有毒和有害指令等其他方面。未来的工作需要在这些领域探索我们方法的潜力。
许可证
Explore-Instruct 仅用于研究目的,数据集采用 CC BY NC 4.0 许可证(仅允许非商业使用),使用该数据集训练的模型不应用于研究以外的目的。Explore-LM 模型的权重也采用 CC BY NC 4.0 许可证(仅允许非商业使用)。
引用
如果此工作与您的研究或应用相关,请随意引用我们的工作: bibtex @misc{wan2023explore, title={Explore-Instruct: Enhancing Domain-Specific Instruction Coverage through Active Exploration}, author={Fanqi, Wan and Xinting, Huang and Tao, Yang and Xiaojun, Quan and Wei, Bi and Shuming, Shi}, year={2023}, eprint={2310.09168}, archivePrefix={arXiv}, primaryClass={cs.CL} }



