如需云存储支持:
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