很多人都知道大模型的架构,但是不知道大模型是如何训练的,所以我们需要对大模有更加定量的认知。现在的大模型所需内存太大,单机装不下,所以就需要分布式训练模型,而MapReduce就是分布式架构的鼻祖。

什么是Map与Reduce?

Map的核心是分解。想象一下有一辆红色的轿车,一队工人合力将它拆解成单个零件,这个过程我们就称之为Map。

Reduce的核心是组合。比如我们拥有一堆汽车零件,以及众多不同种类的装置零件,将这些零件巧妙地组装起来,最终形成了一个变形金刚,这就是Reduce的过程。

什么是MapReduce?

MapReduce 从宏观角度来看,MapReduce可以这样形象地理解:

  • Input:假设你拥有一大批各式各样的食材,包括蔬菜、水果和面包
  • Split:有一群厨师主动领取这些食材
  • Map:每位厨师对不同的食材进行切割处理
  • Shuffle:切割完成后,将这些食材分配到不同的冷藏设备中
  • Reduce:存放完毕后,根据顾客的具体需求,将这些食材加工成最终的成品
  • Finalize:成品完成后放置在顾客面前供其付费

因此,MapReduce包含了上述的六个关键阶段。

例1:如何统计1TB文件里单词的出现次数呢?

我们输入(Input)很多文档,我们将这些文档分配(Split)到不同的机器上,文档的每一行有很多不同的单词,每一行文档就切分(map)成单词和它出现的次数,接下来将单词进一步整理(Shuffle算法来定),把相同的数据放一起,然后(Reduce)计算每个单词共有多少个,最终(Finalize)将结果汇总,统计每个单词出现了多少次。

例2:怎么查找一个单词在多篇文档中出现的位置?

思路其实一样,只不过这里我们要存的是单词对应的文档编号,而不是单词出现的次数。

本质

MapReduce本质就是分治法。随着大模型越来越大,现在大模型算法工程师必须掌握分布式训练框架,才能让你的大模型更好的run起来。

在这里插入图片描述

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