弹性 MapReduce Storage(存储)

训练与评测数据(指标、检查点、rollout、轨迹)都通过统一的存储层保存。默认情况下,数据写入本地磁盘。要使用云存储(GCS、S3、Azure),只需把路径改成 URI 即可。

相关产品
弹性 MapReduce 产品页,含版本规格、价格与购买入口。

如需云存储支持:

uv pip install 'tinker-cookbook[cloud]'

一、训练

把云 URI 作为 log_dir 传入:

# Local (default)ml_logger = setup_logging(log_dir="/tmp/my_run", config=config)# GCSml_logger = setup_logging(log_dir="gs://bucket/my_run", config=config)# S3ml_logger = setup_logging(log_dir="s3://bucket/my_run", config=config)

所有训练数据(指标、检查点、rollout)都会自动写入云路径。

二、评测

把云 URI 作为 save_dir 传入:

# Localconfig = BenchmarkConfig(save_dir="/tmp/evals/run1")# GCSconfig = BenchmarkConfig(save_dir="gs://bucket/evals/run1")result = await run_benchmark("gsm8k", client, renderer, config)

三、读回数据

from tinker_cookbook.stores import TrainingRunStore, storage_from_uri# Works with local paths and cloud URIsstore = TrainingRunStore(storage_from_uri("gs://bucket/my_run"))config = store.read_config()metrics = store.read_metrics()rollouts = store.read_rollouts(0)checkpoints = store.read_checkpoints()

四、支持的后端

URI 存储后端
/local/path 本地文件系统
gs://bucket/prefix Google Cloud Storage
s3://bucket/prefix Amazon S3
az://container/prefix Azure Blob Storage

任何 fsspec 支持的文件系统 都可以使用。

云后端的 flush

为了性能,云端写入会先在本地暂存。请在检查点处调用 flush(),以确保数据被上传:

storage = storage_from_uri("gs://bucket/run")store = TrainingRunStore(storage)for step in range(num_steps): store.write_metrics({"loss": loss}, step=step) if step % save_every == 0: storage.flush()

或者使用上下文管理器实现自动 flush:

with storage_from_uri("gs://bucket/run") as storage: store = TrainingRunStore(storage) # … training …# auto-flush on exit

赞 (0)
上一篇 4天前
下一篇 4天前