Huggingface Trainer 的 Wandb 网站仅显示第一个模型的图和日志
Wandb website for Huggingface Trainer shows plots and logs only for the first model
我正在使用 for 循环微调多个模型,如下所示。
for file in os.listdir(args.data_dir):
finetune(args, file)
但是 wandb
网站仅显示第一个文件的绘图和日志,即 data_dir
中的 file1
,尽管它正在为其他文件训练和保存模型。感觉很奇怪的行为。
wandb: Synced bertweet-base-finetuned-file1: https://wandb.ai/***/huggingface/runs/***
这是一小段微调代码,带有 Huggingface:
def finetune(args, file):
training_args = TrainingArguments(
output_dir=f'{model_name}-finetuned-{file}',
overwrite_output_dir=True,
evaluation_strategy='no',
num_train_epochs=args.epochs,
learning_rate=args.lr,
weight_decay=args.decay,
per_device_train_batch_size=args.batch_size,
per_device_eval_batch_size=args.batch_size,
fp16=True, # mixed-precision training to boost speed
save_strategy='no',
seed=args.seed,
dataloader_num_workers=4,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=tokenized_dataset['train'],
eval_dataset=None,
data_collator=data_collator,
)
trainer.train()
trainer.save_model()
嘿,我在 Weights & Biases 工作。我的第一个猜测是您必须在 finetune
函数的末尾调用 wandb.finish()
。这将关闭 wandb 进程。然后,当您开始新的迭代时,应该启动一个新的 wandb 进程。
如果您想在训练器中记录 W&B 集成未记录的其他配置数据,您可以在开始训练之前随时调用 wandb.init
,请参阅 wandb.init docs here 并登录到那。 Trainer 应该知道已经有一个 wandb 进程 运行,因此将只记录到该进程,而不是启动一个新进程。
def finetune():
config = {'my-config-thing1':44, 'my-config-thing12':'cats'}
wandb.init(project='my-project-name', config=config, ...)
.... # Your Hugging Face code here
wandb.finish()
wandb.init(reinit=True)
和 run.finish()
帮助我在 wandb 网站上 分别 记录模型。
工作代码如下所示:
for file in os.listdir(args.data_dir):
finetune(args, file)
import wandb
def finetune(args, file):
run = wandb.init(reinit=True)
...
run.finish()
参考:https://docs.wandb.ai/guides/track/launch#how-do-i-launch-multiple-runs-from-one-script
我正在使用 for 循环微调多个模型,如下所示。
for file in os.listdir(args.data_dir):
finetune(args, file)
但是 wandb
网站仅显示第一个文件的绘图和日志,即 data_dir
中的 file1
,尽管它正在为其他文件训练和保存模型。感觉很奇怪的行为。
wandb: Synced bertweet-base-finetuned-file1: https://wandb.ai/***/huggingface/runs/***
这是一小段微调代码,带有 Huggingface:
def finetune(args, file):
training_args = TrainingArguments(
output_dir=f'{model_name}-finetuned-{file}',
overwrite_output_dir=True,
evaluation_strategy='no',
num_train_epochs=args.epochs,
learning_rate=args.lr,
weight_decay=args.decay,
per_device_train_batch_size=args.batch_size,
per_device_eval_batch_size=args.batch_size,
fp16=True, # mixed-precision training to boost speed
save_strategy='no',
seed=args.seed,
dataloader_num_workers=4,
)
trainer = Trainer(
model=model,
args=training_args,
train_dataset=tokenized_dataset['train'],
eval_dataset=None,
data_collator=data_collator,
)
trainer.train()
trainer.save_model()
嘿,我在 Weights & Biases 工作。我的第一个猜测是您必须在 finetune
函数的末尾调用 wandb.finish()
。这将关闭 wandb 进程。然后,当您开始新的迭代时,应该启动一个新的 wandb 进程。
如果您想在训练器中记录 W&B 集成未记录的其他配置数据,您可以在开始训练之前随时调用 wandb.init
,请参阅 wandb.init docs here 并登录到那。 Trainer 应该知道已经有一个 wandb 进程 运行,因此将只记录到该进程,而不是启动一个新进程。
def finetune():
config = {'my-config-thing1':44, 'my-config-thing12':'cats'}
wandb.init(project='my-project-name', config=config, ...)
.... # Your Hugging Face code here
wandb.finish()
wandb.init(reinit=True)
和 run.finish()
帮助我在 wandb 网站上 分别 记录模型。
工作代码如下所示:
for file in os.listdir(args.data_dir):
finetune(args, file)
import wandb
def finetune(args, file):
run = wandb.init(reinit=True)
...
run.finish()
参考:https://docs.wandb.ai/guides/track/launch#how-do-i-launch-multiple-runs-from-one-script