从2022年下半年,大模型和AIGC这两个词变得极其火热,而GPU的市场也是一卡难求。对于这种迷乱和火热,让我想起了当年的比特币挖矿和IPFS。似乎世界一年一个新风口,比特币、元宇宙、NFT、AIGC,金钱永不眠,IT炒作永不停歇。
每一个新的风口出现,总有两拨势力在冲突,保守派不断探索业务的真实价值,通过价值投资试图证明这又是一个新的庞氏骗局;另一波则是来势汹汹,集结一切可团结的力量,证明新时代已经来临。对于这一个个的风口,AIGC和大模型似乎与前几年的风口不一样,让我们看到了一丝真正的未来科技,在这篇文章,我会结合我自己的理解(不一定精准,只求给大家同步我的所思所想)给大家同步我对大模型&AIGC的看法,以及从存储的视角思索,在大模型时代存储的趋势。
大模型和AIGC到底指的什么
AIGC:继专业生产内容(PGC,professional-generated content)、用户生产内容(UGC,User-generated content)之后的新型内容创作方式,主要是基于生成对抗网络GAN、大型预训练模型等人工智能技术,自动生成图像、视频、文本 、音频等作品。
AIGC的炒作来自于2022年9月,太空歌剧院获得美国科罗拉多州举办艺术博览会一等奖,熟悉的套路,熟悉的配方,是不是跟NFT炒作一模一样(据佳士得拍卖行官方报道,数码艺术家Beeple的NFT作品《每一天:前5000天》以约合人民币4.51亿元的高价成交,刷新了数码艺术拍品的最高成交价等纪录。)。
AIGC与以前的不同在于,在AI领域有ANI弱人工智能(Artificial Narrow Intelligence)、AGI强人工智能(Artificial General Intelligence)、ASI超人工智能(Super Artificial Intelligence),大模型的出现,让人兴奋的是看到了AGI的希望,而不是所谓的生成一句话或者问答机器人或者AI作画;因为Ai初步具备了理解和创造的能力,为了将这种能力通俗的展示给业界和投资界,大家才轰轰烈烈的创造了各种AIGC的应用。
2021年8月份,李飞飞和100多位学者联名发表一份200多页的研究报告《On the Opportunities and Risk of Foundation Models》,在文章中,AI专家将大模型统一命名为Foundation Models,可以翻译为基础模型或者是基石模型,论文肯定了Foundation Models对智能体基本认知能力的推动作用,同时也指出大模型呈现出「涌现」与「同质化」的特性。人工智能-》机器学习-》深度学习-》大模型这条演进之路反映了我们人工智能的发展历史。
从人工智能到机器学习,将计算解耦交给了机器;从机器学习到深度学习,我们把函数架构同质化到了神经网络,只需要提取模型特征;从深度学习到基础模型,我们连特征也放弃了,世界的知识模型走了同质化,相应的也获取了泛化能力。
而涌现能力则是另一个在生物学和自然领域常见的能力,在大模型领域也出现了对应的特征。比如说,上下文学习(In-Context Learning)、思维链(Chain of Thought,CoT)等,基于现有仅有的几个大模型架构来说,业界认知:>100B 出现涌现能力
最近几年大语言模型(LLM) 获得了越来越多的关注,其中最知名的当属 GPT-3[6] 模型。GPT-3 模型展现了一些大模型才具备的突现能力(就是模型规模必须得增大到一定程度才会显现的能力,比如至少百亿级),其中一项能力就是上下文学习(In-Context Learning)。该能力简单来说就是,对于一个预训练好的大语言模型,迁移到新任务上的时候,只需要给模型输入几个示例(示例输入和示例输出对),模型就能为新输入生成正确输出而不需要对模型做 fine-tuning。
上下文学习(In-Context Learning)
CoT本质上是一种特殊的few shot prompt,就是说对于某个复杂的比如推理问题,用户把一步一步的推导过程写出来,并提供给大语言模型(如下图蓝色文字内容所示),这样大语言模型就能做一些相对复杂的推理任务。
思维链(Chain of Thought,CoT)
大模型产业链的一些理解
大模型不仅仅改变了AI研发模式,也对整个AI的商业链条做了重构,以前每个公司根据自己的业务都会发展自己的模型,公安的人脸识别、淘宝的推荐系统、字节的内容推荐等等,但是在大模型出现后,业界出现了分化:
1、基础层(模型服务)
基础层为采用预训练大模型搭建的基础设施。由于开发预训练大模型技术门槛高、投入成本高,因此,该层主要由少数头部企业或研发机构主导。如谷歌、微软、Meta、OpenAI、DeepMind、Stability.ai等。基础层的产品形态主要包括两种:一种为通过受控的api接口收取调用费;另一种为基于基础设施开发专业的软件平台收取费用。
2、中间层(2B)
该层与基础层的最主要区别在于,中间层不具备开发大模型的能力,但是可基于开源大模型等开源技术进行改进、抽取或模型二次开发。该层为在大模型的基础上开发的场景化、垂直化、定制化的应用模型或工具。在AIGC的应用场景中基于大模型抽取出个性化、定制化的应用模型或工具满足行业需求。如基于开源的Stable Diffusion大模型所开发的二次元风格图像生成器,满足特定行业场景需求。中间层的产品形态、商业模式与基础层保持一致,分别为接口调用费与平台软件费。
3、应用层(2C)
应用层主要基于基础层与中间层开发,面向C端的场景化工具或软件产品。应用层更加关注用户的需求,将AIGC技术切实融入用户需求,实现不同形态、不同功能的产品落地。可以通过网页、小程序、群聊、app等不同的载体呈现。
以数据流的视角看,大模型的业务研发和业务流程也发生了不同的变化:
大模型的主要技术门槛
回顾ChatGPT的发展历程,我们可以总结出大语言模型(LLM)取得惊艳效果的要点(重要性从高到低排序):
• 愿意烧钱,且接受“烧钱 != 好模型”的现实
• 高质量的训练语料
• 高效的分布式训练框架和充沛优质的硬件资源
• 算法的迭代创新
大模型的训练痛点分析
大模型的技术门槛很高,但是从IT的视角来看,还是因为模型太大带来了不可解决的一些问题。以GPT-3训练为例,我们可以看到,训练过程中基础模型的加载和存储GPT3模型训练内存需求= 参数+梯度+优化器+其他 >2800GB >> 80GB(A100显存大小)。大概需要35张A100卡才能完整加载模型训练过程中的数据,还不包括其他的冗余等信息。
因此,大模型的训练从原来的单卡演进到了多机多卡,多机多卡必然带来资源利用率的下降,GPT-3的计算资源利用率至于大概21.3%。所以这几年大家努力的方向主要是如何提升资源利用率。片上内存(on-chip memory)、芯片间互连的带宽(英伟达的NVlink)、多机多卡的调度是主要的努力方向。
其中片上内存(on-chip memory)、芯片间互连的带宽(英伟达的NVlink)主要是GPU厂商提供的,作为云基础设施厂商主要努力只能发力集群的多机多卡调度。
大部分的大模型训练都走向了并行化,业界几种经典的分布式并行范式,包括流水线并行(Pipeline Parallelism),数据并行(Data Parallelism)和张量并行(Tensor Parallesim)。
在并行训练中,主要要解决如下的问题:
• 大模型内存墙:以GPT3为例,模型参数+梯度参数+优化器需要内存2.8TB(175B参数)
• 训练效率:多机并行训练情况下,训练效率下降;单个模型的训练时长可控
• 训练稳定性:训练时长较长,经常出现硬件错误或者网络错误;收敛失败,遇到bug
解决的方式是融合了网络、并行框架、存储。我们重点关注存储的需求
大模型训练的数据流以及IO瓶颈
先介绍几个训练相关的概念:单个epoch的阶段:全量样本训练一次, shuffle、读 batch、存checkpoint等。
整个训练数据流如下:
• 1,数据打散:遍历样本数据,进行文件的shuffle
• 2,数据加载:海量小文件元数据操作(ImageNet 1~100KB,蚂蚁 500KB,文件数量1100亿),定长的文件数据读取(128K256K)
• 3,Checkpoint存储(原子操作):顺序大 I/O写(模型checkpoint),单个GPU状态checkpoint(单卡一路大块顺序写),时间敏感(30S~5分钟)
根据一些统计的结果,可以发现很多训练的样本集面临的情况是,样本数量非常大,但样本的平均大小又很小。以 ImageNet 数据集为例,整个数据集包含几百万(ImageNet 1K)、上千万(ImageNet 22k)的图片,平均一个图片大小仅为一百多 KB。这个大小对存储系统来说是非常小的。训练存储的IO特征主要是海量小文件管理及元数据高QPS
总结来说:
• 1,小IO时延敏感、元数据QPS密集(大量小文件读)
• 2,线程固定(硬件相关),单流性能对带宽影响较大
• 3,高QPS(定长读取,QPS放大)
• 4,预取友好(定长读取,全量单次读LRU缓存无效)
我们以估算值估计一下,OSS读取512KB数据通常30~80ms,Nas读取512K 20ms。在一个32核CPU的机器,加载一个100W的文件时,以32个线程执行reader。对于深度学习训练任务,在模型计算前,一般会对数据集做shuffle,打乱数据之间的顺序,让数据随机化,这样可以避免过拟合。数据的shuffle使得一个任务多个epoch间乱序访问数据,造成传统基于LRU替换策略的缓存方式失效。需要 下载+decode+标准化都完成后才会下载下一个文件。低时延、高QPS能力的文件存储是AI训练场景的优选。
存储数据流在云上云下的区别
在传统的架构里,大容量的冷数据存储和高性能存储是分别维护的,对于 AI 训练的部分,数据的存储、生产、消费都发生在高性能存储中,自成体系,只有转冷的数据才会考虑转移到大容量存储中去。比例较小的反向数据流转(从大容量存储到高性能存储)通过工具来解决。
但到了数据湖里,数据湖存储才是最全量、最权威的数据来源,大部分情况下,数据的第一个落脚点是数据湖,然后才会到高性能的加速层。在存算分离架构中,加速层本身都只是临时的存在,其中的数据生命周期和计算资源同步,略早于计算资源的创建而生成,计算资源销毁时同步删除。这就导致数据湖到加速层的数据同步成为一个高频、核心的需求,需要花大力气解决。
传统AI架构
• 高性能存储和大容量存储分离部署和维护
• 所有训练数据在高性能存储中清洗、训练、试用数据转冷后流转到冷存储(手动&工具)
云AI架构
• 数据入湖后第一时间进入对象存储(数据湖存储底座)
• 数据训练过程需要从对象存储加载需要的数据(自动化)
• 部分厂商推荐客户使用手动加载(跳板机映射或者开源主机缓存软件)
阿里云的独特差异化能力是什么?并行文件系统或分布式Cache自动加载数据湖对象存储,也就是我们的CPFS数据流动功能。
• 当CPFS Fileset与OSS Bucket创建数据流动后,CPFS文件系统会自动同步OSS Bucket中的对象元数据。同步完成后您能通过高性能且POSIX兼容的文件接口快速地处理OSS中的数据。同时,CPFS文件系统支持通过CPFS控制台或OpenAPI将数据导出至OSS Bucket。
• 按需加载:CPFS文件系统与OSS Bucket建立数据流动后,当您访问CPFS目录或文件时会按需从OSS上加载需要的元数据或数据。例如,执行ls命令列出与OSS Bucket链接的目录时,会按需从OSS加载目录项的元数据,在访问文件时会按需从OSS加载文件的数据块。
• 数据的导入与导出:您可以创建数据流动任务实现CPFS与OSS之间的数据导入和导出,以便在计算任务开始前将数据同步至高性能的CPFS文件系统上。CPFS支持目录树的整体导入和导出,也支持按照文件列表的导入和导出。用户任务结束后,可通过任务报告检查任务的执行情况。
• 元数据自动更新:配置当OSS的数据发生变化后,CPFS可通过OSS的数据修改事件监控到元数据变化,并自动将修改后的文件元数据同步到CPFS上。这样可确保CPFS与OSS上的数据保持最终一致,从而节省运维开销。
AIGC的推理场景优化
传统推理
GPT-175B 模型约有 1750 亿参数,以半精度(FP16)格式计算,总计至少占 320GB(计算 1024 的倍数)的存储空间,所以需要至少 5 个 A100 GPU,且在推理时,每个 GPU 都起码需要有 80GB 的内存。
大多数的实际推理部署会进行相关的模型精简,业界常见的优化方向包括量化、减枝、蒸馏等。
在经典的AIGC场景,推理业务对于基础平台的关键需求从读取变成了启动。
- 高吞吐: 通过启上千个POD,并行对不同需求进行计算,单个POD的模型在10~100GB,一般需要数秒钟启动。对源存储下载带宽需求在100Gbps左右,性能密度达2Gbps/TiB
- 高弹性:访问请求是由用户触发,日常任务具有随机性(峰值1~100K POD),对于killer app推理开销远大于训练。
- Posix兼容性:大部分仿真软件均采用posix协议并发访问原始数据集
- 数据缓存:推理阶段加载数据全部为模型数据,缓存价值大
如果是多模态场景,可能会有一些存储性能的需求。
在该场景,核心瓶颈是小文件大量写入和删除(mkdir、rmdir、create、remove):建议使用CPFS类文件存储。
构建AI应用的变化
构建 AI 应用远不只是调用模型 API,还有很多问题需要解决:
- 大模型只有“脑子”没有“手臂”,无法在外部世界行动:搜索网页、调用 API 还是查找数据库,这些能力都无法被 大模型的 API 提供;
- 它的“脑子”也不完美,OpenAI 的训练数据截止至 2021 年,并且没有任何企业和个人的私有数据,这让模型只能根据自己的“记忆”回答问题,并且经常给出与事实相悖的答案(幻觉)。一个解决方法是在 Prompt 中将知识告诉模型,但是这往往受限于 token 数量,在 GPT-4 之前一般是 4000 个字的限制。
- 私域的知识如何使用,意大利数据保护局Garante以涉嫌违反隐私规则为由,暂时禁止了ChatGPT。自三星电子允许部分半导体业务员工使用ChatGPT开始,短短20天有三起机密资料外泄事件。
- 黑盒大模型无法更新知识和修改,大模型本身对外是一个黑盒的模型,无法对部分数据进行修改或者删除,如果需要更新知识和修改大模型的知识需要重新训练,成本巨大。
当前最需要解决的是如何将大模型应用到各行各业的私域知识,这个需求带火了向量数据库这个领域,一夜之间所有的数据库都变成了向量数据库(优势熟悉的配方)。
Step 1——语料库准备:
将与行业相关的大量知识或语料上传至向量数据库,储存为向量化文本;
Step 2 ——问题输入:
输入的问题被Embedding引擎变成带有向量的提问;
Step 3 ——向量搜索:
向量化问题进入提前准备好的向量数据库中,通过向量搜索引擎计算向量相似度,匹配出Top N条语义最相关的Facts(向量数据库是模糊匹配,输出的是概率上最近似的答案)
Step 4 ——Prompt优化:
输出的Top N条Facts,和用户的问题一起作为prompt输入给模型。
Step 5、结果返回:
有记忆交互下得到的生成内容更精准且缓解了幻觉问题。
有记忆交互:当模型需要记忆大量的聊天记录或行业知识库时,可将其储存在向量数据库中,后续在提问时将问题向量化,送入向量数据库中匹配相似的语料作为prompt,向量数据库通过提供记忆能力使prompt更精简和精准,从而使返回结果更精准。
大模型的向量数据库市场
时间回转到今年的Q1季度,2023.3.21,NVIDIA创始人兼CEO黄仁勋在2023 GPU技术大会(2023 GTC)上发表演讲。并表示今年将推出新的向量数据库:RAFT。RAFT在此基础上,还具有加速索引、数据加载和近邻检索等功能。
黄仁勋认为:“对于自研大型语言模型的组织而言,向量数据库至关重要。”他总结:“初创公司竞相构建具有颠覆性的产品和商业模式,而老牌公司则在寻求应对之法——生成式AI引发了全球企业制定AI战略的紧迫感。”
目前Zilliz在全球拥有超过 1000 家企业用户,成为目前全球最流行的开源向量数据库。2022 年,Zilliz 累计超过 1.03 亿美金的 B 轮融资,估值达到 6 亿美金。也被官宣是 NVIDIA 的向量存储的官方合作伙伴。
紧接着,OpenAI ChatGPT plugins 发布的官方文章中,Milvus 和 Zilliz Cloud 同时作为首批插件合作伙伴被提及成为唯一一家开源项目与商业化云产品同时入选的向量数据库公司。
而在近一个月之内,向量数据库迎来了融资潮。Qdrant 、Chroma 和 Weaviate 纷纷获得融资;而 Pinecone 也正式官宣了新的 1 亿美金 B 轮融资,估值达到了 7.5 亿美元。
从langchain的推荐可以看出,现在这个市场还是一个诸侯混战,百花齐放的市场,到底该把赌注押宝到哪个生态才是重中之重。
再回头看中国区这个大市场,基础模型一定是以云厂商提供,或者少量大模型云下私有化部署,如何适配其实显而易见:配套自己的云上大模型,其次,适配一些国家科研机构的大模型线下输出。
AIGC的监管与合规
2023年7月10日,国家互联网信息办公室起草了《生成式人工智能服务管理暂行办法》,这意味着国家已经在密切关注 AIGC 的发展,在合法合规的前提下,支持 AIGC 的商用及健康发展。多部门联合发文,意味着AIGC的监管和合规面临一个新的阶段。
在《暂行办法》中,有13条规定是面向 AIGC 平台的,因 AI 的特性,让 AIGC 在处理安全风险方面有着更大的挑战:
阿里云存储产品提供了内容安全和数据处理的相关功能,主要是云厂商的一键接入。但是如何解读新规,实践新规,还需要逐步的探索。
大模型训练的数据来源
大模型的基础是大量的数据以及算力,下面是一些典型大模型的训练数据集大小(以 GB 为单位)。
大模型的训练数据源
数据主要包含:
- 维基百科 维基百科是一个免费的多语言协作在线百科全书,由超过 300,000 名志愿者组成的社区编写和维护。截至 2022 年 4 月,英文版维基百科中有超过 640 万篇文章,包含超 40 亿个词[5]。一般来说,重点研究实验室会首先选取它的纯英文过滤版作为数据集。
- 书籍 故事型书籍由小说和非小说两大类组成,主要用于训练模型的故事讲述能力和反应能力,数据集包括 Project Gutenberg 和 Smashwords (Toronto BookCorpus/BookCorpus) 等。
- 杂志期刊 预印本和已发表期刊中的论文为数据集提供了坚实而严谨的基础,因为学术写作通常来说更有条理、理性和细致。这类数据集包括 ArXiv 和美国国家卫生研究院等。
- Reddit 链接 WebText 是一个大型数据集,它的数据是从社交媒体平台 Reddit 所有出站链接网络中爬取的,每个链接至少有三个赞,代表了流行内容的风向标,对输出优质链接和后续文本数据具有指导作用。
- Common Crawl
- Common Crawl 是 2008 年至今的一个网站抓取的大型数据集,数据包含原始网页、元数据和文本提取,它的文本来自不同语言、不同领域。重点研究实验室一般会首先选取它的纯英文过滤版(C4)作为数据集。
- 其他数据集不同于上述类别,这类数据集由 GitHub 等代码数据集、StackExchange 等对话论坛和视频字幕数据集组成。
很多人认为,这个数据量也不大啊,也就是几百GB到TB,根本无法称之为大量数据。其实,以CC数据集为例,合计1.4PB,而GPT3用于训练的CC数据仅使用了其中的570GB。这中间是因为单次训练进行了数据的预处理,只提取了自己关心的部分。
数据爬取和保存
通常使用WARC、WAT和WET格式的数据存储。LLaMA的模型使用的是WET格式的数据。以Common Crawl为例,每个CC快照的文本大小约300T,而一个WET格式的快照大小约30T。
数据去重
用CCNet将这些快照进行分片(sharding),将原来的数据分成5G一个分片。然后对每个数据做预处理:如小写化所有数据、数字变成占位符等,然后计算每个段落的hash,再去重。并行处理数据,提高处理速度,降低数据量。
文本语言识别与过滤
识别语言,然后对不同语言的数据计算分数,最后根据分数确定是否保留某些语言。在pipeline中执行此操作的顺序可能会影响语言识别的质量。CCNet使用使用n-gram特征的fastText分类器。
质量过滤
CCNet中,他们建议使用维基百科在目标语言上训练一个简单的语言模型,然后计算每段的困惑度(perplexity),并使用困惑度分布的来对它们进行分段。
进一步过滤
为了确定页面的质量。如果这个页面无法被认为是可以作为维基百科引用的,说明页面本身质量可能比较差,所以可以进一步丢弃,提高数据的质量,降低训练成本。
经过这么一轮操作猛如虎,剩下数据就很少了。未来数据从单一的文本自然语言走向多模态,相关的训练数据集就会更多了。多模态通常包含两个或者两个以上的模态形式,包括文本、 图像、视频、音频等。
中国大模型训练大家主要用哪些数据
厂商在共享数据集领域的主要动作
要做AI研究就需要数据,而国内并没有太多高质量数据,所以很多时候大家数据是同质化的,那么就会有数据提供商的出现。
AWS推出Open Data on AWS采用审核制度,免费提供云资源,主打推动计算产品销售
• Open Data Sponsorship Program:主要聚焦生命科学、卫星地图等领域,数据集公开上线后,两年内免除存储费用和下载流量费用。
• 使用方式:使用 AWS 计算和数据分析产品 (包括 Amazon EC2、Amazon Athena、AWS Lambda 和 Amazon EMR) 来分析这些数据集。或者直接下载。、
• 公开方式:Amazon EBS 快照或者S3域名对外共享
华为云开发者数据集市
• 资产集市:供第三方上传,所有华为云用户可以使用,支持直接挂载给ModelArts Studio使用(类似于阿里云PAI平台)以及直接下载到华为云OBS(可以选择区域,并自动创建bucket)
• 数据量极小,数据集仅有26个,和各种模型一起处于资产集市中
百度云飞桨数据集平台
• 实训社区:供第三方上传,所有百度云用户可以使用,支持直接创建任务使用或者直接下载数据(未与百度存储拉通,客户直接下载到本地)
• 数据量比较丰富,覆盖有数万数据集
• 其次和第三方合作有千言平台,主要采集中文互联网数据。
阿里云
• 天池 :由第三方上传,用户申请即可直接下载,数据量比较丰富,覆盖有数万数据集
• 基因组学公共数据集:基于基因行业场景2019-12-19推出BIO-IT开发者扶持计划,采用OSS作为数据存储,开发者直接使用,使用使用者付费模式的计费模式。(当前共7组数据,后台查看过去一年几乎没有访问)
除了云厂商,国内也集中了一些第三方的数据提供商:
北京帕依提提科技有限公司 。一站式人工智能数据集管理、场景化算力开放平台,致力于为开发者提供一站式AI数据集服务及场景化算力,服务内容涉及数据集在线查询、在线交易服务,同时为开发者提供代码在线管理、分享、运行等服务。
OpenDataLab」是上海人工智能创新中心运营的平台。实验室面向上海科创中心建设需求,开展战略性、原创性、前瞻性的科学研究与技术攻关,突破人工智能的重要基础理论和关键核心技术,打造“突破型、引领型、平台型”一体化的大型综合性研究基地
百度联合中国计算机学会、中国中文信息学会共同发起了“千言”数据共建计划,携手高校和企业的数据资源研发者共同建设中文开源数据集。“千言”的目标是覆盖丰富的任务类型,从语义理解、知识融合、多模态融合等角度推动技术进步,同时提供能进行多维度综合评价的数据集,从而评价模型的全面性、泛化性和鲁棒性等。
数据堂 (北京) 科技股份有限公司成立于2011年,作为全球领先的人工智能数据服务商,致力于通过高质量的数据服务、专业的数据处理技术为人工智能产业的快速发展提供坚实的基础支撑,加快推动AI+多领域智能化转型。
公共数据集共享需求
以一个典型AI客户从海外抓取数据的样本为例:采集公共数据集,从海外下载,主要覆盖commoncrawl、 SA-1B Dataset - Meta AI、 arXiv的论文、 LAION( Large-scale Artificial Intelligence Open Network )的数据集。合计1191.2TiB。
可以看到大模型开发的客户,有PB级的公开数据集需求。可以通过很多种合作方式,是类似生命科学的数据集共享模式、还是类似于现在网盘的病毒式传播模式,还是类似于计算巢再造一个存储巢或者数据巢。