You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Rubicon-ml将数据日志存储至S3实现协作共享?

Rubicon-ml 日志存储到S3实现协作共享操作指南

前置准备

  • 提前创建好有读写权限的S3存储桶,记录好桶路径,后续给协作者分配对应桶的读写/只读权限即可实现共享
  • 确认本地已有的Rubicon日志存储根目录,默认路径是~/.rubicon,如果初始化时自定义过路径,提前定位到正确的根目录位置
  • 安装带S3依赖的Rubicon版本,执行命令:pip install rubicon-ml[s3]

操作步骤

1. 同步已有的本地历史日志到S3

不建议手动拖拽文件上传,容易破坏Rubicon的目录结构导致后续读取失败,优先用内置API迁移:

from rubicon import Rubicon

# 连接本地已有的日志仓库
local_repo = Rubicon(
    persistence="filesystem",
    root_dir="替换成你本地的Rubicon日志根目录绝对路径"
)
# 连接S3端的目标日志仓库
s3_repo = Rubicon(
    persistence="filesystem",
    root_dir="s3://你的S3桶名/rubicon-shared-logs/",
    # 如果你没有在本地配置全局AWS凭证,补全下面的配置项
    # storage_options={
    #     "key": "你的AWS访问密钥ID",
    #     "secret": "你的AWS秘密访问密钥"
    # }
)

# 遍历本地所有项目全量同步
for local_project in local_repo.projects():
    # S3端不存在对应项目则自动创建
    s3_project = s3_repo.get_or_create_project(name=local_project.name)
    for local_exp in local_project.experiments():
        # 已经同步过的实验直接跳过,避免重复上传
        if any(exp.id == local_exp.id for exp in s3_project.experiments()):
            continue
        # 自动复制实验关联的所有参数、指标、文件工件到S3
        local_exp.copy_to(s3_project)

如果本地日志量很大,也可以用AWS CLI做全量目录同步,执行命令:aws s3 sync 你的本地日志根目录 s3://你的S3桶名/rubicon-shared-logs/,同步前确认本地日志没有损坏即可。

2. 长期协作推荐:新实验直接写入S3

如果不想每次写完本地日志再手动同步,后续初始化Rubicon的时候直接指定S3为存储根目录即可,实验日志会实时写入S3,协作者随时能看到最新结果,使用逻辑和本地存储完全一致,不需要修改原有记录日志的代码:

from rubicon import Rubicon

# 初始化时直接指向S3共享路径
rubicon = Rubicon(
    persistence="filesystem",
    root_dir="s3://你的S3桶名/rubicon-shared-logs/",
    # storage_options配置和上文一致
)

# 后续记录实验的代码完全不用改,比如
project = rubicon.get_or_create_project("ctr-prediction-exp")
exp = project.log_experiment(name="v3-model-base")
exp.log_parameter("batch_size", 128)
exp.log_metric("f1", 0.87)

协作者访问共享日志方法

协作者只需要做3步就能访问所有共享日志:

  • 安装带S3依赖的Rubicon版本:pip install rubicon-ml[s3]
  • 配置好S3桶的对应访问权限(全局AWS凭证配置或初始化时传密钥均可)
  • 初始化Rubicon时直接指向同一个S3路径,即可读取、写入共享日志:
from rubicon import Rubicon

shared_repo = Rubicon(
    persistence="filesystem",
    root_dir="s3://你的S3桶名/rubicon-shared-logs/"
)

# 查看所有共享项目
all_projects = shared_repo.projects()
# 读取指定实验的指标、参数
target_project = shared_repo.get_project(name="ctr-prediction-exp")
for exp in target_project.experiments():
    print(f"实验{exp.name} F1值:{exp.metric(name='f1').value}")

注意:S3桶不要开启公网访问权限,给协作者分配最小必要权限即可;如果需要做团队权限隔离,可以给不同项目设置独立的S3路径前缀,给不同成员分配对应前缀的访问权限。

内容的提问来源于stack exchange,提问作者shania

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 11:06:31