计算成本节省9成:大模型高效训练工具BMTrain
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
2018年,预训练语言模型技术横空出世并引发了人工智能领域的性能革命。研究表明,增大参数量与数据规模是进一步提升语言模型性能的有效手段,对十亿、百亿乃至千亿级大模型的探索成为业界的热门话题。这引发了国内外研究机构与互联网企业的激烈竞争,将模型规模与性能不断推向新的高度。除 Google、OpenAI 等国外知名机构外,近年来国内相关研究机构与公司也异军突起,形成了大模型的研究与应用热潮,人工智能由此进入“大模型时代”。
然而在“大模型时代”,模型巨大的参数规模和算力需求,带来了很大的训练和微调难题:
? 算力成本高
模型巨大的参数量无法在单张显卡中完成存储与计算。OpenAI 训练 GPT-3 (约1750亿参数)使用了上千张 GPU,Google 训练 PaLM (约5000亿参数)使用了六千片 TPU,带来了高昂的训练成本,配置规模庞大的计算集群也十分困难。
? 编程难度大
为了利用分布式算力加速大模型的训练和微调,程序员需要编写复杂的分布式程序来驱动大模型。现有的框架(如DeepSpeed)已经能够较好地支持模型的分布式训练,但依然需要用户进行较为复杂的编程与配置。
? 计算速度低
在分布式训练框架中,不同计算节点之间需要频繁地进行通信,此时通信带宽往往成为模型的训练瓶颈,若不能合理设计通信策略并进行有效且正确的代码实现,训练模型所需的时间将被大大延长,不能充分发挥计算设备的潜力。
针对上述难题,我们推出了大模型高效训练工具包BMTrain与模型仓库ModelCenter。
在 OpenBMB 全流程加速工具框架中,致力于解决大模型训练难题的 BMTrain 是极为重要的一环。在设计中,我们追求以下特点:
? 高效率
作为大模型训练的 “发动机”,BMTrain 能够在任意数量的 GPU 上进行高效的大模型预训练与微调,最优化分布式框架的通信开销,在超大规模模型训练场景下与 DeepSpeed 等框架相比可以节省 90% 的算力成本。
? 低资源
不同于OpenAI、Google 等机构的算力条件,为了让更多实验室和企业也能够训练大模型,我们致力于在保持高效计算前提下最小化大模型的算力需求,实现单张消费级显卡全参数微调 BERT-Large,8 台 A100 小集群训练 GPT-3,进一步降低大模型的算力门槛。
? 可扩展
在编程难度方面,我们致力做最简洁最有效的封装,仅使用少量的代码替换,即可达到与原生 PyTorch 一致的编程体验,一键安装工具包降低配置难度,让大模型真正飞入千家万户。
与此同时,我们还基于 BMTrain 实现了一系列大规模预训练语言模型,集成于ModelCenter 仓库。BMTrain 与 ModelCenter 共同组成了高效分布式预训练框架,适用于任意的 Transformer 结构,可以在较少数量的 GPU 上训练,且高度兼容 PyTorch、Transformers 库,学习成本极低。目前我们已经支持了常用的英文模型如 BERT、GPT、T5、RoBERTa 以及中文模型如 CPM-1、CPM-2 等。
BMTrain 基于简单易用的设计原则,致力做最简洁最有效的封装,仅使用少量的代码替换,即可达到与原生 PyTorch 一致的编程体验,快速实现大模型的训练加速。我们还实现了模型仓库 ModelCenter,方便使用者快速使用主流架构大模型。
贴合PyTorch使用习惯,上手门槛更低,仅需简单替换即可完成训练提速:
bmtrain.DistributedParameter
替换torch.nn.Parameter
bmtrain.DistributedModule
替换torch.nn.Module
bmtrain.CheckpointBlock
替换torch.nn.ModuleList
中的模块
下面将提供一个简单的对比图来直观展示BMTrain的便捷易用(左边是原始代码,右边是替换后的代码)。
对于PyTorch实现的原始模型,直接使用BMTrain提供的BMTrainModelWrapper
自动包装模型,实现分布式加速。
# Automatically wrap a model in a BMTrain model bmt_model=BMTrainModelWrapper(model) # model: torch.nn.module
我们基于BMTrain构建了模型仓库ModelCenter,可以直接加载进行使用。ModelCenter的使用方式与Transformers类似,且兼容Transformers中各类数据处理接口。
BMTrain在大模型训练上效果出色,在不同规模的算力条件下均有较好的性能表现。
在消费级显卡2080Ti上,BMTrain可以实现BERT-Large的微调(3亿参数,样本长度 512)。
在入门级算力条件下(显卡为V100 32GB),BMTrain可以实现BERT-Large的高效训练(3亿参数,样本长度 512)。
在中等规模算力条件下(显卡为A100 40GB,NVLink),BMTrain可以训练大规模的 GPT-13B (130亿参数,样本长度 512)。
在较高规模算力条件下(显卡为A100 40GB,NVLink,400Gbps IB),BMTrain可以训练超大规模的 GPT-3(1750亿参数)。
使用BMTrain或者ColossalAI,64卡A100跑完GPT-3的300B token大概需要2年,服务器与显卡租金大约900万左右。根据我们的实验估算,使用128张A100时,单卡吞吐量可以提升2.5倍以上,6个月可以跑完GPT-3,服务器租金大约500万左右。虽然训练出GPT-3的成本依然高昂,但与GPT-3的1200万美元相比,成本仍然节约了90%以上。
BMTrain 和 ModelCenter 提供了丰富的文档,方便使用者快速上手,便捷地体验大模型的魅力。
? BMTrain安装
・ 可以通过pip直接安装(推荐)
$ pip install bmtrain
・ 也可以选择从GitHub进行源码安装
$ git clone https://github.com/OpenBMB/BMTrain.git $ cd BMTrain $ python3 setup.py install
? ModelCenter安装
・ 可以通过pip直接安装(推荐)
$ pip install model-center
・ 也可以选择从GitHub进行源码安装
$ git clone https://github.com/OpenBMB/ModelCenter.git $ cd ModelCenter $ pip install -r requirements.txt $ python3 setup.py install
首先,你需要在代码开头初始化 BMTrain。正如在使用 PyTorch 的分布式训练模块需要在代码开头使用init_process_group一样,使用 BMTrain 需要在代码开头使用init_distributed。
import bmtrain as bmt bmt.init_distributed()
注意: 使用 BMTrain 时请不要使用 PyTorch 自带的distributed
模块包括torch.distributed.init_process_group
以及相关通信函数
? ZeRO-3优化
使用ZeRO-3优化只需要对模型代码进行简单替换:
・ torch.nn.Module
替换为 bmtrain.DistributedModule
・ torch.nn.Parameter
替换为 bmtrain.DistributedParameter
? Checkpointing优化
・ 在模块上套用 bmtrain.CheckpointBlock
即可
? 通信优化
为了进一步缩短通信额外开销,将通信与运算时间重叠,可以使用 TransformerBlockList
来进一步优化。在使用时需要对代码进行简单替换:
・ torch.nn.ModuleList
替换为 bmtrain.TransformerBlockList
・ for module in self.module_list: x=module(x, ...)
替换为 x=self.module_list(x, ...)
BMTrain 使用 PyTorch 原生分布式训练启动器,你可以根据 PyTorch 版本选择下列命令中的一个。
・ torch.distributed.launch
$ python3 -m torch.distributed.launch --master_addr ${MASTER_ADDR}--master_port ${MASTER_PORT}--nproc_per_node ${GPU_PER_NODE}--nnodes ${NNODES}--node_rank ${NODE_RANK}train.py ${ARGS}
・ torchrun
$ torchrun --nnodes=${NNODES}--nproc_per_node=${GPU_PER_NODE}--rdzv_id=1 --rdzv_backend=c10d --rdzv_endpoint=${MASTER_ADDR}:${MASTER_PORT}train.py ${ARGS}
其中:
${MASTER_ADDR}
为主节点的 IP 地址,只有一个节点可以写localhost或 127.0.0.1
${MASTER_PORT}
为主节点的端口
${NNODES}
为节点数量(一般为机器数量)
${GPU_PER_NODE}
为每个节点的 GPU 数量
${NODE_RANK}
为本节点的 RANK
${ARGS}
为代码输入的其他参数
本节将首先以如何在一个分类数据集上微调 BERT 模型为例,介绍如何使用ModelCenter的现有模型。其次将简单介绍如何使用 ModelCenter 实现一个新的模型。
? 01 准备模型
接下来,你可以从 model_center
中获取预训练好的 BERT 模型,例如 bert-base-uncased。由于我们是在一个分类任务上微调 BERT 模型,所以需要在最后一层后添加一个全连接层。
import torch from model_center.model import Bert, BertConfig from model_center.layer import Linear class BertModel(torch.nn.Module): def __init__(self, config): super().__init__() self.bert=Bert.from_pretrained("bert-base-uncased") self.dense=Linear(config.dim_model, 2) bmt.init_parameters(self.dense) def forward(self, input_ids, attention_mask): pooler_output=self.bert(input_ids=input_ids, attention_mask=attention_mask).pooler_output logits=self.dense(pooler_output) return logits config=BertConfig.from_pretrained("bert-base-uncased") model=BertModel(config)
如果只需要 config 来构建模型,而不需要现成的预训练参数,可以参考下面的方法:
config=BertConfig.from_json_file("your/path/to/config.json") model=Bert(config) bmt.init_parameters(model) # bmt.load(model, "your/path/to/pytorch_model.pt")
? 02 准备数据集
下一步是准备数据集,用于训练和验证模型。这里,我们使用 SuperGLUE benchmark 中的 BoolQ 数据集。你需要下载该数据集,并将解压后的文件夹放在 your_path_to_dataset
路径下。
from model_center.dataset.bertdataset import DATASET from model_center.dataset import DistributedDataLoader from model_center.tokenizer import BertTokenizer tokenizer=BertTokenizer.from_pretrained("bert-base-uncased") splits=['train', 'dev'] dataset={} for split in splits: dataset[split]=DATASET['BoolQ']('your_path_to_dataset', split, bmt.rank(), bmt.world_size(), tokenizer, max_encoder_length=512) batch_size=64 train_dataloader=DistributedDataLoader(dataset['train'], batch_size=batch_size, shuffle=True) dev_dataloader=DistributedDataLoader(dataset['dev'], batch_size=batch_size, sh
话李话外:OpenAI | AI 智能机器人ChatGPT注册教程(简单
话李有话,话里话外,话里话外是成语吗,话里话外英语怎么翻译
据 今日头条 - 话李话外 报道:最近,OpenAi的ChatGPT貌似很火,今天朋友圈也看到有人在问ChatGPT注册相关的问题,于是,干脆整理一下ChatGPT的注册步骤,给需要的小伙伴们使用。 现在,...
查看详情
1. DAO民主投票源头与孔多塞悖论
民主意味着参与投票。独裁与自由、自由和繁荣的民主之间的主要区别在于,民众可以通过参与公开、公平和透明的选举来决定谁代表他们的利益。
2. 盘点10个值得关注的DAO治理实验
加密治理机制仍然是新生事物,它是最活跃的创新领域之一。
3. DAO的“落户之旅” 或许有另一种可能?
DAO是否能在中国落地?又会以何种方式落地?
4. 盘点 10 个值得关注的 DAO 治理实验
在本文中,我们将探讨几个值得关注的治理实验,并总结出每个实验的关键启示。
5. 抛开意识形态 DAO是什么?
相信很多人都有同样的感受,每当讨论 “DAO 是什么” 的时候总会有一种坠入感。
6. 2023:互联网DAO之年
2022 年对加密货币来说是一场燃烧的垃圾桶之火。
7. AI DAO 及其实现的三条路径
DAO已经到来。当人工智能(AI)被加入到这个组合中时,其结果是爆炸性的。
8. Web3 风投的未来:理解 DAO 的兴起及其影响
DAO可以很好地解决传统VC领域中的一些空白,让VC进入DAO时代。
9. 比SBT更有价值的DAO声誉量化模型
与 SBT 提供的单一定性数据点相比,声誉的定量模型可能更有意义。
10. 从 DAO 监管第一案 看美国 CFTC 对 DAO 的监管逻辑
CFTC 的监管行为在 DAO、Web3 领域里引起了相当大的震动
# 共识实验室 ## BlockAsset ## BlockArk ## NEUTRINO ## FINWEX ## SOLIDX ## DNA ## NGC ## Galaxy Digital ## 八维资本 ## JRR Crypto ## MEET.ONE ## BLOCK72 ## LinkVC ## Hashed ## 链博 ## dcm ## Blockchain Capital ## MULTICOIN CAPITAL ## Outlier Ventures ## 金氪资本 ## ARK Invest ## CoinShares ## ConsenSys ## LongHash ## BlockVC ## Rabbit Finance ## xNFT Protocol ## Genshiro ## Adamant ## Talken ## Amber ## KSwap ## Vera ## HAL ## Complus Network ## PERI Finance ## ChainSwap ## Cyclone ## Raydium ## BSCPad ## Nabox ## TORUM ## MISO ## Multichain.xyz ## Launchpool ## ZT Global ## AtomicDEX ## dFuture ## Wrapped #
语文“考试”输给AI?AI创作,还是辅助创作?
ai写作神器,ai辅导作业,ai写作原理,ai帮写作
2023年,AIGC的相关内容在网络圈引起了网民们的热烈讨论。 例如,成为爆炸性话题的AI绘画,以及最近引起热烈讨论的ChatGPT。 此外,各大厂商也逐渐加强对AI模型开发的投资。 具体怎么理解大厂商的投入和AI人工智能的发展? 看看作者的解读吧。
今年以来,aigc(ai生产内容)成为新的互联网热潮,宛如年初大火的Web3。
最近的热潮,得益于上周刚刚发布的ChatGPT,凭借超乎想象的语言理解能力、交流技能、背后知识的积累,不仅技术有四门,在一定程度上也遭遇了恐怖谷效应,一些网友对此表示:“牛有点
但是,ChatGPT仍然存在着对人类语言的理解问题,尤其是在中文里,比如网友提问“如果你是贾宝玉,你会娶谁为妻”,得到了讽刺的回答。
图/即刻@雨老师
在AI领域,语言理解始终是最核心、最难克服的问题之一,尤其是汉语语言理解。 目前,放眼世界所有语言,中文的难度系数最高。 与拉丁语系单词相比,汉语汉字语义模糊,容易产生歧义、信息失真等问题,这些给AI带来了巨大的挑战。
近日,阿里和腾讯的AI陆续取得突破性进展,中文语言理解迈出了更重要的一步。
一、AI中文成绩超过人类上个月末,在中文语言理解领域权威排行榜CLUE上,阿里AI以86.685的总成绩创下新高――该排行榜诞生以来AI首次超过人类成绩( 86.678 )。 在短短一周内,腾讯AI也刷新了自己的成绩,以86.918的得分超过了人类和阿里AI的成绩。
CLUE总排名,图/CLUE
中国两大互联网巨头,在短短一周内相继超越了人类的CLUE成绩。
业界最权威的中文自然语言理解排行榜CLUE (中文语言理解测评标准)是评价AI机器人能否像人一样理解和响应中文文本的任务,包括长短文本分类、多选题、自然语言推理等17项任务
上线三年来,该榜单竞争激烈,成为中国互联网巨头兵家必争之地。 除了阿里达莫院NLP和腾讯混元AI的大模特团队外,OPPO研究院、快手搜索、美团NLP等研究机构也参与了该排行榜的竞争。 虽然首位是好几次易主,但在阿里和腾讯AI最新更新之前,AI从未超过过人类的成绩。
但这次超越实际,就是总成绩在总排名中超过了人,具体在自然语言推理排行榜和分类任务排行榜等子排名中,人的成绩仍然是第一。 也就是说,目前阿里和腾讯的AI模型,在人与CLUE的差异测评之间存在胜负。
另一方面,百度以更贴近中国学生的方式展示了中国AI的中文理解能力。 在9月举办的2023百度万象大赛上,百度宣称AI数字人度晓晓挑战高考作文,对全国新高考I卷题目《本手、妙手、俗手》进行了回答,以48分的成绩,度晓可以排在全体考生作文成绩的前25%。
图/百度
中国互联网巨头的中文理解似乎迎来了一个奇点,阿里巴巴云计算部门在阿里AI CLUE首次超越人类后表示:“这标志着对中国AI模式的理解达到了新的水平。 " "
二、如果说近几年AI的快速发展是从2023年AlphaGo开始计算的话,那么2023年夏天OpenAI将推出GPT-3机型,可以被视为另一个重要节点。 GPT-3从发布之初就发挥了惊人的AI能力,可以写文章、翻译、写代码,还可以学习一个人的语言模式进行对话。
事实上,上半年大火的dalle2(ai生成图像)和chatgpt ( ai生成文本)都是从GPT-3大模型派生出来的。 除此之外,GPT-3还以付费API的形式支持300多个APP应用。
GPT-3的推出引起了全球范围内AI大型号的爆炸,全球各大科技公司和研究所展开了声势浩大的AI军备竞赛。 谷歌去年发布了万亿参数的AI大模型―― Switch Transformer,在微软和NVIDIA烧毁4480个CPU后,完成了5300亿参数的自然语言生成模型MT-NLG
国内的大公司当然也不甘落后。 百度去年也发布了“鹏城-百度文心”,今年升级为文心行业大典范。 今年9月,阿里发布了名为“通义”的大机型系列。 云:第一款在测评中得分超过人类的AI“通义- AliceMind”来自该机型系列。
科技巨头角力AI大模式的背景是AI在下游应用层面碎片化、多样化的产业趋势。 华为升腾计算业务总裁张迪煊指出,过去单一的AI应用场景,其实是多台AI支撑一个场景来完成多项任务。
传统的AI模型只有相对单一的能力,例如alpha go用于围棋,alpha fold集中于蛋白质结构预测。 对于像GPT-3这样的大模型,可以实现多个任务,可以服务多个场景。 “这是生产率的提高。 " "
百度移动生态负责人何俊杰表示,AIGC能够以十分之一的成本,以千倍百倍的生产速度,创造具有独特价值和独立视角的内容,使内容的生产和传播进入AI发电阶段。
其实,百度已经推出AI绘图平台“文心一格”,腾讯也有写稿机器人“梦想写手”,阿里巴巴有旗下的AI在线设计平台Lubanner,字节跳动提供AI生成视频功能
但是,未来的AI创作会怎么样呢?
三. AI创作还是创作辅助? 在ChatGPT发挥出色的自然语言生成能力后,有网友未来会在ChatGPT上生成副本并作为语音输出,生成stable diffusion ( stable diffusion ) (从文本中生成图像素材,谷歌的Imagen Video或make-a-a )
AI生成的视频,图/谷歌
虽然AI生成文本和图像在今天已经很成熟,但离AI生成视频的实用化还有明显的差距。 阿里资深技术专家、达摩院基础视觉团队负责人赵德丽认为,大概两年左右时间,AI生成视频也有望达到文生图水平。 她还指出,目前的困难在于,无论是质量还是数量,都与文生图的数据大相径庭。
在9月的万象大会上,百度推出了包括文案、插画家、视频制作等AI助手在内的“创作者AI助手团”,实现一个人的就是制作团队。
虽然几乎可以肯定将来AI会彻底改变现有的内容生产模式,但是AI带来的内容革命还很难说是好的。
ChatGFT的训练方式主要通过语料库进行自然语言处理的训练。 首先,将大量的对话记录和语料库的词连写处理成模型可识别的形式。 其次通过使用深度学习等自然语言处理技术对模型进行训练,使模型能够通过学习语料库模拟人类的聊天行为,回答用户的问题。
本质上,AI生成内容的基础是互联网上海量的语料库,既不能凭空创造新的内容,也不能实时收集最新的数据。 只是收集包括“有毒物品”在内的一定参数范围内已经存在的信息。
OpenAI去年指出,他们所做的改进并没有消除大规模语言模型固有的毒性问题。 GPT-3接受了600GB以上的网络文本培训,其中一部分来自有性别、种族、身体、宗教偏见的社区。 和其他大型语言模型一样,扩大训练数据的偏差。
图/OpenAI
公正地说,这是AI的问题,也是人类自身的问题。 然而,AI生成内容的方便和快捷将大大降低内容的生产成本。 就像现在就用自动驾驶司机代替人类司机一样。 这意味着各种问题,包括更像人类的AI水军充斥着社交媒体和AI生成的虚假或带有偏见的内容。
越来越多的人开始怀疑社交媒体的内容是真实制作的还是ChatGPT生成的文本。 长期以来,社交媒体和网络内容完全被AI占领并不是杞人忧天。
北京大学新闻与传播学院教授胡泳发文指出:“中文写作本来就有很多洗稿的事情,如果使用机器学习工具生成内容,洗稿的问题就会恶化。” ”由此可见,胡泳认为,与其直接用AI替代人类生产内容,不如考虑如何利用AI帮助人类发展内容生产能力。
在ChatGPT的对话热潮中,我们也发现了真正具体到内容的输出。 尽管ChatGPT对自然语言的理解备受赞誉,实际的回答中充满了“荒谬文学”和过时的偏见信息,但它在帮助内容创作、成为人类写作的助手方面却要好得多。
四、最后一篇《人工智能之父》阿兰图灵在提出图灵测试时,把语言理解能力作为判断机器系统智能与否的重要标准,自然语言理解也被视为人工智能皇冠上的一颗明珠。
对中文来说尤其如此。 正如过去在AI语音助手中看到的,现有的语音助手对中文的理解力严重影响了用户的语音交互体验,毕竟没有人喜欢对牛弹琴。
但是仅仅这一个月,阿里和腾讯AI在CLUE中文理解上一个接一个地超过了人类的成绩,ChatGPT至少在中日英三种语言上表现出了惊人的语音理解能力。 今年以来,AI绘制、AI视频制作陆续挑战了我们对AI的认识。 AI带来的内容产业变革似乎即将到来。
然而,正如科幻小说《沙丘》中所述,AI深度学习的训练模式是:“他们接受的训练是相信,而不是知道。 信仰会被操纵。 只有知识是危险的。 " "
作者:雷科技互联网集团; 编辑:冬季果酱
原标题:蚂蚁赢了,但人类却一败涂地。 中文“考试”也输给了AI
资料来源:雷科技( ID:leitech ),聚焦科技和生活。
本文由产品经理合作媒体@雷科技授权发布。 未经许可禁止转载。
标题来自Unsplash,基于CC0协议。
本文的观点只有代表本人,每个人在产品经理平台上只提供信息存储空间服务。
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。