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

【NLP】34. 数据专题:如何打造高质量训练数据集

构建大语言模型的秘密武器:如何打造高质量训练数据集?

在大语言模型(LLM)如 GPT、BERT、T5 爆发式发展的背后,我们常常关注模型架构的演化,却忽视了一个更基础也更关键的问题:训练数据从哪里来?这些数据是如何清洗、筛选和标注的?

本篇博客将系统梳理 LLM 数据构建中的核心流程,以 FineWeb 为例,揭示如何打造一个有规模、有质量、无偏见的训练语料,并讨论相关的伦理与公平性问题。


一、构建语料第一步:FineWeb 的六重过滤机制

FineWeb 是一个规模庞大的网页语料资源,在构建过程中非常重视文本质量。其数据过滤流程精细、系统,主要包括以下六个步骤:

1. 可疑来源清理

移除来自恶意站点或不适宜内容(如成人网站)的文本,利用黑名单与子词过滤规则识别这些 URL。

2. 网页正文提取

借助 Trafiliatura 工具,从原始 HTML 页面中提取主内容,去除广告、侧栏和其他噪声。

3. 语言过滤

应用 FastText 对文本进行语言识别,仅保留英语概率高于 0.65 的内容。

4. 内容质量评估

结合已有的规则(如 Gopher、C4)与自定义策略,识别并移除重复句、列表页、结构紊乱的文本。

5. 相似文本去重

利用 MinHash 和 5-gram 技术评估网页相似度,避免模型重复学习相似内容。

6. 隐私信息脱敏

所有文本中出现的电子邮件地址与公网 IP 都被替换为匿名占位符,确保合规与隐私保护。


二、数据过滤规则不是拍脑袋定的,而是实验验证出来的

FineWeb 团队不是凭经验判断哪些文本“好”,而是:

  • 构建多个不同过滤策略组合;
  • 对每组数据训练一个 18 亿参数的语言模型;
  • 在多个下游任务上比较模型表现;
  • 选出性能最好的过滤方案。

这种基于效果反推数据质量的机制,是其成功的核心因素之一。


三、大模型对数据的“贪婪”:更多,更好,还要广

RoBERTa 比 BERT 更强,不是因为结构,而是用了 10 倍的数据。

主流预训练数据涵盖:

  • 维基百科(Wikipedia)
  • 新闻语料(News Crawl)
  • 科研文章(arXiv / PubMed)

尽管这些数据质量高,但规模有限。因此研究者开始使用 Common Crawl 全网爬虫数据,形成如 C4、Dolma、FineWeb 等超大语料库。

论文《Textbooks Are All You Need》甚至主张用高质量教材级语料能训练更好的模型,但代价是人工成本极高。


四、不是所有任务都能从原始文本中学到

LLM 的通用语言建模能力只是基础,任务能力来自有标签的数据,例如:

  • 命名实体识别(NER)
  • 共指消解(Coreference Resolution)
  • 情感分析(Sentiment Analysis)
  • 自然语言推理(NLI)

这类任务需要专业注释数据,而这些数据通常不免费且标注代价高。

例如,官方的欧盟和联合国文件就被广泛用于训练多语言翻译模型,因为它们是结构化且对齐的优质资源。


五、对话案例发复杂性:客服对话数据的复杂性

我们可以看一个实际企业中多轮客服对话的例子:

客户:我上周购买的蓝牙耳机无法连接手机
客服:请问您使用的是什么品牌和型号的手机?
客户:是三星 Galaxy S21
客服:好的,请尝试重启蓝牙并重新配对,如果还有问题,我可以帮您安排更换。

这些对话并不一定顺序清晰:客户可能中途改话题、回复延迟、或在一条信息中提到多个问题。为了将这些内容用于训练对话系统,标注员需要:

  • 把对话拆成“意图段”;
  • 指明哪些内容是回应前文;
  • 给每句话加上意图标签(如“查询产品问题”、“请求换货”)。

这类结构化标注过程通常耗时数百小时,依赖丰富的上下文理解与行业知识。


