向 Trains 服务器报告的弹性如何?
How resilient is reporting to Trains server?
在以下情况下,Trains 如何将任何缺失的数据发送到服务器?
- 在 运行 进行实验时互联网连接暂时中断
- 互联网连接中断并且在实验结束前不会恢复(是否有任何手动方式发送所有丢失的数据?)
- 机器运行训练服务器在实验中重置
免责声明:我是 allegro.ai 培训团队的一员
- 列车将自动重试发送日志,基本上永远如此。 logs/metrics 在后台线程中发送,因此它不应干扰执行。您可以通过调整
~/trains.conf
文件中的 sdk.network.iteration.retry_backoff_factor_sec
参数来设置退避参数,以控制重试频率,请参见示例 here
- 实验将尝试在实验结束时将所有指标刷新到后端,即该过程将等待 at_exit 直到发送完所有指标。这意味着如果连接断开,它将重试直到再次连接。如果实验被手动中止,则无法 capture/resend 那些丢失的指标报告。也就是说,新的 0.16 版本引入了离线模式。这样就可以 运行 整个离线实验,然后再报告所有 logs/metrics/工件。
- Trains-Server 机器是完全无状态的(状态本身存储在机器上的数据库中)这意味着从实验的角度来看,连接断开几分钟,然后又可用。对于你的问题,如果 Trains-Server 重新启动,它对所有实验都是透明的,并且它们照常进行,不会丢失任何报告。
在以下情况下,Trains 如何将任何缺失的数据发送到服务器?
- 在 运行 进行实验时互联网连接暂时中断
- 互联网连接中断并且在实验结束前不会恢复(是否有任何手动方式发送所有丢失的数据?)
- 机器运行训练服务器在实验中重置
免责声明:我是 allegro.ai 培训团队的一员
- 列车将自动重试发送日志,基本上永远如此。 logs/metrics 在后台线程中发送,因此它不应干扰执行。您可以通过调整
~/trains.conf
文件中的sdk.network.iteration.retry_backoff_factor_sec
参数来设置退避参数,以控制重试频率,请参见示例 here - 实验将尝试在实验结束时将所有指标刷新到后端,即该过程将等待 at_exit 直到发送完所有指标。这意味着如果连接断开,它将重试直到再次连接。如果实验被手动中止,则无法 capture/resend 那些丢失的指标报告。也就是说,新的 0.16 版本引入了离线模式。这样就可以 运行 整个离线实验,然后再报告所有 logs/metrics/工件。
- Trains-Server 机器是完全无状态的(状态本身存储在机器上的数据库中)这意味着从实验的角度来看,连接断开几分钟,然后又可用。对于你的问题,如果 Trains-Server 重新启动,它对所有实验都是透明的,并且它们照常进行,不会丢失任何报告。