在 GitHub 上编辑
Hugging Face Accelerate
DVCLive 使您能够为您的 Hugging Face Accelerate 项目添加实验跟踪功能。
用法
如果您已安装 dvclive
,则 DVCLive Tracker
将用于跟踪实验并记录指标、参数和图表,适用于 accelerate>=0.25.0
。与 Hugging Face Transformers 回调 不同,您必须明确指定要记录的内容。以下代码片段展示了一个完整示例:
from accelerate import Accelerator
# optional, `log_with` defaults to "all"
accelerator = Accelerator(log_with="dvclive")
# log hyperparameters
hps = {"num_iterations": 5, "learning_rate": 1e-2}
accelerator.init_trackers("my_project", config=hps)
# log metrics
accelerator.log({"train_loss": 1.12, "valid_loss": 0.8})
# log model
accelerator.save_state("checkpoint_dir")
if accelerator.is_main_process:
live = accelerator.get_tracker("dvclive", unwrap=True)
live.log_artifact("checkpoint_dir")
# end logging
accelerator.end_training()
初始化
from accelerate import Accelerator
# optional, `log_with` defaults to "all"
accelerator = Accelerator(log_with="dvclive")
accelerator.init_trackers(project_name="my_project")
要自定义跟踪行为,请使用 init_kwargs
向 Live
实例传递参数,例如:
accelerator.init_trackers(
project_name="my_project",
init_kwargs={"dvclive": {"dir": "my_directory"}}
)
记录参数
要记录超参数,请使用 config
添加,例如:
hps = {"num_iterations": 5, "learning_rate": 1e-2}
accelerator.init_trackers("my_project", config=hps)
记录指标
要记录指标:
accelerator.log({"train_loss": 1.12, "valid_loss": 0.8})
可选地传递步数(若未传递,将自动递增):
accelerator.log({"train_loss": 1.12, "valid_loss": 0.8}, step=1)
额外记录
要记录模型、其他工件或图像,请从跟踪器中获取 Live
实例:
accelerator.save_state("checkpoint_dir")
if accelerator.is_main_process:
live = accelerator.get_tracker("dvclive", unwrap=True)
live.log_artifact("checkpoint_dir")
accelerator.is_main_process
确保仅在主进程中调用。上述其他方法中,Accelerate 的 Tracker
会自动处理此逻辑,但在此示例中我们直接调用了 Live
。
unwrap=True
将返回 Live
实例而非 Tracker
,以便您可以调用任何 Live
方法。
结束
最后,结束实验以触发 Live.end()
:
accelerator.end_training()