赞
踩
大模型预训练需要从海量的文本数据中学习到充分的知识存储在其模型参数中。预训练所用的数据可以分为两类。一类是网页数据(web data),这类数据的获取最为方便,各个数据相关的公司比如百度、谷歌等每天都会爬取大量的网页存储起来。其特点是量级非常大,比如非盈利性机构构建的CommonCrawl数据集是一个海量的、非结构化的、多语言的网页数据集。它包含了超过 8 年的网络爬虫数据集,包含原始网页数据(WARC)、元数据(WAT)和文本提取(WET),包含数百亿网页,数据量级在PB级规模,可从 Amazon S3 上免费获取。第二类称之为专有数据(curated high-quality corpora),为某一个领域、语言、行业的特有数据。比如对话、书籍、代码、技术报告、论文考试等数据。
在OpenAI的GPT3,4模型以及谷歌的PaLM系列模型训练中,大量用到了专有数据,如2TB的高质量书籍数据(Books – 2TB)和社交媒体对话数据(Social media conversations)等。这些专业数据是不对公众开放的,就拿高质量的book书籍数据来说,在网上能直接获取到数据来自The pile中的Book3,量级也才85GB左右,和这些巨头所用数据量级相差数十倍。因此现在有一种普遍观点认为“GPT、PaLM等模型的成功很大程度源自于其他模型难以企及的大量的、高质量的专有数据”。比如LLaMA论文中就提到,自己所用的高质量数据只有177GB所以在MMLU等知识性推理任务上和PaLM相差了十几个点(:如果能给LLaMA更多更好的数据,LLaMA说我还能更强)。
但事实真的如此么?我们是否能仅用web data通过更好的清洗过滤策略就能训练出一个强大的模型呢?来自阿联酋阿布扎比技术创新研究所(TII)的团队就这一问题展开了研究,论文题目为The RefinedWeb Dataset for Falcon LLM: Outperforming Curated Corpora with Web Data, and Web Data Only。下面是论文的解读以及笔者自己的一些思考。
为啥作者要执着证明网页数据好于专有数据呢?作者有以下三大理由:
所有作者认为要想模型训练的大、耗费的人力少就不得不重新将网页数据精细化利用起来。
数据规模
The pile是一个高质量数据集,作者在构建的RefinedWeb数据集上训练模型超过了在The pile数据集上训练的效果
首先需要从CommonCrawl中过滤出我们需要的网站再进行内容提取。
需要特别注意,网页内容仅仅保留正文!URL、导航栏文本、标题、脚注、广告文本等和正文无关的信息要去除干净。作者使用trafilatura[1]库用于从网页中提取正文。
整体Pipeline
使用fastText 语言分类器 CCNet对文档进行分类,这个模型是一个训练好的n-gram模型,根据wikipedia训练的,支持176种语言。可以按照所需比如仅将英文页面拿出来。作者进行了这一步后52%的非英文网页被过滤掉了。
清洗步骤,灰色的每一步中去除页面比例,因为语言不是英语去除了50.66%的页面,因为质量不达标去处了24%的页面,因为重复去掉了12%的页面。
处理结果
作者主要比的是大模型zero-shot泛化能力。
实验结果
不同数据集训练模型的比较
训练多个epoch会降低泛化能力
除过web数据我们还有那些常见的非Web高质量数据呢?
下载链接:https://huggingface.co/datasets/bigcode/the-stack-dedup
下载 URL: https://huggingface.co/bigscience-data
清洗 URL: https://github.com/bigscience-workshop/data-preparation
• the Responsible Open-science Open-collaboration Text Sources (ROOTS)
一个1.6TB的数据集跨越了59种语言(46种自然语言,13种编程语言),用于训练拥有1760亿个参数的BigScience大型公开科学多语言开放访问(BLOOM)语言模型。(BigScience Workshop, 2022) 62%的文本来自社区选择和记录的语言数据源列表,另外38%的文本来自经过预处理的网络爬取数据集OSCAR, 并通过母语人士的帮助进行了过滤
62% 通过社区收集得到 主要包括三个来源:
三部分得到后要做一个融合和去重。后面还接了一些手工的提升方法以提高数据集的质量。
• 38% 从OSCAR 清洗得到
• 去重:采用 simhash 去重,对长文本进行特殊处理
• 去除个人信息
The pile中有,尚未发现大规模开放数据。
The pile中有部分YouTube字幕数据,尚未发现大规模开放数据。
url: https://data.baai.ac.cn/details/WuDaoCorporaText
paper: https://www.sciencedirect.com/science/article/pii/S2666651021000152
完整版:3TB training data and 1.08T trillion Chinese characters,包含有 822 million Web pages
base 版:200G & 72 billion Chinese characters
悟道使用30亿个网页作为原始数据源,并从中提取高文本密度的文本内容。提取的文本包含许多额外的字符,损害内容的完整性和流畅性,例如网页标识符、异常符号和乱码。此外,从某些网页提取的文本内容中存在敏感信息和个人隐私信息,这可能会导致训练模型中出现不良趋势和信息泄露问题。为了解决这些问题,在数据清理过程中,作者开发了一套处理流程,以提高语料库的质量。
以下是数据清理的具体步骤:
目前的问题并不是数据不够了,还是训练速度太慢了,很多大模型只用到了CommonCrawl的一小部分数据。比如 CommonCrawl 有88个快照,每个快照大概能清洗出来200B的中英文高质量语料,则我们可以清洗出大约18TB tokens的高质量数据,如果加上专有数据则可以突破24TB tokens,这几乎是现有最大开源模型LLaMA-65B训练数据1.2TB tokens的20倍。而根据Scaling law,24TB高质量数据可以充分训练1300B的模型,并且所需训练量是目前训练LLaMA-65B的400倍。LLaMA-65B大概是在2000张80G显存N卡上训练了21天,大概耗费400万刀,如果这个规模再扩大400倍则训练一次成本160,000万刀则是任何大厂都难以承受的。并且训练还好,只是一次性成本,后面的推断成本更是现在的机器资源无法承受。
但好在硬件方面Nvidia最近也在放大招,DGX GH200 可以插256个GH200,可以理解为相比原来的DGX A100显存直接扩大了500倍,意味着单层模型可以到更大的DGX Node,模型可以更大了。(Compared to a single NVIDIA DGX A100 320 GB system[2], NVIDIA DGX GH200 provides nearly 500x more memory to the GPU shared memory programming model over NVLink, forming a giant data center-sized GPU. NVIDIA DGX GH200 is the first supercomputer to break the 100-terabyte barrier for memory accessible to GPUs over NVLink.DGX GH200, which can utilize the combined power of 256 GH200 chips to perform as a single GPU, providing 1 exaflop of performance and 144 terabytes of shared memory.)
同时训练速度也扩大了三百倍。This machine gives you 1e18 FLOPs per second vs 单卡A100 FP16下的 312 T Flops(3e15)。
因此可以断定,大规模预训还没有到头,数据&模型只训练了1/20,算力只用了1/400。
但同时随着机器生成的内容越来越多,清洗也会越来越麻烦,因为太多的机器生成的文本需要仔细过滤。
大模型训练的scaling law可以是因为信息在文本中的的分布也呈现指数分布。简单来说就是低频的信息在文本中存在极少,模型需要指数级别训练才能线性级别获取新的有用的信息,线性级别降低loss提升效果。
因为scaling law的存在,模型所需算力=O(C^N),其中N是模型效果(1/测试集loss),C是一个常数。这个效率就太低了,如果能优化到O(N*logN)那么需要的算力会大大降低,效果的上限也更高。
人在获取信息的时候并不需要那么多数据,在看过一张苹果的照片,吃过一个苹果后,我们立刻明白文字中描述的,颜色红,味甘甜是什么意思,而不用阅读数百篇苹果的文字介绍但还是不知其所指。因此笔者认为多模态知识的加入可以降低文本数据的使用,突破Scaling law。
在模型已经表现很好的数据上可以降低训练。过滤和去重也是一个思路,对数据进行精炼后模型的训练效率会大大提高,因为信息密度更高了,突破了信息的scaling law。在数据方面一些比较好的尝试是:
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
保证100%免费
】Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。