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

SageMaker部署HuggingFace模型报错:找不到config.json文件

问题分析与解决方案

核心错误原因

  1. 环境变量冲突:你设置了HF_TASK='text-generation',这会触发SageMaker HuggingFace容器的自动模型加载逻辑,而非执行你自定义的inference.py。容器自动加载时的默认逻辑会导致模型文件路径识别异常,即便config.json实际存在也会报错。
  2. inference.py变量作用域错误:全局变量pipeline在model_fn中被重新定义为局部变量,导致transform_fn调用时pipeline仍为None;同时代码未处理输入输出的格式解析,不符合SageMaker推理脚本的规范。

具体修复步骤

1. 修改部署代码,移除冲突环境变量

删除HF_TASK环境变量,让容器优先使用你的自定义推理脚本:

from sagemaker.huggingface.model import HuggingFaceModel

huggingface_model = HuggingFaceModel(
   model_data="s3://my_model_bucket/model.tar.gz",
   role=role,
   transformers_version="4.28",
   pytorch_version="2.0",
   py_version='py310',
)

# 部署端点
predictor = huggingface_model.deploy(
    initial_instance_count=1,
    instance_type="ml.g5.xlarge"
)

2. 修复inference.py的变量作用域与格式处理

调整变量作用域,同时完善输入输出的格式解析逻辑:

import torch
import json
from transformers import AutoTokenizer, AutoModelForCausalLM
from pipeline import MyCustomPipeline

# 全局pipeline变量
pipeline = None

def model_fn(model_dir):
    global pipeline  # 声明使用全局变量,避免局部变量覆盖
    print(f"Loading model from: {model_dir}")
    tokenizer = AutoTokenizer.from_pretrained(
        model_dir,
        local_files_only=True,
    )
    model = AutoModelForCausalLM.from_pretrained(
        model_dir,
        local_files_only=True,
        device_map="auto",
        torch_dtype=torch.bfloat16,
        trust_remote_code=True,
    )
    # 初始化自定义pipeline并赋值给全局变量
    pipeline = MyCustomPipeline(model, tokenizer)
    return pipeline

def transform_fn(model, input_data, content_type, accept):
    # 解析输入数据(适配常见的JSON格式)
    if content_type == "application/json":
        input_dict = json.loads(input_data)
        result = pipeline(input_dict["text"])
    else:
        # 兼容纯文本输入
        result = pipeline(input_data)
    
    # 根据请求头返回对应格式的结果
    if accept == "application/json":
        return json.dumps({"result": result}), accept
    else:
        return str(result), accept

3. 验证模型包结构

你的model.tar.gz结构是正确的:根目录包含config.json、模型权重文件,code目录包含推理相关脚本,无需调整。

额外注意事项

  • 确保requirements.txt中包含所有依赖,比如transformers、torch的版本需与部署时指定的版本匹配;
  • 若自定义MyCustomPipeline需要额外依赖,需将其添加到requirements.txt中;
  • 部署后可通过SageMaker控制台查看端点日志,排查其他潜在问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 08:36:05