当前位置:   article > 正文

【大模型 数据增强】零一万物 Yi 数据处理思路_大模型数据增强

大模型数据增强

 


在这里插入图片描述

论文:https://arxiv.org/abs/2403.04652

代码:https://github.com/01-ai/Yi

模型:https://huggingface.co/01-ai

 

提出背景

易模型系列(Yi model series)在大语言模型(LLM)领域的创新和实践,包括模型设计、数据处理、以及模型能力扩展等方面。

  1. 模型设计与目标

    • 子解法1:选择合适的模型规模(6B和34B)
      • 之所以选择这个规模,是因为需要在消费级硬件上可行的同时,保持复杂推理和新兴能力。
    • 子解法2:增大预训练数据规模到3.1T令牌
      • 之所以增大数据规模,是因为34B模型相比传统70B模型较小,需要补偿计算能力的减少(原文并未提及之前的具体预训练数据规模)。
  2. 数据工程

    • 子解法1:优先考虑数据质量
      • 之所以强调数据质量,是因为高质量的数据对模型性能至关重要,通过精细的数据清洗管道和强化的去重过程保证。
    • 子解法2:精心打磨少量的微调数据
      • 之所以采用这种方法,是因为相比于依赖大量数据的微调,手工打磨少量高质量数据能更好地符合人类偏好。
  3. 模型能力扩展

    • 子解法1:扩展上下文长度至200K
      • 之所以扩展上下文长度,是为了提高模型在处理长上下文信息时的性能。
    • 子解法2:适配视觉-语言任务
      • 之所以进行这项扩展,是因为结合视觉信息能够增强模型的多模态能力。
    • 子解法3:通过继续预训练深化模型
      • 之所以深化模型,是因为通过增加模型的深度可以进一步提升性能。
  4. 基础设施与效率

    • 子解法1:开发跨云弹性任务调度等技术
      • 之所以使用这些技术,是为了有效地支持大规模预训练,提高资源利用率(跨不同的云服务提供商(如Amazon AWS、Microsoft Azure、Google Cloud Platform等)分配和优化任务执行)。
    • 子解法2:利用量化技术优化模型部署
      • 之所以采用量化,是因为它可以在不显著降低性能的前提下,减少模型对硬件的要求,使得模型部署更加经济高效。
  5. 社区影响

    • 子解法1:为研究人员提供性价比高的模型
      • 之所以提供这些模型,是为了支持研究者和开发者构建基于语言模型的AI原生应用,同时保护用户数据隐私。
    • 子解法2:指明数据和模型规模进一步扩展的方向
      • 之所以指出这一点,是因为通过进一步的数据和模型规模扩展,可以实现更强大的前沿模型,促进研究和商业应用的发展。

结果:易模型系列”的开发和实践展示了在大规模语言模型领域,通过精心的数据工程、模型设计和基础设施支持,如何有效提升模型性能和效率,同时对整个AI社区产生积极影响。

预训练阶段的方法

问题: 如何确保大规模语言模型在预训练阶段能够学习到高质量、高多样性的知识,以展现出先进的能力?

解法:

  1. 精细设计的数据处理流程
    • 子解法1: 使用启发式规则过滤器移除低质量文本
      • 之所以使用启发式规则过滤器,是因为需要从庞大的网页文档中快速有效地筛选出高质量数据,比如通过URL、域名、特殊符号比例等条件过滤。

假设我们正在构建一个新闻聚合网站,需要从互联网上收集大量的新闻文章。

首先,我们会遇到的问题是如何快速识别并移除低质量的文本,比如广告、垃圾信息或者是复制粘贴的内容。

这时,启发式规则过滤器就派上用场了。

如果一篇文章的URL来自于已知的低质量内容发布网站,我们可以直接过滤掉这些来源的所有内容。

文章如果包含过高比例的特殊符号或短行,很可能是格式混乱、质量低下的文本,通过设定特定的阈值,可以自动识别并排除这类内容。

对于那些包含大量重复段落或短语的文章,也可以视为低质量内容进行过滤。

  • 子解法2: 使用学习型过滤器处理细微复杂的情况
    • 之所以使用学习型过滤器,是因为传统的启发式规则在处理如色情、赌博等不适当内容时效果不佳,需要更智能的方法以提升过滤质量。

尽管启发式规则很有用,但它们可能无法处理一些更复杂的情况,比如文本中隐含的不当内容或质量难以通过简单规则定义的文本。

这时,我们可以利用机器学习模型来识别这些细微而复杂的情况。

我们可以训练一个分类器,来识别那些类似于维基百科这样高质量网站的文章。

这种分类器可以基于文章的结构、用词、主题等特征进行训练。

使用文本的一致性打分模型来评估文章是否流畅、逻辑连贯。

如果文章被判断为由随机句子或段落拼凑而成,那么可以认为它是低质量的。

构建一个安全评分器,专门识别含有毒性内容(比如暴力、色情等)的文章,确保这类内容不会被收录。

  • 子解法3: 通过聚类基于过滤增强语义多样性
    • 之所以采用聚类方法,是为了更有效地识别并分析具有相似语义特征的文档,从而优化数据集的质量和多样性。

聚类是一种无监督学习方法,可以帮助我们理解和组织数据中的自然分组,进而增强数据的语义多样性。

