淘优惠

淘优惠

计算成本节省9成:大模型高效训练工具BMTrain

热门文章 0

淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】

模型训练batchsize,模型训练什么意思,模型训练的过程是什么过程,模型 训练

2018年,预训练语言模型技术横空出世并引发了人工智能领域的性能革命。研究表明,增大参数量与数据规模是进一步提升语言模型性能的有效手段,对十亿、百亿乃至千亿级大模型的探索成为业界的热门话题。这引发了国内外研究机构与互联网企业的激烈竞争,将模型规模与性能不断推向新的高度。除 Google、OpenAI 等国外知名机构外,近年来国内相关研究机构与公司也异军突起,形成了大模型的研究与应用热潮,人工智能由此进入“大模型时代”

然而在“大模型时代”,模型巨大的参数规模和算力需求,带来了很大的训练和微调难题

? 算力成本高

模型巨大的参数量无法在单张显卡中完成存储与计算。OpenAI 训练 GPT-3 (约1750亿参数)使用了上千张 GPU,Google 训练 PaLM (约5000亿参数)使用了六千片 TPU,带来了高昂的训练成本,配置规模庞大的计算集群也十分困难。

? 编程难度大

为了利用分布式算力加速大模型的训练和微调,程序员需要编写复杂的分布式程序来驱动大模型。现有的框架(如DeepSpeed)已经能够较好地支持模型的分布式训练,但依然需要用户进行较为复杂的编程与配置。

? 计算速度低

在分布式训练框架中,不同计算节点之间需要频繁地进行通信,此时通信带宽往往成为模型的训练瓶颈,若不能合理设计通信策略并进行有效且正确的代码实现,训练模型所需的时间将被大大延长,不能充分发挥计算设备的潜力。

针对上述难题,我们推出了大模型高效训练工具包BMTrain与模型仓库ModelCenter。

- 图 OpenBMB全流程加速工具框架

在 OpenBMB 全流程加速工具框架中,致力于解决大模型训练难题的 BMTrain 是极为重要的一环。在设计中,我们追求以下特点:

? 高效率

作为大模型训练的 “发动机”,BMTrain 能够在任意数量的 GPU 上进行高效的大模型预训练与微调,最优化分布式框架的通信开销,在超大规模模型训练场景下与 DeepSpeed 等框架相比可以节省 90% 的算力成本。

? 低资源

不同于OpenAI、Google 等机构的算力条件,为了让更多实验室和企业也能够训练大模型,我们致力于在保持高效计算前提下最小化大模型的算力需求,实现单张消费级显卡全参数微调 BERT-Large,8 台 A100 小集群训练 GPT-3,进一步降低大模型的算力门槛。

? 可扩展

在编程难度方面,我们致力做最简洁最有效的封装,仅使用少量的代码替换,即可达到与原生 PyTorch 一致的编程体验,一键安装工具包降低配置难度,让大模型真正飞入千家万户。

- 图 BMTrain架构图

与此同时,我们还基于 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协议。

本文的观点只有代表本人,每个人在产品经理平台上只提供信息存储空间服务。