前几节,我们介绍了推理和训练的大致过程,以及训练过程中要用损失函数来作为评判预测值和真实值差距的标准。
在很多时候,一个神经网络从开始训练到训练完成是要经过很长的时间的,这是因为模型需要不断的校正自己学习到的参数,直到最终loss值降为0。
如果一轮迭代训练耗时增加一分钟,那么1万轮迭代可能会增加更多的时间,而实际上很多大型的模型训练迭代次数可能要远高于这个轮次。
所以说一个模型的性能在训练过程中会显得很重要。
有一个故事,据说 OpenAI 在训练初代GPT的时候,专门派了几个工程师在电脑旁值守。
因为当时的GPU性能并没有那么好,导致训练时间被拉的很长,再加上 GPT 模型参数量巨大,因此如果训练过程出了任何一个问题,导致程序崩溃,需要从头再来的话,花费的代价是很大的。
而雇佣几个工程师在电脑旁值守,一旦发现问题就及时保存当时学习到的参数,然后下一次训练时可以从这个保存点继续往后训练,可以大大节省训练成本。
神经网络运行的性能不光对训练重要,对推理过程也是一样。
一个常用的场景是,如果我们用GPT来对话,我们输入一句话,GPT 返回给我们一句话,这个过程就是一次推理。
如果这个过程耗时很长,用户体验就会很差,我们很可能就不会等待,也就不会再使用这个模型了。
像是工业场景中对于极致性能的要求就更加严苛,比如自动驾驶中汽车识别图像需要做到微妙级甚至更低的一个推理延时。
推理框架
为了提高神经网络推理的性能
本文探讨了神经网络训练和推理的性能重要性,尤其在大型模型和实时应用中的挑战。讲述了OpenAI在训练GPT时遇到的问题,强调了优化神经网络运行性能的必要性。推理框架如TVM、MLIR和PyTorch通过消除冗余和生成硬件优化代码,提升效率。作者指出,深度学习编译器是AI性能优化的关键领域,对于入门者,理解其基本概念和工作原理至关重要。
订阅专栏 解锁全文
1849

被折叠的 条评论
为什么被折叠?



