在 GitHub 上编辑

远程存储

DVC 远程(remotes) 提供对外部存储位置的访问,用于跟踪和共享您的数据及机器学习模型。通常,这些存储位置会在参与项目的不同设备或团队成员之间共享。例如,您可以直接下载同事创建的数据产物,而无需耗费时间和本地资源重新生成。另请参见 dvc pushdvc pull

DVC 远程类似于 Git 远程仓库(例如 GitHub 或 GitLab 托管服务),但用于存储缓存的数据而非代码。

DVC 不提供也不推荐特定的存储服务(与代码仓库不同)。您可以从多种 支持的存储类型 中选择自有的平台。

远程存储的主要用途:

  • 同步由 DVC 跟踪的大文件和目录。
  • 集中化或分布式存储数据,便于共享与协作。
  • 备份不同版本的数据集和模型(节省本地空间)。

配置

您可以使用 dvc remote 命令设置一个或多个存储位置。这些命令会读取和写入项目配置文件(.dvc/config)中的 remote 部分,您也可以手动编辑该文件。

例如,我们来定义一个位于 S3 存储桶上的远程存储位置:

$ dvc remote add myremote s3://mybucket

DVC 会读取您本地已存在的主流云服务商(AWS、Azure、GCP)的配置,因此很多时候只需运行 dvc remote add 即可!

您可能还需要使用 dvc remote modify 来自定义认证信息或其他配置:

$ dvc remote modify --local \
                    myremote credentialpath ~/.aws/alt
$ dvc remote modify myremote connect_timeout 300

需要使用 --local 标志将敏感用户信息写入被 Git 忽略的配置文件(.dvc/config.local),以防止泄露机密信息(参见 dvc config)。这意味着每个 DVC 仓库 的副本都需要重新配置这些值。

# .dvc/config
['remote "myremote"']
    url = s3://my-bucket
    connect_timeout = 300
# .dvc/config.local
['remote "myremote"']
    credentialpath = ~/.aws/alt
# .gitignore
.dvc/config.local

最后,您可以使用 git commit 提交更改,以便与团队共享此远程存储位置。

支持的存储类型

云服务商

自托管 / 本地部署

文件系统(本地远程)

dvc remotedvc config 中的 --local 选项无关!

您还可以使用系统目录、挂载的磁盘、网络资源(如网络附加存储 NAS)以及其他外部设备作为存储。我们将所有这些称为“本地远程(local remotes)”。

这里的“本地”指的是存储的位置:通常是在同一文件系统中的另一个目录。而“远程”是我们对 DVC 项目 所用存储的统称。

使用绝对路径(推荐,因为它会按原样保存在 DVC 配置中):

$ dvc remote add -d myremote /tmp/dvcstore
# .dvc/config
['remote "myremote"']
    url = /tmp/dvcstore

使用相对路径时,它将被保存为相对于配置文件位置的路径,但在解析时会基于当前工作目录进行解析。

$ dvc remote add -d myremote ../dvcstore
# .dvc/config
['remote "myremote"']
    url = ../../dvcstore
内容

🐛 发现问题?告诉我们!或者修复它:

在 GitHub 上编辑

有疑问?加入我们的聊天,我们会为您提供帮助:

Discord 聊天