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

如何从Google Cloud Storage加载Roberta AutoTokenizer?解决加载报错

解决从GCS加载Hugging Face AutoTokenizer的HFValidationError问题

错误原因

你遇到的HFValidationError是因为AutoTokenizer.from_pretrained()不接受BytesIO对象列表作为输入参数。该方法仅支持以下类型的输入:

  • 本地目录路径
  • Hugging Face Hub仓库ID
  • 支持的远程存储路径(如GCS、S3路径,需对应库版本支持)

解决方法

方法1:下载到本地临时目录加载

将GCS中的分词器文件下载到本地临时目录,再从目录加载,这是最通用的方案:

import tempfile
from google.cloud import storage
from transformers import AutoTokenizer

# 替换为你的桶名和分词器目录路径
bucket_name = "your-gcs-bucket-name"
tokeniser_folder = "path/to/your/tokenizer/dir/"
tokeniser_files = ["special_tokens_map.json", "tokenizer.json", "tokenizer_config.json"]

# 初始化GCS客户端
storage_client = storage.Client()
bucket = storage_client.get_bucket(bucket_name)

# 创建临时目录,退出with块后自动清理
with tempfile.TemporaryDirectory() as temp_dir:
    # 逐个下载文件到临时目录
    for file_name in tokeniser_files:
        blob = bucket.get_blob(f"{tokeniser_folder}{file_name}")
        blob.download_to_filename(f"{temp_dir}/{file_name}")
    
    # 从临时目录加载分词器
    tokeniser = AutoTokenizer.from_pretrained(temp_dir)

# 正常使用分词器
print(tokeniser.tokenize("Hello World!"))

方法2:直接使用GCS路径加载(推荐,需transformers>=4.18.0)

如果你的transformers版本在4.18.0及以上,可以直接传入GCS目录路径,无需手动下载文件(前提是Vertex AI笔记本已配置好GCS桶的访问权限):

from transformers import AutoTokenizer

# 替换为你的GCS分词器目录完整路径
gcs_tokenizer_path = "gs://your-gcs-bucket-name/path/to/your/tokenizer/dir/"

# 直接加载分词器
tokeniser = AutoTokenizer.from_pretrained(gcs_tokenizer_path)

注意事项

  • 方法2中,若访问跨项目GCS桶,需额外配置IAM权限,确保Vertex AI的服务账号拥有该桶的storage.objects.list和storage.objects.get权限。
  • 临时目录方案(方法1)无需额外权限配置,且会自动清理文件,适合临时加载场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 21:45:30