我们可以对收集到的所有新闻文章进行语义聚类,将相似主题或内容的文章分为一组。

这有助于我们发现过度集中的主题或缺乏代表性的领域。

通过分析每个聚类的质量标签,我们可以优化新闻源的选择,比如发现某个聚类中的文章普遍质量不高,则可以针对性地调整或排除这类来源。

  • 子解法4: 实施全面的去重过程
    • 之所以进行去重,是为了消除数据集中的重复内容,保证学习的信息密度和多样性。

详情请猛击:MinHash-LSH 哈希模糊去重:如何解决医学大模型的大规模数据去重?

  1. 令牌化方法

    • 子解法: 使用字节对编码(BPE)进行令牌化
      • 之所以选择BPE,是因为它平衡了计算效率和单词理解能力,同时通过特殊处理数字和罕见字符来增强模型的容错性和数据理解。
  2. 模型架构调整

    • 子解法1: 引入分组查询注意力机制(GQA)
      • 之所以采用GQA,是为了在减少训练和推理成本的同时,保持或提升模型性能。
    • 子解法2: 使用SwiGLU作为激活函数,并调整其大小
      • 之所以选择SwiGLU并进行调整,是为了补偿GQA带来的参数减少,保持模型参数总量与现有模型相当。
    • 子解法3: 采用旋转位置嵌入(RoPE)并调整基频
      • 之所以这样做,是为了支持长上下文窗口,这表明模型具有处理超出预训练长度依赖性的内在能力,通过继续预训练和轻量级微调来激发这一能力。

通过高质量、高多样性的数据处理,以及模型架构的细微调整,来确保模型能够学习到丰富而深入的知识,展现出高级的能力。

整个过程,如同做饭:

  • 精细设计的食材准备过程: 启发式规则筛选高质量食材、学习型过滤器对食材进行精细处理、聚类搭配多样化的食材、去重避免使用相同的食材
  • 采用适当的烹饪技术: 平衡计算效率和词汇覆盖率、通过将罕见字符和数字分解成更小的单元,提高容错性和数据理解、更灵活地处理新词或罕见词汇、减少模型需要学习的唯一词汇数量提效
  • 调味料的创新: 创新的调味方法(引入分组查询注意力机制(GQA))、调整调味料的比例(SwiGLU作为激活函数并调整其大小一样)、考虑菜品的呈现方式(旋转位置嵌入)

数据清洗流程:
在这里插入图片描述
用于提高数据质量的多级数据清洗管道:

  • 数据收集:从网页收集原始数据。
  • 语言过滤:筛选特定语言的内容。
  • 困惑度过滤(Perplexity Filtering):移除那些文本困惑度高的文档,困惑度通常与文本的不可预测性或复杂性有关。
  • 启发式规则校正:包括基于URL、域名和词汇的黑名单过滤。
  • 文本度量过滤:基于文档长度、特殊符号比例和重复性内容的过滤。
  • 重复性文档移除:移除包含重复单词、短语或段落的文档。
  • 文档质量过滤:确保文档质量,通过高级过滤器进一步提纯数据。
  • 段落去重:移除文档中重复的段落。
  • MinHash去重:使用MinHash算法识别并去除相似的文档。
  • 精确去重:精确匹配文档中完全相同的内容进行去重。
  • 主题过滤:基于文档主题进行过滤,可能包括新闻、广告、知识内容等类别。
  • 安全过滤:移除包含有害内容的文档,例如暴力、色情和政治宣传。
  • 语义过滤:根据文档的语义特征进行进一步的过滤,以提升数据的质量和多样性。

数据构成:

在这里插入图片描述

  • 数据由3.1T(T表示令牌)高质量令牌组成,涵盖英语和中文。
  • 数据来源多样化,包括网页、代码、书籍、论文和百科全书等。
  • 与LLaMA和Falcon这类现有数据组合相比,易模型数据因双语特性和更严格的清洗流程,具有更高的质量。

模型配置:

在这里插入图片描述

表1提供了6B和34B两种模型的主要配置参数:

  • 隐藏层大小(Hidden Size)、查询头(Q-heads)、键值对头(KV-heads)数量、层数(Layers)、预训练序列长度(Pretrain Seq. Len)和最大学习率(Max LR)。
  • 这些参数对模型的学习能力、记忆容量和性能有重要影响。

 


微调方法

微调的数据不在多,在精。

一般,我们就是采用垂类领域的开源数据集,他们不是,是自己手动标注的,精心构造。

数据在构造过程中,采用WizardLM中的方法获取难度较高提示的数据集,采用LIMA中回复风格(总-分-总)对生成回复内容格式化,采用“Step-Back”模式对维链数据格式化。

  • WizardLM 请猛击:【大模型 数据增强】Evol-Instruct 应用:扩充大模型数据多样性
  • 总-分-总:首先简要概述回答的主要点(总结),然后详细解释每个点(分项),最后再次总结全部内容
  • Step-Back:先“倒退一步”,考虑一个更广泛的视角或更高层次的概念,然后再回到具体问题上来。鼓励模型先抽象思考,然后再解决具体的细节问题
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/376116
推荐阅读
相关标签
  

闽ICP备14008679号