大模型的超参数是做什么用的 什么是超参数 超参数和大模型参数有什么相关
“ 超参数是指由开发者设置的参数,而不是由模型训练失掉的参数”
对了解过机器学习模型的人来说,应该都知道模型训练的环节就是始终调整模型参数的环节。调整模式就是经过正反向流传以及损失差的计算和提升器对参数启动调整,疑问得可以看一下文章大模型的参数什么。
而超参数又是什么呢?当天就来引见一下超参数。
01、什么是超参数?
用一句话来说,超参数就是模型开发者设置的参数,而不是由模型经过训练学习到的参数。
怎样了解这句话呢?
先来说一下模型的参数,如今说大模型都是有多少多少参数,比如chatGLM-6B就是具备六十多亿参数的模型,而chatGPT4传说有一百多万亿个参数。
而咱们平时说的大模型的大就是指参数量大,从试验结果来看参数量越大成果越好。因此,如今很多大企业开发大模型都在谋求大参数量模型。比如,openAI,谷歌,meta和国际的阿里,百度等企业。
而模型参数指的是神经网络的参数,是可以经过训练数据训练调整的参数,最典型的两个就是权重(W)和偏置(B),这些参数值刚开局是随机初始化,而后经过训练数据始终的调整,最后取得一个最优解。
那超参数又是什么?
如今再来看扫尾那句话应该就明确了,模型参数是可以训练失掉的;但有些参数是须要开发者设定的,而后又不能经过训练取得,这部分参数就是超参数,超也可以了解为人为设置的意思。
超参数有哪些?
超参数其实也有很多,依据不同的模型架构设计,超参数也会有所不同;但经常出现的超参数有训练次数(epochs),批次大小(batch_size),学习率(lr),暗藏层数量和大小(暗藏层数量是指神经网络的层数,大小是指每层神经网络的神经元数量,详细可以看神经网络外部原了解析),损失函数,提升器,以及正则化参数,摈弃率等都属于超参数。
02、超参数的作用是什么?
前面引见了超参数以及经常出现的超参数,这里就来引见一下超参数的作用。
便捷来说,超参数的作用就是怎样训练模型,以及怎样把模型训练的更好,详细来说就是模型的功能和泛化才干。
就拿训练次数——epochs来说,这个参数的作用是模型在数据集上训练多少次。
举例来说,咱们上学时一章新内容或标题,教员基本上都会讲好几遍,这个好几遍就是epochs。epochs详细的值依据不同的网络模型,以及训练数据会有所不同,大部分都是在10到几百之间。
而批次大小参数——batch_size的作用就是,训练时每次加载多少数据,普通是8的倍数。batch_size值越大,训练的批次数越少,梯度降低越快,但对配件要求会更高,误差也或者会更大。
模型训练代码,超参数设置简略代码
# 设置训练网络的参数# 记载训练次数total_train_step = 0# 记载测试次数total_test_step = 0# 训练的轮数epoch = 10for i in range(epoch):print("第{}轮训练开局".format(i+1))for>
学习率——lr是降级权重时的步长,它影响着指标函数能否能收敛到部分最小;学习率大或者会造成损失震荡,甚至是不可拟合。
而学习率太小又或者会造成过拟合,收敛速渡过慢的疑问。所谓的震荡就是损失函数的值或者不是缓缓减小,而是一会大一会小。
如果你在训练的时刻发现损失值产生这种现象,那么就是学习率设置有疑问。
普通状况下,学习率都是设置一个灵活值,比如训练开局时学习率比拟大,随着训练缓缓减小。
而暗藏层的数量和大小,代表着神经网络的笼统才干,越多的层数和神经元就能表征更复杂的场景,但过多的暗藏层也会造成神经元过于复杂以及过拟合的疑问。
损失函数和提升器又会影响到模型训练的结果以及提升成果。
因此,超参数也须要依据不同的模型架构设计一个正当的参数值,并且在适合的机遇启动适当的调整。
原文链接: