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

SageMaker部署HuggingFace模型后端点无法加载Tokenizer问题排查

问题原因分析与解决方案

核心根本原因

你仅在训练脚本中保存了模型权重,没有将配套的分词器(Tokenizer)文件同步保存到SM_MODEL_DIR目录下。SageMaker部署HuggingFace模型时,官方推理容器会默认从训练产出的模型压缩包根目录同时加载模型和分词器,缺少分词器相关配置文件就会触发该报错。

具体对应你的代码问题:

  • 你的训练脚本仅执行了trainer.model.save_pretrained(args.model_dir),该操作只会保存模型权重、模型配置文件,不会保存分词器的词汇表、分词规则配置、特殊词映射表等必要文件
  • 部署阶段训练产出的模型压缩包被解压到/.sagemaker/mms/models/model路径后,目录中没有vocab.json、tokenizer_config.json、special_tokens_map.json等分词器依赖文件,推理服务初始化时找不到对应文件就会抛出路径无效的错误

修复方案

1. 修改训练脚本,同步保存分词器

在训练脚本保存模型的代码行后,新增一行保存分词器的逻辑,示例如下:

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--model-dir", type=str, default=os.environ["SM_MODEL_DIR"])
    
    ...
    # 原有保存模型的代码
    trainer.model.save_pretrained(args.model_dir)
    # 新增保存分词器的代码,tokenizer为你训练阶段初始化的分词器实例
    tokenizer.save_pretrained(args.model_dir)

2. 重新训练后部署

重新提交训练任务,新生成的模型产物会包含完整的模型和分词器文件,再调用deploy方法部署即可正常加载分词器完成推理。

其他可能触发该报错的场景

  • 部署时指定的HuggingFace容器版本和训练时使用的Transformers版本差异过大,导致高版本保存的分词器配置低版本无法识别
  • 训练产出的模型压缩包存在路径嵌套问题,比如模型和分词器文件存放在压缩包的子目录下而非根目录,导致推理服务读取路径不匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:15:03