我的设置
我为 ML 实验开发了一个环境,如下所示:使用 SageMaker 训练作业在 AWS 云中进行训练。训练后的模型存储在/opt/ml/model
目录中,该目录由 SageMaker 保留,用于将模型打包为.tar.gz
SageMaker 自己的 S3 存储桶中。在训练和测试期间计算几个评估指标,并记录到由基于 S3 的工件存储组成的 MLflow 基础架构(参见场景 4)。请注意,这是与 SageMaker 不同的 S3 存储桶。
MLflow 的一个非常有用的功能是任何模型工件都可以记录到训练运行中,因此数据科学家可以通过 UI 访问指标和更复杂的输出。这些输出包括(但不限于)训练模型本身。
一个限制是,据我了解,用于记录工件的 MLflow API仅接受工件本身的本地路径作为输入,并将始终将其上传到其工件存储。当工件存储在 MLflow 之外的某个地方时,这是次优的,因为您必须将它们存储两次。一个变压器模型的重量可能超过 1GB。
我的问题
- 有没有办法将 S3 路径传递给 MLflow 并将其视为工件,而无需先在本地下载它?
- 有没有办法避免将工件的副本推送到工件商店?如果我的工件已经位于另一个远程位置,那么理想的做法是在 MLflow 中仅具有指向该位置的链接,而不是 MLflow 存储中的副本。