六、偏见是从数据进来的,不是模型发明的

一个常被忽视的问题是:社会偏见如何通过训练数据悄然进入模型

以共指消解任务为例,如果训练语料中“医生”总是和“他”搭配,而“护士”常常和“她”关联,模型最终就会学到性别刻板印象。

现实中类似的问题还有:

  • 种族名与犯罪率的搭配;
  • 职业与社会阶层的隐性偏好;
  • 城市与贫困、犯罪、污染等语义共现。

如果不加以识别和控制,这些偏见会通过模型进一步放大。


七、我们应该构造什么样的任务?

不是所有任务都适合作为机器学习训练目标。

一个极具争议的案例是:给面部图像打“犯罪倾向”标签。这种做法不仅没有科学依据,还可能助长面部歧视与技术滥用。

因此,在设计数据集与任务时,应考虑:

  • 任务的社会后果
  • 是否可被滥用
  • 是否基于伪科学逻辑

八、衡量数据集质量的六个维度

最后,总结一个好数据集应具备的六个核心特征:

  1. 有效性:模型表现与任务目标一致,能推广到真实应用场景;
  2. 可靠性:不同标注员间的一致性高;
  3. 统计能力:任务有足够样本、包含硬例、能区分模型优劣;
  4. 测试性:能作为长期基准来评估多种模型;
  5. 开放性:具备清晰的许可证或公开渠道;
  6. 公平性:不包含结构性歧视或无意识偏见。

九、结语:没有数据,再强的模型也跑不远

构建语言模型,不只是调模型结构、堆参数数量,更是一个数据工程问题。我们不应只追求“量”,更应注重数据的结构、代表性、公平性和伦理责任

希望这篇文章能为你揭开“数据即模型能力上限”的本质。如果你正从事模型训练,也许你真正该问的是:

我在喂模型吃什么?这些数据真的值得学吗?

相关文章:

【NLP】34. 数据专题:如何打造高质量训练数据集

构建大语言模型的秘密武器:如何打造高质量训练数据集? 在大语言模型(LLM)如 GPT、BERT、T5 爆发式发展的背后,我们常常关注模型架构的演化,却忽视了一个更基础也更关键的问题:训练数据从哪里来…...

Notepad++ 学习(三)使用python插件编写脚本:实现跳转指定标签页(自主研发)

目录 一、先看成果二、安装Python Script插件三、配置Python脚本四、使用脚本跳转标签页方法一:通过菜单运行方法二:设置快捷键(推荐) 五、注意事项六、进阶使用 官网地址: https://notepad-plus-plus.org/Python Scri…...

Stable Diffusion 学习笔记02

模型下载网站: 1,LiblibAI-哩布哩布AI - 中国领先的AI创作平台 2,Civitai: The Home of Open-Source Generative AI 模型的安装: 将下载的sd模型放置在sd1.5的文件内即可,重启客户端可用。 外挂VAE模型&#xff1a…...

python:pymysql概念、基本操作和注入问题讲解

python:pymysql分享目录 一、概念二、数据准备三、安装pymysql四、pymysql使用(一)使用步骤(二)查询操作(三)增(四)改(五)删 五、关于pymysql注入…...

Scala语言基础与函数式编程详解

Scala语言基础与函数式编程详解 本文系统梳理Scala语言基础、函数式编程核心、集合与迭代器、模式匹配、隐式机制、泛型与Spark实战,并对每个重要专业术语进行简明解释,配合实用记忆口诀与典型代码片段,助你高效学习和应用Scala。 目录 Scal…...

类的加载过程详解

