文华财经官网支持GPU与TPU近期,ChatGPT成为了全网热议的话题。ChatGPT是一种基于大周围说话模子本事(LLM, large language model)完毕的人机对话器材。不过,假若咱们念要教练己方的大周围说话模子,有哪些公然的资源可能供应襄理呢?正在这个github项目中,公民大学的先生同窗们从模子参数(Checkpoints)、语料和代码库三个方面,为专家整饬并先容这些资源。接下来,让咱们沿途来看看吧。
从曾经教练好的模子参数做精调、持续教练,无疑可能极大地低重盘算推算本钱。那目前有哪些开源的大模子参数,可能供咱们拔取呢?
第一类是100~1000亿参数的模子。这类模子除了LLaMA(650亿)除外,参数鸿沟都召集正在100~200亿之间。整体而言,包罗:LLaMA[1], mT5[2], T0[3], GPT-NeoX-20B[4], CodeGen[5], UL2[6], Flan-T5[7], mT0[8], PanGu-α[9]。
个中,Flan-T5经由instruction tuning的教练;CodeGen笃志于代码天生;mT0是个跨说话模子;PanGu-α有大模子版本,而且正在中文下逛职业上阐扬较好。
第二类是逾越1000亿参数周围的模子。这类模子开源的较少,包罗:OPT[10], OPT-IML[11], BLOOM[12], BLOOMZ[13], GLM[14], Galactica[15]。参数周围都正在1000亿~2000亿之间。
个中,OPT是专为开源和大模子复现提出的;BLOOM 和 BLOOMZ具有跨说话技能;Galactica, GLM, 和 OPT-IML都是经由instruction tuning的。
这些模子参数大众操纵几百到上千块显卡教练获得。例如GPT-NeoX-20B(200亿参数)操纵了96个A100-SXM4-40GB GPU,LLaMA(650亿参数)操纵了2048块A100-80G GPU研习了21天,OPT(1750亿参数)操纵了992 A100-80GB GPU,GLM(1300亿参数)操纵了768块DGX-A100-40G GPU教练了60天。
除了这些可供公然下载参数的模子除外,OpenAI还供应正在他们的办事器上精调GPT-3模子的办事,可能拔取的初始模子参数包罗babbage(GPT-3 1B), curie(GPT-3 6.7B)和 davinci(GPT-3 175B)。
教练大周围说话模子,教练语料不行或缺。首要的开源语料可能分成5类:竹帛、网页爬取、社交媒体平台、百科、代码。
竹帛语料包罗:BookCorpus[16] 和 Project Gutenberg[17],差别蕴涵1.1万和7万本竹帛。前者正在GPT-2等小模子中操纵较众,而MT-NLG 和 LLaMA等大模子均操纵了后者动作教练语料。
最常用的网页爬取语料是CommonCrawl[18]。只是该语料固然很大,但质料较差。大模子大众采用从个中筛选获得的子集用于教练。常用的4个子集包罗:C4[19], CC-Stories, CC-News[20], 和 RealNews[21]。
CC-Stories的原版而今已不供应下载,一个替换选项是CC-Stories-R[22]。
社交媒体平台语料首要获取自Reddit平台。WebText蕴涵了Reddit平台上的高赞实质,然而而今曾经不供应下载,而今可能用OpenWebText[23]替换。别的,PushShift.io[24]供应了一个及时更新的Reddit的全盘实质。
百科语料便是维基百科(Wikipedia[25])的下载数据。该语料被普及地用于众种大说话模子(GPT-3, LaMDA, LLaMA 等),且供应众种说话版本,可用于扶帮跨说话模子教练。
代码语料首要来自于GitHub中的项目,或代码问答社区。开源的代码语料有谷歌的BigQuery[26]。大说话模子CodeGen正在教练时就操纵了BigQuery的一个子集。
除了这些简单实质出处的语料,尚有极少语料集。例如 the Pile[27]团结了22个子集,构修了800GB周围的羼杂语料。而 ROOTS[28]整合了59种说话的语料,蕴涵1.61TB的文本实质。
上图统计了这些常用的开源语料。目前的预教练模子大众采用众个语料资源团结动作教练数据。例如GPT-3操纵了5个出处3000亿token(word piece),蕴涵开源语料CommonCrawl, Wikipedia 和非开源语料(WebText2,Books1, Books2)。
操纵代码库,可能襄理你火速搭修模子布局,而不消一个个矩阵乘法地搭修transformers布局。整体而言,包罗以下7个:
Transformers[29]是Hugging Face构修的用来火速完毕transformers布局的库。同时也供应数据集处分与评议等合系成效。行使普及,社区生动。
DeepSpeed[30]是一个微软构修的基于PyTorch的库。GPT-Neo,BLOOM等模子均是基于该库拓荒。DeepSpeed供应了众种漫衍式优化器材,如ZeRO,gradient checkpointing等。
Megatron-LM[31]是NVIDIA构修的一个基于PyTorch的大模子教练器材,并供应极少用于漫衍式盘算推算的器材如模子与数据并行、羼杂精度教练,FlashAttention与gradient checkpointing等。
JAX[32]是Google Brain构修的一个器材,扶帮GPU与TPU,而且供应了即时编译加快与主动batching等成效。
Colossal-AI[33]是EleutherAI基于JAX拓荒的一个大模子教练器材,扶帮并行化与羼杂精度教练。迩来有一个基于LLaMA教练的对话行使ColossalChat便是基于该器材构修的。
BMTrain[34] 是 OpenBMB拓荒的一个大模子教练器材,夸大代码简化,低资源与高可用性。正在其ModelCenter中,曾经构修好如Flan-T5 与 GLM等模子布局可供直接操纵。
FastMoE[35] 是一个基于pytorch的用于搭修羼杂专家模子的器材,并扶帮教练时数据与模子并行。
通过操纵以上提到的模子参数、语料与代码,咱们可能极大地轻易己方完毕大周围说话模子,并搭修出己方的对话器材。不过,只管数据资源相对容易获取,盘算推算资源却相等稀缺。念要得到足够的显卡资源以教练/调度大周围模子,仍旧是一件极度障碍的事故。所以,私有化ChatGPT的途途任重而道远。正在盘算推算资源相对匮乏的状况下,咱们更是要欺骗好手头的模子参数、语料与代码等资源,以有限的盘算推算量赢得最好的阐扬。