向 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 重新启动,它对所有实验都是透明的,并且它们照常进行,不会丢失任何报告。