【问题标题】:Effect of max sequence length on Grover最大序列长度对 Grover 的影响
【发布时间】:2020-10-19 07:01:36
【问题描述】:

一直致力于grover model of rowanz 。我能够在 4 个批量大小上训练 grover 的大型模型,但是在微调大型模型时出现内存分配错误,然后我将批量大小减少到 1,训练现在正在进行中。我还尝试将 max_seq_length 减少到 512 并将 batch_size 设置为 4 并且它正在工作。

我的问题是哪个参数对减少批量大小或减少 max_seq_length 的性能影响更大?

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

【问题讨论】:

    标签: python text deep-learning nlp grover


    【解决方案1】:

    我的问题是哪个参数对性能的影响更大 减小batch size还是减小max_seq_length?

    批量大小的影响:

    1. 关于性能:无。批量大小以任何方式影响最终指标(例如准确性)是一个很大的误解。虽然更精细的批量大小意味着以更短的时间间隔报告指标,但会产生比实际更大的可变性的错觉。由于显而易见的原因,在批量大小 = 1 的情况下效果非常明显。较大的批量往往会报告更高的指标准确性,因为它们是在多个数据点上计算的。最终指标通常相同(考虑到权重的随机初始化)。
    2. 关于效率:较大的批量大小意味着计算指标的频率较低,但同时内存中的空间更大,同时根据批量大小在多个数据点上聚合指标。你面临的同样的问题。因此,批量大小更多的是效率问题,而不是性能问题。此外,您希望多久检查一次模型的输出。

    max_seq_length 的影响:

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

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

    我也可以设置 max_seq_length 的值而不是 2 的幂 喜欢 512 到 1024 之间的某个值?

    是的,为什么不呢?没有模型被设计为使用一组固定的值。尝试不同的序列长度,看看哪个最适合你。以 2 的幂次方调整一些参数一直是一种经典做法,因为它们具有简单的二进制表示,但在今天的大型模型中可以忽略不计。

    【讨论】:

    • 非常感谢您的详细回答,但如果您能提供帮助,我还有一个疑问?我可以设置 max_seq_length 值而不是 2 的幂,比如 512 和 1024 之间的任何值吗?
    猜你喜欢
    • 2021-12-11
    • 2019-01-04
    • 2010-12-25
    • 2020-02-18
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    相关资源
    最近更新 更多