撰文|CPFLAME
大噶好,年更楼主今天想推的是,主打分布式训练的模型库_李白(LiBai)。
https://github.com/Oneflow-Inc/libaihttps://github.com/Oneflow-Inc/libai
对于目前市面上的模型库来说,选择实在是太多了,换了一批又一批,眼睛都挑花了,为什么要用LiBai?(如果你觉得LiBai万一某天能用到,或者这篇文章读下来感觉比较开心,可以去GitHub上点赞,如果能三连就更好了。众所周知,GitHub点赞其实是个收藏夹功能)。
按照现在的趋势来说,模型越来越大了,大到一张GPU甚至装不下完整的模型,必须得上分布式并行技术,但是分布式代码在很多框架下都是高度定制化的,对于新手来说根本读不懂,也不知道应该怎么使用,导致大家上手非常的困难,让自己珍贵的发际线显得更加珍贵。
针对大模型上述存在的痛点,导致我们必须上分布式(数据并行、模型并行、流水并行)才能跑起来一个大模型。
那么,LiBai有哪些特点呢?你坐好,我要发功了。
需要详细分章介绍的优势(看上去还不错,用户也可以听得懂,也知道要干什么):
简单易用的分布式代码,单机代码和分布式代码基本一致
可以无缝使用PyTorch、HuggingFace的model权重,并且还可以在LiBai下进行多机多卡的分布式推理
开箱即用,所有的分布式并行配置(Grad Acc,AMP,Checkpointing,ZeRO,Auto Parallel)技术都只需要在config里面一键设置就可以生效,不需要在算法代码model.py中额外添加
支持模型一键转换 ONNX
我搁这儿就要介绍完的优势(看上去大家也有,很虚的帽子话),为了不让大家觉得过于虚,在介绍的同时也会插入相关的例子。
1. 具有高度灵活性和高效率,同时支持动态图eager模式和静态图graph模式,支持一键切换,在方便debug和高效性之间反复横跳。
2. 对于分布式并行的支持比较全面,大家可以在里面尽情地组合各种分布式并行的组件。
3. LiBai下面有内置的layers直接使用,避免重复造轮子,比如用LiBai下面的Linear层就