news 2026/7/17 14:10:13

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/17 14:09:04

同城实体直播实战指南:3天密训+1V1话术定制,快速引爆店铺流量

# 同城实体直播实战指南:3天密训1V1话术定制,快速引爆店铺流量在数字化浪潮席卷零售业的今天,实体店铺面临的最大挑战已不再是“要不要做直播”,而是“如何高效做直播”。很多店主花大价钱买设备、请主播,结果直播间只…

作者头像 李华
网站建设 2026/7/17 14:08:43

Dism++:全面掌握Windows系统优化与维护的免费专业工具

Dism:全面掌握Windows系统优化与维护的免费专业工具 【免费下载链接】Dism-Multi-language Dism Multi-language Support & BUG Report 项目地址: https://gitcode.com/gh_mirrors/di/Dism-Multi-language Dism是一款基于微软CBS技术构建的免费开源Windo…

作者头像 李华
网站建设 2026/7/17 14:08:10

如何用Gifify快速制作高质量GIF动画:终极完整指南

如何用Gifify快速制作高质量GIF动画:终极完整指南 【免费下载链接】gifify 😻 Convert any video file to an optimized animated GIF. 项目地址: https://gitcode.com/gh_mirrors/gi/gifify 想要将视频片段快速转换为生动有趣的GIF动画吗&#x…

作者头像 李华
网站建设 2026/7/17 14:06:12

WifiBruteCrack的未来发展:功能扩展与社区贡献指南

WifiBruteCrack的未来发展:功能扩展与社区贡献指南 【免费下载链接】WifiBruteCrack Program to attempt to brute force all wifi networks in range of a device, and return a possible set of networks to connect to and the password, 项目地址: https://gi…

作者头像 李华
网站建设 2026/7/17 14:06:04

波形数据处理是功率循环测试(PC测试)中的核心环节,涉及对采集的波形数据(如电压VCE、正向电压VF、温度TC等)进行处理、拟合、滤波和计算,以提取关键参数

波形数据处理是功率循环测试(PC测试)中的核心环节,涉及对采集的波形数据(如电压VCE、正向电压VF、温度TC等)进行处理、拟合、滤波和计算,以提取关键参数(如饱和电压VCE(sat)、结温TVJ、热阻Rth等)。以下是对代码中波形数据处理部分的详细分析,重点讲解ComputeTVJ、Com…

作者头像 李华