前几节,我们介绍了推理和训练的大致过程,以及训练过程中要用损失函数来作为评判预测值和真实值差距的标准。
在很多时候,一个神经网络从开始训练到训练完成是要经过很长的时间的,这是因为模型需要不断的校正自己学习到的参数,直到最终loss值降为0。
如果一轮迭代训练耗时增加一分钟,那么1万轮迭代可能会增加更多的时间,而实际上很多大型的模型训练迭代次数可能要远高于这个轮次。
所以说一个模型的性能在训练过程中会显得很重要。
有一个故事,据说 OpenAI 在训练初代GPT的时候,专门派了几个工程师在电脑旁值守。
因为当时的GPU性能并没有那么好,导致训练时间被拉的很长,再加上 GPT 模型参数量巨大,因此如果训练过程出了任何一个问题,导致程序崩溃,需要从头再来的话,花费的代价是很大的。
而雇佣几个工程师在电脑旁值守,一旦发现问题就及时保存当时学习到的参数,然后下一次训练时可以从这个保存点继续往后训练,可以大大节省训练成本。
神经网络运行的性能不光对训练重要,对推理过程也是一样。
一个常用的场景是,如果我们用GPT来对话,我们输入一句话,GPT 返回给我们一句话,这个过程就是一次推理。<