Hey @brando, you are correct to set report_to='wandb'
in your training args. You mentioned that you are curious to see how to load the config into the standard HFParser Arguments. Here is an example of setting up a config, training arguments, and a trainer to run a sweep:
sweep_config = {
"method": "random",
"name": "disaster-sweep",
"metric": {
"goal": "minimize",
"name": "train/loss"
},
"parameters": {
"epochs": {
"values": [5, 10]
},
"batch_size": {
"values": [8, 16, 32, 64]
},
"learning_rate": {
"values": [0.005, 0.0001, 0.00005]
},
"weight_decay": {
"values": [0.0001, 0.1]
}
}
}
# Training function with args
def train(config=None):
with wandb.init(config=config):
# set sweep configuration
config = wandb.config
# set training arguments
training_args = TrainingArguments(
output_dir='./results',
report_to='wandb', # Turn on Weights & Biases logging
num_train_epochs=config.epochs,
learning_rate=config.learning_rate,
weight_decay=config.weight_decay,
per_device_train_batch_size=config.batch_size,
per_device_eval_batch_size=config.batch_size,
save_strategy='epoch',
evaluation_strategy='epoch',
logging_strategy='epoch',
load_best_model_at_end=True,
remove_unused_columns=False,
)
# define training loop
trainer = Trainer(
model=model,
args=training_args,
train_dataset=train_dataset,
eval_dataset=valid_dataset,
compute_metrics=compute_metrics
)
# start training loop
trainer.train()
sweep_id = wandb.sweep(sweep_config, project='fun-sweep')
wandb.agent(sweep_id, train, count=10)