类的加载过程详解 Java类的加载过程分为加载(Loading)、链接(Linking) 和 初始化(Initialization) 三个阶段。其中链接又分为验证(Verification)、准备(Preparation&…...

机器学习-人与机器生数据的区分模型测试 - 模型融合与检验

模型融合 # 先用普通Pipeline训练 from sklearn.pipeline import Pipeline#from sklearn2pmml.pipeline import PMMLPipeline train_pipe Pipeline([(scaler, StandardScaler()),(ensemble, VotingClassifier(estimators[(rf, RandomForestClassifier(n_estimators200, max_de…...

机器学习 day03

文章目录 前言一、特征降维1.特征选择2.主成分分析(PCA) 二、KNN算法三、模型的保存与加载 前言 通过今天的学习,我掌握了机器学习中的特征降维的概念以及用法,KNN算法的基本原理及用法,模型的保存和加载 一、特征降维…...

《社交应用动态表情:RN与Flutter实战解码》

React Native依托于JavaScript和React,为动态表情的实现开辟了一条独特的道路。其核心优势在于对原生模块的便捷调用,这为动态表情的展示和交互提供了强大支持。在社交应用中,当用户点击发送动态表情时,React Native能够迅速调用相…...

嵌入式软件--stm32 DAY 6 USART串口通讯(下)

1.寄存器轮询_收发字符串 通过寄存器轮询方式实现了收发单个字节之后,我们趁热打铁,争上游,进阶到字符串。字符串就是多个字符。很明显可以循环收发单个字节实现。 然后就是接收字符串。如果接受单个字符的函数放在while里,它也可…...

问题处理——在ROS2(humble)+Gazebo+rqt下,无法显示仿真无人机的相机图像

文章目录 前言一、问题展示二、解决方法:1.下载对应版本的PX42.下载对应版本的Gazebo3.启动 总结 前言 在ROS2的环境下,进行无人机仿真的过程中,有时需要调取无人机的相机图像信息,但是使用rqt,却发现相机图像无法显示…...

69、微服务保姆教程(十二)容器化与云原生

容器化与云原生 在微服务架构中,容器化和云原生技术是将应用程序部署到生产环境的核心技术。通过容器化技术,可以将应用程序及其依赖项打包成一个容器镜像,确保在任何环境中都能一致运行。而云原生技术则通过自动化的容器编排系统(如 Kubernetes),实现应用的动态扩展、自…...

朱老师,3518e系列,第六季

第一节:概述。 首先是 将 他写好的 rtsp 源码上传,用于分析。 已经拷贝完。 第二节: h264 编码概念。 编解码 可以用cpu, 也可以用 bsp cpu 编解码的效果不好。做控制比较好。 h264 由 VCL, NAL 组成。 NAL 关心的是 压缩…...

ElasticSearch-集群

本篇文章依据ElasticSearch权威指南进行实操和记录 1,空集群 即不包含任何节点的集群 集群大多数分为两类,主节点和数据节点 主节点 职责:主节点负责管理集群的状态,例如分配分片、添加和删除节点、监控节点故障等。它们不直接…...

一文掌握工业相机选型计算

目录 一、基本概念 1.1 物方和像方 1.2 工作距离和视场 1.3 放大倍率 1.4 相机芯片尺寸 二、公式计算 三、实例应用 一、基本概念 1.1 物方和像方 在光学领域,物方(Object Space)是与像方(Image Space)相对的…...

记录心态和工作变化

忙中带闲的工作 其实工作挺忙的, 总是在赶各种功能点. 好巧的是iOS那边因为上架的问题耽搁了一些时间, 从而让Android的进度有了很大的调整空间. 更巧的是后端那边因为对客户端的需求不是很熟悉, 加上Android海外这块的业务他也是第一次接触. 所以需要给他留一些时间把各个环节…...

深入理解 TypeScript 中的 unknown 类型:安全处理未知数据的最佳实践

在 TypeScript 的类型体系中,unknown 是一个极具特色的类型。它与 any 看似相似,却在安全性上有着本质差异。本文将从设计理念、核心特性、使用场景及最佳实践等方面深入剖析 unknown,帮助开发者在处理动态数据时既能保持灵活性,又…...

LabVIEW机械振动信号分析与故障诊断

利用 LabVIEW 开发机械振动信号分析与故障诊断系统,融合小波变换、时频分布、高阶统计量(双谱)等先进信号处理技术,实现对齿轮、发动机等机械部件的非平稳非高斯振动信号的特征提取与故障诊断。系统通过虚拟仪器技术将理论算法转化…...

Helm配置之为特定Deployment配置特定Docker仓库(覆盖全局配置)

文章目录 Helm配置之为特定Deployment配置特定Docker仓库(覆盖全局配置)需求方法1:使用Helm覆盖值方法2: 在Lens中临时修改Deployment配置步骤 1: 创建 Docker Registry Secret步骤 2: 在 Deployment 中引用 Secret参考资料Helm配置之为特定Deployment配置特定Docker仓库(覆…...

【Spring】Spring中的适配器模式

欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 欢迎评论交流,感谢您的阅读😄。 目录 适配器模式Spring MVC的适配器模式 适配器模式 适配器模式(Adapter Pattern&a…...

GO学习指南

GO学习指南 主题一 go语言基础知识讲解 go语言面向对象编程 go语言接口详解 go语言协程 主题二 web基础知识 后续内容请大家持续关注,每月一主题,让各位读者能零基础、零成本学习go语言...

2、ubuntu系统配置OpenSSH | 使用vscode或pycharm远程连接

1、OpenSSH介绍 OpenSSH(Open Secure Shell)是一套基于SSH协议的开源工具,用于在计算机网络中提供安全的加密通信。它被广泛用于远程系统管理、文件传输和网络服务的安全隧道搭建,是保护网络通信免受窃听和攻击的重要工具。 1.1…...

MySQL面试知识点详解

一、MySQL基础架构 1. MySQL逻辑架构 MySQL采用分层架构设计,主要分为: 连接层:处理客户端连接、授权认证等 服务层:包含查询解析、分析、优化、缓存等 引擎层:负责数据存储和提取(InnoDB、MyISAM等&am…...

小白入门:GitHub 远程仓库使用全攻略

一、Git 核心概念 1. 三个工作区域 工作区(Working Directory):实际编辑文件的地方。 暂存区(Staging Area):准备提交的文件集合(使用git add操作)。 本地仓库(Local…...

RPC与SOAP的区别

一.RPC(远程过程调用)和SOAP(简单对象访问协议)均用于实现分布式系统中的远程通信,但两者在设计理念、协议实现及应用场景上存在显著差异。 二.对比 1.设计理念 2.协议规范 3.技术特性 4.典型应用场景 5.总结 三.总结…...

Day11-苍穹外卖(数据统计篇)

前言: 今天写day11的内容,主要讲了四个统计接口的制作。看起来内容较多,其实代码逻辑都是相似的,这里我们过一遍。 今日所学: Apache ECharts营业额统计用户统计订单统计销量排行统计 1. Apache ECharts 1.1 介绍 A…...

Tomcat简述介绍

文章目录 Web服务器Tomcat的作用Tomcat分析目录结构 Web服务器 Web服务器的作用是接收客户端的请求,给客户端作出响应。 知名Java Web服务器 Tomcat(Apache):用来开发学习使用;免费,开源JBoss&#xff0…...

《从零开始:Spring Cloud Eureka 配置与服务注册全流程》​

关于Eureka的学习,主要学习如何搭建Eureka,将order-service和product-service都注册到Eureka。 1.为什么使用Eureka? 我在实现一个查询订单功能时,希望可以根据订单中productId去获取对应商品的详细信息,但是产品服务和订单服…...

如何保证RabbitMQ消息的顺序性?

保证RabbitMQ消息的顺序性是一个常见的需求,尤其是在处理需要严格顺序的消息时。然而,默认情况下,RabbitMQ不保证消息的全局顺序,因为消息可能会通过不同的路径(例如不同的网络连接或线程)到达队列&#xf…...

FPGA学习知识(汇总)

1. wire与reg理解,阻塞与非阻塞 2. 时序取值,时钟触发沿向左看 3. ip核/setup debug 添加 ila 一、ila使用小技巧 二、同步复位、异步复位和异步复位同步释放 设计复位设计,尽量使用 异步复位同步释放;尽管该方法仍然对毛刺敏感…...