hfai.pl¶
这是一个可以自动处理 Hfai 打断信号,自动挂起任务的 checkpoint 回调函数管理类, 支持 |
|
这是一个可以自动适配到 Hfai 萤火集群的环境类, 支持 |
|
这是一个可以绑定 numa 的 ddp strategy, 支持 |
|
这是一个可以绑定 numa 的 ddp spawn strategy, 支持 |
|
这是一个可以绑定 numa、使用 hfreduce 的 ddp strategy, 支持 |
|
这是一个可以绑定 numa、使用 hfreduce 的 ddp spawn strategy, 支持 |
|
这是一个将算子转换为 hfai 算子的函数, 支持 1.5.0 <= pytorch_lightning.__version__ <= 1.7.6 |
- class hfai.pl.ModelCheckpointHF(dirpath=None, filename=None, monitor=None, verbose=False, save_last=None, save_top_k=1, save_weights_only=False, mode='min', auto_insert_metric_name=True, every_n_train_steps=None, train_time_interval=None, every_n_epochs=None, save_on_train_epoch_end=None)[source]¶
这是一个可以自动处理 Hfai 打断信号,自动挂起任务的 checkpoint 回调函数管理类, 支持
1.6.0 <= pytorch_lightning.__version__ <= 1.7.6
- Parameters
dirpath (str) – 模型文件的保存目录(默认为
None
)filename (str) – 模型文件的保存名称,例如
{epoch}-{val_loss:.2f}-{other_metric:.2f}``(默认为 ``None
)monitor (str) – 监测的指标名称(默认为
None
)verbose (bool) – 输出状态(默认为
False
)save_last (bool) – 是否保存最后一个模型文件(默认为
None
)save_top_k (int) – 保存前
k
好的模型文件,k
为0
时不保存,k
为-1
时保存所有模型文件(默认为1
)save_weights_only (bool) – 是否仅保存模型的权重(默认为
False
)mode (str) – 指标的排序方式,包括:从大到小(
max
)或者从小到大(min
),(默认为min
)auto_insert_metric_name (bool) – 是否在模型名称上自动插入指标的数值(默认为
True
)every_n_train_steps (int) – 保存模型文件的训练间隔 step 数量(默认为
None
),不能和train_time_interval
和every_n_epochs
一同使用train_time_interval (timedelta) – 保存模型文件的训练间隔时间(默认为
None
),不能和every_n_train_steps
和every_n_epochs
一同使用every_n_epochs (int) – 保存模型文件的训练间隔 epoch 数量(默认为
None
),不能和every_n_train_steps
和train_time_interval
一同使用save_on_train_epoch_end (bool) – 是否在训练 epoch 时保存模型文件(默认为
None
)
- Raises
MisconfigurationException – 如果
save_top_k
比-1``小 如果 ``monitor
不是None
同时save_top_k
不是None
、-1
、0
如果mode
不是"min"
或者"max"
ValueError – 如果
trainer.save_checkpoint
是None
Examples:
from hfai.pl import ModelCheckpointHF output_dir = 'hfai_out' checkpoint_callback = ModelCheckpointHF(dirpath=output_dir) # 第一步:定义 checkpoint_callback trainer = pytorch_lightning.Trainer( max_epochs=3, gpus=8, strategy="ddp_bind_numa", # hfai 支持 ddp_bind_numa, ddp_spawn_bind_numa, hfreduce_bind_numa, hfreduce_spawn_bind_numa plugins=[HFAIEnvironment()], callbacks=[checkpoint_callback] # 第二步:将 checkpoint_callback 输入到 trainer ) model_module = ToyNetModule() hfai_suspend_ckpt_path = f'{output_dir}/{checkpoint_callback.CHECKPOINT_NAME_SUSPEND}.ckpt' hfai_suspend_ckpt_path = hfai_suspend_ckpt_path if os.path.exists(hfai_suspend_ckpt_path) else None trainer.fit( model_module, ckpt_path=hfai_suspend_ckpt_path # 第三步:重启后载入打断前的最新模型 )
- class hfai.pl.HFAIEnvironment[source]¶
这是一个可以自动适配到 Hfai 萤火集群的环境类, 支持
1.5.0 <= pytorch_lightning.__version__ <= 1.7.6
Examples:
from hfai.pl import HFAIEnvironment trainer = pytorch_lightning.Trainer( max_epochs=3, gpus=8, strategy="ddp_bind_numa", # hfai 支持 ddp_bind_numa, ddp_spawn_bind_numa, hfreduce_bind_numa, hfreduce_spawn_bind_numa plugins=[HFAIEnvironment()] # 定义 Hfai 环境并作为插件输入 ) model_module = ToyNetModule() trainer.fit( model_module )
- class hfai.pl.DDPStrategyBindNuma(accelerator=None, parallel_devices=None, cluster_environment=None, checkpoint_io=None, precision_plugin=None, ddp_comm_state=None, ddp_comm_hook=None, ddp_comm_wrapper=None, model_averaging_period=None, process_group_backend=None, timeout=datetime.timedelta(seconds=1800), **kwargs)[source]¶
这是一个可以绑定 numa 的 ddp strategy, 支持
1.6.0 <= pytorch_lightning.__version__ <= 1.7.6
Examples:
from hfai.pl import HFAIEnvironment trainer = pytorch_lightning.Trainer( max_epochs=3, gpus=8, strategy="ddp_bind_numa", # hfai 支持 ddp_bind_numa, ddp_spawn_bind_numa, hfreduce_bind_numa, hfreduce_spawn_bind_numa plugins=[HFAIEnvironment()] # 定义 Hfai 环境并作为插件输入 ) model_module = ToyNetModule() trainer.fit( model_module )
- class hfai.pl.DDPSpawnStrategyBindNuma(accelerator=None, parallel_devices=None, cluster_environment=None, checkpoint_io=None, precision_plugin=None, ddp_comm_state=None, ddp_comm_hook=None, ddp_comm_wrapper=None, process_group_backend=None, timeout=datetime.timedelta(seconds=1800), start_method='spawn', **kwargs)[source]¶
这是一个可以绑定 numa 的 ddp spawn strategy, 支持
1.6.0 <= pytorch_lightning.__version__ <= 1.7.6
Examples:
from hfai.pl import HFAIEnvironment trainer = pytorch_lightning.Trainer( max_epochs=3, gpus=8, strategy="ddp_spawn_bind_numa", # hfai 支持 ddp_bind_numa, ddp_spawn_bind_numa, hfreduce_bind_numa, hfreduce_spawn_bind_numa plugins=[HFAIEnvironment()] # 定义 Hfai 环境并作为插件输入 ) model_module = ToyNetModule() trainer.fit( model_module )
- class hfai.pl.HFReduceStrategyBindNuma(accelerator=None, parallel_devices=None, cluster_environment=None, checkpoint_io=None, precision_plugin=None, ddp_comm_state=None, ddp_comm_hook=None, ddp_comm_wrapper=None, model_averaging_period=None, process_group_backend=None, timeout=datetime.timedelta(seconds=1800), **kwargs)[source]¶
这是一个可以绑定 numa、使用 hfreduce 的 ddp strategy, 支持
1.6.0 <= pytorch_lightning.__version__ <= 1.7.6
Examples:
from hfai.pl import HFAIEnvironment trainer = pytorch_lightning.Trainer( max_epochs=3, gpus=8, strategy="hfreduce_bind_numa", # hfai 支持 ddp_bind_numa, ddp_spawn_bind_numa, hfreduce_bind_numa, hfreduce_spawn_bind_numa plugins=[HFAIEnvironment()] # 定义 Hfai 环境并作为插件输入 ) model_module = ToyNetModule() trainer.fit( model_module )
- class hfai.pl.HFReduceSpawnStrategyBindNuma(accelerator=None, parallel_devices=None, cluster_environment=None, checkpoint_io=None, precision_plugin=None, ddp_comm_state=None, ddp_comm_hook=None, ddp_comm_wrapper=None, process_group_backend=None, timeout=datetime.timedelta(seconds=1800), start_method='spawn', **kwargs)[source]¶
这是一个可以绑定 numa、使用 hfreduce 的 ddp spawn strategy, 支持
1.6.0 <= pytorch_lightning.__version__ <= 1.7.6
Examples:
from hfai.pl import HFAIEnvironment trainer = pytorch_lightning.Trainer( max_epochs=3, gpus=8, strategy="hfreduce_spawn_bind_numa", # hfai 支持 ddp_bind_numa, ddp_spawn_bind_numa, hfreduce_bind_numa, hfreduce_spawn_bind_numa plugins=[HFAIEnvironment()] # 定义 Hfai 环境并作为插件输入 ) model_module = ToyNetModule() trainer.fit( model_module )
- hfai.pl.nn_to_hfai(lightningmodule)[source]¶
这是一个将算子转换为 hfai 算子的函数, 支持 1.5.0 <= pytorch_lightning.__version__ <= 1.7.6
- Parameters
lightningmodule (pytorch_lightning.LightningModule) – 用于训练的 pytorch_lightning 模型类
- Returns
算子转换为 hfai 算子后的 pytorch_lightning 模型类
- Return type
lightningmodule (pytorch_lightning.LightningModule)
from hfai.pl import nn_to_hfai trainer = pytorch_lightning.Trainer( max_epochs=3, gpus=8, strategy="ddp_bind_numa", # hfai 支持 ddp_bind_numa, ddp_spawn_bind_numa, hfreduce_bind_numa, hfreduce_spawn_bind_numa plugins=[HFAIEnvironment()] # 定义 Hfai 环境并作为插件输入 ) model_module = nn_to_hfai(ToyNetModule()) # 将算子转换为 hfai 算子 trainer.fit( model_module )