如何使用 gitlab 缓存来存储 ML 管道的模型权重?

How to use gitlab cache to store model weights for an ML pipeline?

我正在使用 gitlab 来托管 python-机器学习管道。管道包括一些我不想存储在 git 中的模型的训练权重。权重存储在管道在 运行 执行其作业时自动提取的一些远程数据存储中。

这行得通,但是我在使用此设置尝试 运行 一些端到端自动 CI 测试时遇到问题。我不想每次触发我的 CI 时都从远程下载模型权重(因为这会变得很昂贵)。事实上,出于安全原因,我想在所有 CI 测试中完全屏蔽我的互联网连接(例如通过在我的 conftest.py 中配置套接字)。

如果我这样做,显然我无法访问存储我的模型权重的位置。我知道我可以模拟模型的结果进行测试,但我实际上想测试模型的权重是否合理。所以嘲笑是不可能的。

我发布了一个 我得到的解决方案之一是利用 gitlab 的缓存机制来存储模型权重。

但是,我不知道该怎么做。根据我对缓存的理解,如果我启用它,gitlab 将从互联网下载必要的文件一次,并在以后的管道中重用它们。但是,我正在寻找的解决方案看起来像这样 -

这个问题有好的解决办法吗?

一个可能的解决方案,但可能不够灵活,将模型文件保存在 GitLab CI 变量中,并在步骤中放入正确的路径。 GitLab CI 也支持二进制文件作为变量。