帮你快速理解、总结文档立即下载

Storage(存储)

最近更新时间:2026-10-19 21:18:02
本文档已由 AI 辅助审校
我的收藏
训练与评测数据(指标、检查点、rollout、轨迹)都通过统一的存储层保存。默认情况下,数据写入本地磁盘。要使用云存储(GCS、S3、Azure),只需把路径改成 URI 即可。
如需云存储支持:
uv pip install 'tinker-cookbook[cloud]'

训练

把云 URI 作为 log_dir 传入:
# Local (default)
ml_logger = setup_logging(log_dir="/tmp/my_run", config=config)

# GCS
ml_logger = setup_logging(log_dir="gs://bucket/my_run", config=config)

# S3
ml_logger = setup_logging(log_dir="s3://bucket/my_run", config=config)
所有训练数据(指标、检查点、rollout)都会自动写入云路径。

评测

把云 URI 作为 save_dir 传入:
# Local
config = BenchmarkConfig(save_dir="/tmp/evals/run1")

# GCS
config = 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 URIs
store = 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