1、动态图与静态图的优缺点是什么?其各自的适应场景是怎样的? 2、线上推理引擎,单台机器内存无法容纳大模型,分布式方法有哪些?有什么优缺点?
NVIDIA 中国区HPC/DL 解决方案架构师程帅:
动态图的优点就是可以及时的获取到当前操作的一些tensor的信息,这样对于像做research或者说是调试相对来说是比较容易的。但是静态图的话,它其实是通过预先构建一个图,然后通过编译再形成这个图的反向以及优化的一些节点,其实在构建图的这个过程中是不可见的。若用户想去提bug,特别是前期及时的获取一些节点的信息,相对来说是比较麻烦一点。静态图的优点就是因为是预先定义好的,就像预先编译好的,它训练的性能相对的动态图来讲,理论性能会要高一些,你可以简单的理解成Python跟C++它们两者之间的易用性和速度上面的一个优缺点。
对于大规模分类算法,比如说最后1层分类,可以把这个参数拆解到多个卡里面。如果像类似于SG这种计算,可以把一个矩阵层分配成为多个矩阵层,然后再拼接这个操作。那后来对于多个矩阵层,每个矩阵层都可以在各自的卡上面去做,然后拼接或者说是后续的计算,可以通过分支或者是直接计算,然后把计算结果汇总再进行后续的一些计算。