当前位置: 首页 > news >正文

LM-BFF数据集准备:15个NLP任务数据下载与预处理完全指南

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-BFF

LM-BFF(Better 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等)可通过以下方式获取:

  1. 访问论文附录获取数据来源
  2. 将下载的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 42

4.2 关键参数说明

  • --k:每个类别采样的训练样本数(默认16)
  • --seed:随机种子(默认提供5个种子:100,13,21,42,87)
  • --mode:输出模式,k-shot(标准划分)或k-shot-10x(10倍验证集)
  • --task:指定任务(默认处理全部15个任务)

4.3 输出目录结构

生成的数据集将按以下结构组织:

data/k-shot/ ├── SST-2/ │ ├── 16-42/ # k=16, seed=42 │ │ ├── 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函数)

  • 支持TSV(GLUE任务)和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参数值(建议最小k=1)
  • 使用--mode k-shot-10x减少验证集比例
  • 检查原始数据是否完整

6.3 中文数据支持

LM-BFF默认支持英文任务,如需处理中文数据:

  1. 修改tools/generate_k_shot_data.py的标签解析逻辑
  2. 调整src/dataset.py中的数据加载器
  3. 使用中文预训练模型(如bert-base-chinese)

7. 数据集使用示例

准备好数据集后,可通过以下命令启动少样本训练:

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),仅供参考

http://www.cnnetsun.cn/news/3456715.html

相关文章:

  • 同城实体直播实战指南:3天密训+1V1话术定制,快速引爆店铺流量
  • Dism++:全面掌握Windows系统优化与维护的免费专业工具
  • Flow-Guided Feature Aggregation与SeqNMS结合:进一步提升视频目标检测精度的方法 [特殊字符]
  • 如何用Gifify快速制作高质量GIF动画:终极完整指南
  • WifiBruteCrack的未来发展:功能扩展与社区贡献指南
  • 波形数据处理是功率循环测试(PC测试)中的核心环节,涉及对采集的波形数据(如电压VCE、正向电压VF、温度TC等)进行处理、拟合、滤波和计算,以提取关键参数
  • 如何免费解锁Wand专业版:开源工具终极使用指南
  • SKILL.md 瘦身指南:372 行压到 287 行的十一个压缩技术实战拆解
  • 猫抓插件终极指南:三步掌握浏览器资源嗅探技巧
  • 幻兽帕鲁存档深度解析:解锁游戏数据编辑的工程化方案
  • Microsoft Entra ID 通行密钥规模化落地与短信 / 语音 MFA 淘汰转型研究
  • 为什么你的Cursor生成的Model总缺外键约束?资深架构师拆解SQL AST反向推导的2个关键断点
  • 3个理由告诉你为什么《怪物猎人:世界》玩家都在用HunterPie游戏数据覆盖插件
  • 终极免费解锁Wand专业版:3步实现无限游戏体验的完整指南
  • 5分钟快速入门:如何使用gl-rs加载OpenGL函数指针
  • openEuler阿语门户API设计:RESTful接口与TypeScript类型安全实践终极指南
  • 计算机毕业设计之jsp学生选课网站的设计与实现
  • 从入门到精通:NeoVintageous让Sublime Text秒变Vim编辑器 [特殊字符]
  • 小说下载器:200+网站智能解析,轻松保存你的数字阅读资产
  • CANN/Ascend C内存管理API文档
  • 从入门到精通:CPDS容器故障检测系统Web界面操作全攻略
  • Unity WebGL中使用jslib调用js代码
  • Applio语音转换实战:5个步骤创建高质量AI声线
  • 如何通过提示词工程优化Claude对话表达多样性
  • 终极指南:如何在Windows 10上完美解决PL-2303旧芯片驱动兼容性问题
  • 【Gemini音频功能深度解禁】:绕过官方文档盲区,解锁未公开的speaker diarization增强API与私有化部署密钥
  • 现在不学ComfyUI工作流,3个月内将被淘汰?2024最紧缺的AIGC工程能力清单
  • json_model深度教程:从基础配置到高级元数据定制
  • AI系统全栈架构深度解析:从芯片到框架的技术全景图
  • Arachni终极指南:构建企业级Web应用安全扫描框架的完整方案