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

数据质量-如何构建高质量的大模型数据集

一、TL;DR

  1. 重要性:数据质量 > 数据数量
  2. 数据质量提升原则提升数据多样性和分布和提升数据质量和高质量数据数量
  3. 具体如何提升:针对传统NN任务、LLM任务和MLLMs任务,方法和侧重点不一样
  4. 如何使用这些方法将这些方法做成算子写入pipeline框架进行大规模使用
  5. 做完这些还缺什么:数据飞轮+数据合成

二、总体原则

数据重要性维度:数据质量 > 数据数量

数据质量维度,我觉得阿里的data-juicer总结的很好,如下所示:

  1. 提升数据多样性和分布
  2. 提升数据质量和高质量数据数量

总体来说,阿里采用了一些启发式的规则以算子的形式通过ray部署进入数据pipeline,将源源不断的各类数据通过这些算子进行去重和过滤,得到最终的数据集。

三、如何提升数据质量

不同的任务对数据质量的提升方法不一样,如下所示。

3.1 detection/seg/classification等传统NN任务

  1. 传统的NN任务可以使用active learning/coreset挑选/数据蒸馏的方式来做,基本可以做到30%的数据达到90%以上的性能,比如我之前的博客:
    1. https://blog.csdn.net/lovep1/article/details/146779443
    2. 核心集:DeepCore: A Comprehensive Library for CoresetSelection in Deep Learning-CSDN博客

3.2 LLM等大语言模型相关的任务

可以使IFD/MoDs/困惑度等LLM相关质量指标进行NLP数据过滤,GPT3使用未开源的过滤手段可以将40T的数据压缩至400G,压缩率98%,LIMA可以只使用1000条数据训练,具体的方法可以参考我之前的博客

  1. https://blog.csdn.net/lovep1/article/details/147032636

    3.3 MLLMs等多模态任务

    可以使用启发式规则+清洗的方式进行过滤,可以参考我之前的博客:

    1. https://blog.csdn.net/lovep1/category_12871625.html
    2. 数据质量-MetaCLIP:DEMYSTIFYING CLIP DATA-CSDN博客

    四、如何提升数据多样性

    数据多样性一般从数据用途、数据形式和数据语义三个方面进行处理。核心目的:挑选出最具备diversity的分布:

    4.1 数据用途(我的理解)

    4.1.1 不同领域

    大模型预训练或者sft时不同领域进行混合得到的数据,相当于不同的下游任务的场景,可以参考我之前的博客:InternVL2.5:Expanding Performance Boundaries of Open-SourceMultimodal Models 论文理解-CSDN博客

    4.1.2 相同领域/相同模态

    对同类型或者同模态的数据从各种细节上要求多样性,比如同一种语言代表不同的语义、同一种语言不同的翻译等:

    1. 以视频模态为例,对地域、语言等做出多样性要求

    4.2 数据形式

    这边主要是指prompt和对应的answer的形式:

    1. prompt表达方式的多样性:同一个语义在不同的场景和上下文中回答
    2. prompt的难度:对prompt的难度进行把控,使得在同一语义空间的prompt变得足够的差异化和多样性,比如Wizard方法
    3. prompt/answer的长度:既要保留长数据,也要保留短数据,所谓的长数据还需要将各种重点信息隐藏在长句子中
    4. answer的分布多样性:answer需要足够的diversity

    4.3 数据语义

    数据语义其实在MLLMs中是存在的比较多的,我的理解是通过图像/视频语义的分布来进行数据的筛选,如下所示:

    数据质量-SemDeDup: Data-efficient learning at web-scale through semantic deduplication_semdedup去重-CSDN博客

    五、如何使用这些方法呢

    我们可以将上述的方法和规则做成算子写到data-juicer等框架里面,做成数据filter的pipeline,这样就可以大规模的将网上的爬虫数据、公开数据、领域数据进行蒸馏和压缩,从而获得高质量数据。

    http://www.xdnf.cn/news/14578.html

    相关文章:

  1. Understanding Human Hands in Contact at Internet Scale
  2. Python基于Flask的医疗问句中的实体识别算法的研究(附源码,文档说明)
  3. 【Dify系列】【Dify 核心功能】【应用类型】【五】【工作流】
  4. C++ new知识点详解
  5. 调和级数 敛散性
  6. 一些杂想20250615
  7. SAP顾问职位汇总(第24周)
  8. 【Lean4编程入门】 Lean 4 中的 `inductive` 类型定义注解例子解析
  9. 电商数据采集的技术分享
  10. 【Bug:docker】--docker的wsl版本问题
  11. 人工智能-准确率(Precision)、召回率(Recall) 和 F1 分数
  12. 1、Java基础语法通关:从变量盒子到运算符魔法
  13. NGINX Google Performance Tools 模块`ngx_google_perftools_module`
  14. Mkdocs 阅读时间统计插件
  15. 【第四十周】眼动追踪基础
  16. 【C/C++】内核开发之进程调度大纲
  17. Claude Code 是什么?
  18. 【论文解读】LLaMA-Berry: 将“refine”当作动作解决数学推理
  19. 域与对象的生命周期
  20. Python文件与目录操作管理详解
  21. 装饰模式Decorator Pattern
  22. 阿里开源的MaskSearch:教AI学会“自己找答案”的魔法书
  23. GO语言---panic和recover关键字
  24. SpringAI+DeepSeek大模型应用开发——6基于MongDB持久化对话
  25. 内存一致性模型
  26. 人工智能学习31-开发框架
  27. 【技术实战】工业级设备健康管理系统搭建全栈指南:从数据采集到预测性维护
  28. C++与C如何相互调用
  29. 盟接之桥EDI软件:开启制造业数据对接与协同的新纪元
  30. Requests源码分析01:运行tests