如何在变形金刚训练器运行中禁用海王星回调?

问题描述 投票:0回答:3

安装Neptune.ai用于偶尔的ML实验日志记录后,它默认包含在所有transformers.trainer运行的回调列表中。因此,它需要使用令牌进行正确的初始化,否则会抛出

NeptuneMissingConfiguration
错误,要求令牌和项目名称。 这真的很烦人,我更喜欢海王星回调将其自身限制为警告,或者如果没有提供令牌则将其禁用。 不幸的是,除了完全卸载 Neptune.ai 之外,没有明显的方法可以禁用此回调。 https://huggingface.co/docs/transformers/main_classes/callback的文档页面指出此回调默认启用,并且无法禁用它(与可以通过环境变量禁用的其他一些回调不同)。

问题:如何在每次运行的基础上禁用 Neptune 回调?

python pytorch callback huggingface-transformers neptune
3个回答
0
投票

显然

trainer
初始化后的这段代码有帮助:

for cb in trainer.callback_handler.callbacks:
    if isinstance(cb, transformers.integrations.NeptuneCallback):
        trainer.callback_handler.remove_callback(cb)

如果 Transformers 或 Neptune 团队通过此回调提供更多灵活性,那就太好了。


0
投票

包含 Neptune 的原因是因为

report_to
TrainingArguments
的默认值为
all
,它隐式包含官方支持的记录器列表中所有已安装的记录器。您应该从项目使用的环境中卸载 Neptune,或者将
report_to="none"
传递给用于初始化
TrainingArguments
Trainer
实例(注意:这是字符串文字
"none"
,而不是 Python
None
) )

这里的其他答案,包括已接受的答案,要么是这个问题的糟糕解决方法,要么根本不起作用。处理这个问题的正确方法如上所述。


-1
投票

要在 Transformers 训练器运行中禁用 Neptune 回调,您可以将 --no-neptune 标志传递给 trainer.train() 函数。

trainer = Trainer(
    model=model,
    args=args,
    train_dataset=train_dataset,
    eval_dataset=eval_dataset,
    no_neptune=True
)
trainer.train()
© www.soinside.com 2019 - 2024. All rights reserved.