AI知识库 AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


OpenCSG发布csg-wukong-1B模型 打造人人可负担的自研预训练模型
发布日期:2024-04-23 15:21:53 浏览次数: 1697

01   关于csg-wukong模型


csg-wukong是OpenCSG算法团队自研的预训练模型系列,其中base模型csg-wukong-1B是具有1B参数量的small language model(SLM)预训练模型。csg-wukong-1B具有参数量小、推理成本低、性能强悍等优点,可支持多种适用场景并灵活适配下游微调任务。


csg-wukong-1B模型在预训练阶段第一阶段采用了1T (3 epoch)tokens英文通用语料数据,其中包括了the pile、wikipedia、Commoncrawl、C4、StackExchange、Github、arxiv等数据集;在第二阶段训练使用了30B tokens合成数据,它们是通过gpt4、mixtral 8X7B、QWEN-72B 综合蒸馏得到的高质量训练数据,通过合适的数据配比完成了第二阶段的训练。


csg-wukong-1B在16张H800卡上进行了为期43天的预训练,这个消耗是很多研究者、企业、高校都可以接受的范围;同时由于模型仅有1B参数量,部署成本非常低,可以在个人PC、手机、各类IOT边端设备上进行部署,所以这是一个每个人都能负担得起的模型。


csg-wukong-1B模型下载与体验地址:


传神社区下载:https://opencsg.com/models/OpenCSG/csg-wukong-1B


传神社区模型在线体验:https://opencsg.com/spaces/OpenCSG/csg-wukong-1B


Huggingface社区:https://huggingface.co/opencsg/csg-wukong-1B


其中csg-wukong-1B在开源不到一周的时间内,已经在huggingface社区模型下载量直逼1K!!!


下面我们将从训练框架的选择及魔改、训练方法的优化、数据质量评估方法以及模型评测结果等多方面来介绍csg-wukong当前的工作情况。


02   高效的训练框架

OpenCSG采用了近期比较火热的pytorch-lightning框架对csg-wukong进行预训练,它的优点相比deepspeed、megatron更加轻量,在训练小参数量模型时候直接采用数据并行方法,如FSDP能获得极佳的训练速度,通信也相对较少,并且已经融合到Nvidia Nemo框架中,有较好的拓展性。


不仅如此,OpenCSG还对lightning框架进行了魔改,在训练前对数据量、显存、数据长度进行综合评估,配置当前硬件环境下最为合适的分词数据块,能够避免像huggingface tokenize api 容易造成显存分布不均以及显存碎片较多的问题。

lightning助力csg-wukong


批数据分词后显存占用均匀


 预训练过程中,对GPU服务器的监控以及框架的稳定性非常重要,我们采用了wandb对lightning框架的训练过程进行监控,无论是GPU显存占用情况,还是GPU功耗,或者CPU、内存以及磁盘都可以实时监控。  





另外,loss和ppl(困惑度)指标只能在训练前期阶段的时候满足我们对训练过程的分析,在loss和ppl曲线趋于平坦的时候,我们还需要监控benchmark评测指标,由于前期lightning版本没有融入lm-evaluation-harness,我们手动魔改了评测监控这部分功能,这样我们就能够清晰地看出在训练到哪一部分数据集时,相应的评测结果会变差,也能够为后面数据质量评估助力。后期我们会把魔改过的代码贡献给lightning项目,并会持续跟进该项目的发展。



03   进阶的训练方法

训练的方法对于大模型而言至关重要,尤其是SLM这个方向。目前已经有不少工作提出chinchilla optimal存在的局限性,训练数据规模和模型的比率可以放得更大。但是我们也尝试着用10M、30M、70M、120M的模型去跑scaling law实验,当数据价值比较高的时候,SLM性能仍然可以上升,也就是说scaling law没法衡量数据价值给模型带来的额外增益。


尽管如此,我们目前手上已经处理完的预训练数据还是较为有限,在OpenCSG以及huggingface社区上的开源数据集,经过自研的数据质量评估系统最终保留了1T (3epoch)tokens,在第二阶段的continue pretrain阶段采用高质量的合成数据,整个训练过程我们采用了两台8卡H800服务器进行了为期43天的训练。我们采用了常规训练参数设置以及在第二阶段预训练再次激活余弦学习率方式进行训练,这样做的目的是在模型与第一阶段的训练方法上和目前主流的预训练模型保持一致,以便于公平对比。除此之外,我们自研了一种模型增量训练的方法,可以使得模型在不遗忘先前知识的情况下持续训练,通过注入新的训练数据持续提高模型能力。


04   系统化的数据质量评估方法

值得一提的是,OpenCSG自研了一套数据质量评估的方法,它可以在训练前、训练中、训练后三个不同阶段评估出数据在不同阶段给训练带来的影响。


训练前我们通过一些常规的方案如Falcon工作中提到的多阶段的去重,数据采集时间的限制、通过开源大参数量的模型以及GPT4对数据质量和安全性进行打分筛选。


训练中,OpenCSG将训练数据shuffle后仍记录其所属数据集名称在训练过程中根据评估指标筛选出质量较低的数据。


训练后我们通过实际应用评测找出哪一类别问题模型的理解能力不够,从而在后一阶段训练时补强相关主题数据的训练。另外,我们还有一些比较特别的数据质量评估方案将会在不久的未来逐步公开。


05   csg-wukong-1B模型排名跻身前十

目前csg-wukong-1B在huggingface综合性榜单open_llm_leaderboard上排名第8,仅次于阿里Qwen1.5版本模型,另外随着新高质量数据的不断加入和数据质量评估方法的持续升级,我们将会进一步提升模型对不同问题的理解能力。



06   面对挑战 精益求精

由于csg-wukong-1B是OpenCSG首次进行大规模预训练,因此在数据类目、数据处理等方面的准备仍有很大的不足,未来我们会努力提升这方面的能力。同时因为资源限制等影响,算法模型的改进暂时未被考虑到,但我们会在后续阶段对SLM这类模型进行深入的调研,并努力在算法模型层面提出创新性的建议。


我们将在不久的未来再进一步提升csg-wukong-1B这个base模型的通用能力,并逐步开源csg-wukong-1B-chat对话模型、代码生成模型csgcoder以及多模态图文理解模型csg-wukong-1B-VL,以促进更广泛的应用和发展。届时我们会给大家带来详细的技术报告。


53AI,大模型落地应用首选服务商

定位:开箱即用的大模型落地应用平台

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

年轻人!来一起搞AI吗?

如果你看见AI对商业世界的变革,欢迎来和我们一起探索~

岗位:销售经理

查看详情

岗位:项目经理

查看详情

岗位:产品经理

查看详情

岗位:测试工程师

查看详情

联系我们

售前咨询
186 6662 7370
产品演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询