程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了通过将数据集分成块并再次加载模型,直到训练完数据集的所有块,在整个数据集上训练模型大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决通过将数据集分成块并再次加载模型,直到训练完数据集的所有块,在整个数据集上训练模型?

开发过程中遇到通过将数据集分成块并再次加载模型,直到训练完数据集的所有块,在整个数据集上训练模型的问题如何解决?下面主要结合日常开发的经验,给出你关于通过将数据集分成块并再次加载模型,直到训练完数据集的所有块,在整个数据集上训练模型的解决方法建议,希望对你解决通过将数据集分成块并再次加载模型,直到训练完数据集的所有块,在整个数据集上训练模型有所启发或帮助; @H_403_0@这是我关于 StackOverflow 的第一个问题。我正在研究 cuaD(合同理解 Atticus 数据集),这是一个基于问答的数据集。但是由于资源限制,一次训练 80% 的数据集是不可能的。我将 HuggingFace transformer 文档提供的样板代码用于问答任务 here。我的双手被 Google Colab Pro 束缚住了。因此,我不可能在训练数据集时使用多个 GPU。尽管使用了下面的超参数,但由于“CUDA 内存不足”等内存限制,我无法避免错误。

args = TrainingArguments(
    'cuad-roberta',evaluation_strategy = "epoch",learning_rate=3e-5,per_device_Train_batch_size=2,per_device_eval_batch_size=2,num_Train_epochs=2,weight_decay=0.01,save_steps=5000,logging_steps=5000,save_@R_74_10586@l_limit=100,gradIEnt_accumulation_steps = 12,eval_accumulation_steps = 4,)
@H_403_0@在这种情况下,我将我的训练集(80%)分成了 4 部分,每部分包含 25% 的数据。因此,使用 transformers 中任何支持问答的预训练模型,我已经训练了前 25% 的训练数据,然后将模型保存在我的驱动器目录中。然后,我从保存的目录中加载了该分词器和模型,并在相同的模型上训练了接下来的 25% 的训练数据,如下所示。

tokenizer = autoTokenizer.from_preTrained('/content/drive/MyDrive/models/cuad-25%-roberta-base')
model = autoModelForQuestionAnswering.from_preTrained('/content/drive/MyDrive/models/cuad-25%-roberta-base')
@H_403_0@我又重复了两次该步骤以完成对整个训练数据的模型训练。

@H_403_0@现在,我的问题是,当我有资源限制时,这种方法在训练模型方面是否正确?如果正确,这种方法会损害我模型的性能吗?我对 ML 和 NLP 比较陌生,所以请虑任何愚蠢的错误。

@H_403_0@此外,任何通过 HuggingFace transformers 理解、可视化或实施问答任务的来源都会非常有帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的通过将数据集分成块并再次加载模型,直到训练完数据集的所有块,在整个数据集上训练模型全部内容,希望文章能够帮你解决通过将数据集分成块并再次加载模型,直到训练完数据集的所有块,在整个数据集上训练模型所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。