LM-BFF数据集准备15个NLP任务数据下载与预处理完全指南【免费下载链接】LM-BFF[ACL 2021] LM-BFF: Better Few-shot Fine-tuning of Language Models https://arxiv.org/abs/2012.15723项目地址: https://gitcode.com/gh_mirrors/lm/LM-BFFLM-BFFBetter Few-shot Fine-tuning of Language Models是ACL 2021年提出的少样本微调方法能够高效处理各类NLP任务。本文将详细介绍如何为LM-BFF项目准备15个主流NLP任务的数据集包括数据下载、预处理和格式转换的完整流程帮助新手快速上手少样本学习实验。1. 环境准备与项目克隆在开始数据集准备前需先完成基础环境配置和项目克隆# 克隆项目仓库 git clone https://gitcode.com/gh_mirrors/lm/LM-BFF cd LM-BFF # 安装依赖 pip install -r requirements.txt项目核心数据集处理工具位于tools/目录其中tools/generate_k_shot_data.py是少样本数据生成的关键脚本支持自动划分训练集、验证集和测试集。2. 支持的15个NLP任务清单LM-BFF支持15个主流NLP任务涵盖情感分析、自然语言推理、问答等多个领域情感分析SST-2、sst-5、mr、cr、mpqa、subj自然语言推理MNLI、SNLI、RTE、WNLI语义相似度STS-B问答与匹配QNLI、QQP、MRPC语法判断CoLA这些任务数据可通过tools/generate_k_shot_data.py自动处理脚本中已预设各任务的数据格式解析逻辑第10-36行。3. 数据集下载指南3.1 GLUE基准数据集获取GLUE任务如MNLI、SST-2等需从官方渠道下载# 创建数据目录 mkdir -p data/original # 下载GLUE数据需手动同意许可协议 python tools/download_glue_data.py --data_dir data/original --tasks all提示部分GLUE任务如WNLI测试集未公开脚本将自动使用开发集作为测试集第124行。3.2 其他任务数据集准备非GLUE任务如mr、cr等可通过以下方式获取访问论文附录获取数据来源将下载的CSV文件按任务名称组织到data/original目录data/original/ ├── mr/ │ ├── train.csv │ └── test.csv ├── cr/ │ ├── train.csv │ └── test.csv ...4. 少样本数据集生成使用tools/generate_k_shot_data.py脚本将原始数据转换为少样本格式4.1 基础用法# 生成16-shot数据集默认配置 python tools/generate_k_shot_data.py \ --data_dir data/original \ --output_dir data \ --k 16 \ --seed 424.2 关键参数说明--k每个类别采样的训练样本数默认16--seed随机种子默认提供5个种子100,13,21,42,87--mode输出模式k-shot标准划分或k-shot-10x10倍验证集--task指定任务默认处理全部15个任务4.3 输出目录结构生成的数据集将按以下结构组织data/k-shot/ ├── SST-2/ │ ├── 16-42/ # k16, seed42 │ │ ├── train.tsv │ │ ├── dev.tsv │ │ └── test.tsv ├── mr/ │ ├── 16-42/ │ │ ├── train.csv │ │ ├── dev.csv │ │ └── test.csv ...5. 数据预处理核心逻辑LM-BFF的数据预处理主要包含以下步骤对应tools/generate_k_shot_data.py关键函数5.1 数据加载load_datasets函数支持TSVGLUE任务和CSV其他任务格式自动识别任务类型并读取对应文件第41-63行返回包含train/dev/test分割的数据集字典5.2 标签处理get_label函数针对不同任务提取标签第9-36行特殊处理STS-B任务将连续值转为二分类第30行兼容GLUE风格和自定义任务的标签格式5.3 平衡采样按标签类别均衡采样k个样本第137-144行支持生成验证集默认k1个样本10x模式为k10保持数据分布一致性避免类别不平衡图LM-BFF的少样本微调框架展示了从预训练到基于提示的微调过程c部分为本文涉及的少样本数据使用场景6. 常见问题解决6.1 数据格式错误症状运行脚本时出现ValueError: Unknown GLUE task解决检查任务名称拼写区分大小写如SST-2而非SST2确认数据文件放置在正确的任务目录下参考tools/generate_k_shot_data.py第10行支持的任务列表6.2 样本数量不足症状某些类别样本数少于k解决减少--k参数值建议最小k1使用--mode k-shot-10x减少验证集比例检查原始数据是否完整6.3 中文数据支持LM-BFF默认支持英文任务如需处理中文数据修改tools/generate_k_shot_data.py的标签解析逻辑调整src/dataset.py中的数据加载器使用中文预训练模型如bert-base-chinese7. 数据集使用示例准备好数据集后可通过以下命令启动少样本训练python run.py \ --task SST-2 \ --k 16 \ --seed 42 \ --data_dir data/k-shot/SST-2/16-42 \ --output_dir results/SST-2/16-42总结本文详细介绍了LM-BFF项目的15个NLP任务数据集准备流程包括环境配置、数据下载、少样本生成和预处理逻辑。通过tools/generate_k_shot_data.py工具用户可以快速构建标准化的少样本数据集为后续的模型微调奠定基础。建议结合项目提供的示例代码和论文原文深入理解少样本学习的实现细节。【免费下载链接】LM-BFF[ACL 2021] LM-BFF: Better Few-shot Fine-tuning of Language Models https://arxiv.org/abs/2012.15723项目地址: https://gitcode.com/gh_mirrors/lm/LM-BFF创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考