DataLearner logoDataLearnerAI
Latest AI Insights
Model Evaluations
Model Directory
Model Comparison
Resource Center
Tools

加载中...

DataLearner logoDataLearner AI

A knowledge platform focused on LLM benchmarking, datasets, and practical instruction with continuously updated capability maps.

产品

  • Leaderboards
  • 模型对比
  • Datasets

资源

  • Tutorials
  • Editorial
  • Tool directory

关于

  • 关于我们
  • 隐私政策
  • 数据收集方法
  • 联系我们

© 2026 DataLearner AI. DataLearner curates industry data and case studies so researchers, enterprises, and developers can rely on trustworthy intelligence.

隐私政策服务条款
  1. Home/
  2. Blog List/
  3. Blog Detail

大语言模型训练之前,数据集的处理步骤包含哪些?以LLaMA模型的数据处理pipeline(CCNet)为例

2023/04/24 22:50:02
5,127 views
大语言模型数据处理

大语言模型的训练是一个十分复杂的技术,不仅涉及到模型的开发与部署,还涉及到数据的获取。与常规的算法模型不同的是,大语言模型通常需要大量的数据处理步骤。本文是根据英国一位自动工程师总结的大语言模型训练之前的数据处理步骤和决策过程。

该总结主要来源MetaAI发布的LLaMA模型的论文。同时,也会增加我自己做的一些说明。LLaMA是MetaAI开源的大语言模型,也是近期发布的很多模型的基础模型。CCNet是LLaMA模型使用的数据处理pipeline。关于LLaMA模型在DataLearner官方的模型信息卡参考:https://www.datalearner.com/ai-models/pretrained-models/LLaMA

  • 一、数据爬取和保存
  • 二、数据去重(Deduplication)
  • 三、文本语言识别与过滤
  • 四、质量过滤
  • 五、进一步过滤
  • 六、总结

一、数据爬取和保存

大语言模型的训练需要大量的数据,为了获取更多的数据训练,当前大语言模型的训练都以无标注的数据为主。以LLaMA为例,它们获取的数据如下:

数据集名称样本比例Epochs占用的硬盘空间
CommonCrawl67.0%1.103.3TB
C415.0%1.06783GB
Github4.50%0.64328GB
Wikipedia4.50%2.4583GB
Books4.50%2.2385GB
arXiv2.50%1.0692GB
StackExchange2.0%1.0378GB

大部分数据都是从互联网上爬取的数据。但是需要注意的是,这些数据并不是纯文本存储的,通常使用WARC、WAT和WET格式的数据存储。

WARC,WAT和WET是三种与Web数据相关的文件格式:

  • WARC(Web ARChive):它是一种用于存储和传输Web资源(例如HTML页面,图像和视频文件等)的文件格式。 WARC文件通常包含HTTP响应和元数据,用于记录Web爬虫收集的信息。
  • WAT(Web Archive Transformation):它是一种元数据文件格式,用于描述WARC文件中记录的Web内容。 WAT文件通常包含URL,域名和其他有关记录的元数据信息。
  • WET(Web Extraction Toolkit):它是一种将HTML页面转换为文本格式的文件格式。 WET文件通常包含从HTML页面中提取的文本内容,但不包括图像和其他资源。

这些文件格式通常用于Web挖掘和数据分析,以及与Web相关的研究和开发项目。LLaMA的模型使用的是WET格式的数据。

二、数据去重(Deduplication)

在前面获取的数据中,以Common Crawl为例,每个CC快照的文本大小约300T,而一个WET格式的快照大小约30T。MetaAI人员用CCNet将这些快照进行分片(sharding),将原来的数据分成5G一个分片。然后对每个数据做预处理:如小写化所有数据、数字变成占位符等,然后计算每个段落的hash,再去重。

可以看到,这样操作之后,可以有效地并行处理数据,提高处理速度,也能降低数据量。

三、文本语言识别与过滤

大语言模型训练的一个很重要的方面是关于多语言的支持,很多模型因为数据质量和效果,都只保留一种语言的能力,如英语。而即使支持多语言的模型,也并不是所有的数据都同样处理。

在这个步骤中,MetaAI的主要处理方式是识别语言,然后对不同语言的数据计算分数,最后根据分数确定是否保留某些语言。在pipeline中执行此操作的顺序可能会影响语言识别的质量。CCNet使用使用n-gram特征的fastText分类器。

四、质量过滤

大语言模型的训练成本很高,因此,在训练之前对数据的选择也十分重要。在前面的步骤中,CCNet已经对不同语言的数据质量做了初步的识别和过滤。但是,并不够。因此,在这里,研究人员继续使用一部分数据来训练一个小的简单的模型,测试数据质量。

在CCNet中,他们建议使用维基百科在目标语言上训练一个简单的语言模型,然后计算每段的困惑度(perplexity),并使用困惑度分布的来对它们进行分段。

五、进一步过滤

最后一步没有包括在CCNet中,但在LLaMA论文中提到了,就是训练一个线性模型来将维基百科中用作参考的页面与随机抽样的页面进行分类,并且丢弃未被分类为参考的页面。

我理解这个步骤主要的目的是为了确定页面的质量。如果这个页面无法被认为是可以作为维基百科引用的,说明页面本身质量可能比较差,所以可以进一步丢弃,提高数据的质量,降低训练成本。

六、总结

以上就是Christian S. Perone从MetaAI论文中总结的大语言模型训练过程中数据的处理步骤。可以看到,大部分的工作都是为了提高数据质量进行的。因为LLM的训练依赖的是大量的无标注数据,如果数据输入问题比较多,也会影响模型的质量。因此,这些步骤应该可以给大家其实,我们本身也是可以根据这些内容思考,做更多的事情~~~

原文发表自Christian S. Perone的推特:https://twitter.com/tarantulae/status/1650170087708454913

DataLearner WeChat

Follow DataLearner WeChat for the latest AI updates

DataLearner 官方微信二维码
Back to Blog List

Related Blogs

  • 阿里巴巴开源第二代大语言模型Qwen2系列,最高参数规模700亿,评测结果位列开源模型第一,超过了Meta开源的Llama3-70B!
  • 让大模型支持更长的上下文的方法哪个更好?训练支持更长上下文的模型还是基于检索增强?
  • 大模型如何使用长上下文信息?斯坦福大学最新论文证明,你需要将重要的信息放在输入的开始或者结尾处!
  • 文本理解与代码补全都很强!Salesforce开源支持8K上下文输入的大语言模型XGen-7B!
  • 一张图总结大语言模型的技术分类、现状和开源情况
  • 国产开源中文大语言模型再添重磅玩家:清华大学NLP实验室发布开源可商用大语言模型CPM-Bee
  • tokens危机到来该怎么办?新加坡国立大学最新研究:为什么当前的大语言模型的训练都只有1次epoch?多次epochs的大模型训练是否有必要?
  • Falcon-40B:截止目前最强大的开源大语言模型,超越MetaAI的LLaMA-65B的开源大语言模型

Hot Blogs

  • 1Dirichlet Distribution(狄利克雷分布)与Dirichlet Process(狄利克雷过程)
  • 2回归模型中的交互项简介(Interactions in Regression)
  • 3贝塔分布(Beta Distribution)简介及其应用
  • 4矩母函数简介(Moment-generating function)
  • 5普通最小二乘法(Ordinary Least Squares,OLS)的详细推导过程
  • 6使用R语言进行K-means聚类并分析结果
  • 7深度学习技巧之Early Stopping(早停法)
  • 8手把手教你本地部署清华大学的ChatGLM-6B模型——Windows+6GB显卡本地部署