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

如何加速向Google Cloud Storage传输大模型?遇重试超限报错求解决

解决Google Cloud Storage上传Hugging Face模型超时问题

针对你遇到的HTTPSConnectionPool(host='storage.googleapis.com', port=443): Max retries exceeded with url错误,以下是几个实用的解决方向:

1. 启用分块上传

Transformers模型体积通常较大,一次性上传容易触发超时。可以通过设置chunk_size启用分块上传,把大文件拆分成多个小部分传输:

import pickle
from google.cloud import storage

# 序列化模型
model_file = pickle.dumps(model)

# 初始化bucket
storage_client = storage.Client()
bucket = storage_client.bucket("你的bucket名称")
blob = bucket.blob(f"models/{user_id}.pickle")

# 设置分块大小(比如10MB,可根据实际调整)
blob.upload_from_string(model_file, chunk_size=10*1024*1024)

2. 自定义重试策略

默认的重试配置可能不足以应对网络波动,手动调整重试次数和退避规则:

from google.api_core.retry import Retry
from google.cloud import storage

# 自定义重试策略:最多重试5次,覆盖特定的HTTP错误码
retry_strategy = Retry(
    max_attempts=5,
    retryable_codes=[429, 500, 502, 503, 504],
)

model_file = pickle.dumps(model)
bucket = storage.Client().bucket("你的bucket名称")
blob = bucket.blob(f"models/{user_id}.pickle")

# 上传时应用重试策略
blob.upload_from_string(model_file, retry=retry_strategy)

3. 使用文件流替代内存字符串

直接处理大字符串可能占用过多内存,也会影响传输稳定性。可以先把pickle序列化到临时文件,再用文件流上传:

import pickle
import tempfile
from google.cloud import storage

# 用临时文件存储序列化后的模型
with tempfile.NamedTemporaryFile(mode='wb', delete=False) as tmp:
    pickle.dump(model, tmp)

# 上传文件流
bucket = storage.Client().bucket("你的bucket名称")
blob = bucket.blob(f"models/{user_id}.pickle")
with open(tmp.name, 'rb') as f:
    blob.upload_from_file(f)

4. 检查网络与环境配置

  • 确认本地网络没有被防火墙、代理限制访问storage.googleapis.com
  • 如果是在本地开发,尝试切换到稳定的网络(比如有线网络)
  • 检查Google Cloud客户端版本是否过时,执行pip install --upgrade google-cloud-storage更新到最新版

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 14:01:27