微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

最大序列长度对Grover的影响

如何解决最大序列长度对Grover的影响

一直在研究grover model of rowanz。我能够在4个批处理量上训练grover的大型模型,但是在微调大型模型时遇到内存分配错误,然后将批处理量减小到1,并且训练正在进行。我还尝试将max_seq_length减小为512并将batch_size设置为4,并且可以正常工作。

我的问题是,什么参数对减少批量大小或减小max_seq_length的性能会有更多影响?

我还可以设置max_seq_length的值,而不是2的幂,例如512和1024之间的某个值吗?

解决方法

我的问题是什么参数会对性能产生更大影响 减小批次大小或减小max_seq_length?

批量大小的影响:

  1. 性能方面:无。这是一个很大的误解,认为批次大小会以任何方式影响最终指标(例如准确性)。尽管更好的批处理量意味着在较短的时间间隔上报告指标,但会产生比实际情况大得多的变化。由于明显的原因,在批量大小= 1的情况下效果非常明显。由于在多个数据点上计算指标时,较大的批次大小倾向于报告度量的较高准确性。最终指标通常是相同的(考虑到权重的随机初始化)。
  2. 关于效率:批量大小越大,表示度量标准的计算频率越低,但同时由于在按批大小的多个数据点上聚合度量标准,内存中的空间却更多。您面临的同一问题。因此,批量大小比性能问题更关注效率。此外,您要多久检查一次模型的输出。

max_seq_length的影响:

  1. 关于性能:可能是基于语言的模型(例如Grover)的性能的最重要指标。其背后的原因是人类手写文本的困惑度低于随机采样的文本,并且这种差距随着序列长度的增加而增加。通常,序列长度越长,语言模型就越容易在输出的整个过程中保持一致。是的,它确实有助于模型性能。但是,您可能需要查看特定模型的文档,以了解序列长度的“金锁区”,以及是否比2的幂更有序。

  2. 关于效率:更大的序列大小当然需要更多的处理能力和计算内存,因此,序列长度越长,您将需要的功率就越大。

我还能设置除2的幂以外的max_seq_length的值 例如512到1024之间的某个值?

是的,为什么不呢?没有模型设计为使用一组固定的值。折磨不同的序列长度,然后看哪个最适合您。由于其简单的二进制表示形式,将某些参数以2的幂进行调整已成为一种经典做法,因为它具有简单的二进制表示形式,但在计算上却有一点优势,但是对于今天的大型模型而言,可以忽略不计。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?