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

SageMaker多模型端点自定义入口脚本未生效问题咨询

问题原因

SageMaker 多模型端点(MME)的运行逻辑与单模型端点不同:

  • 单模型端点部署时会自动将你指定的entry_point、source_dir注入到容器执行路径中,配置可正常生效
  • MME是共享同一容器实例加载多个模型,不会为单个模型动态注入入口脚本,你配置在TensorFlowModel实例上的入口参数在MME部署时会被直接忽略,因此出现自定义脚本未被引用的问题
解决方法

可根据你的业务场景二选一:

  • 方案1:推理逻辑随模型包打包(适合不同模型推理逻辑不同的场景)
    每个上传到model_data_prefix路径下的模型tar包,在根目录直接放入你的inference.py、requirements.txt文件,打包时不要套外层文件夹,确保解压后脚本直接在根目录。容器加载每个模型时会自动读取模型包内的inference.py作为执行入口,无需额外配置。
  • 方案2:内置脚本到自定义容器(适合所有模型共用一套推理逻辑的场景)
    自行构建适配MME的TensorFlow推理容器,将统一的推理脚本、依赖直接内置到容器的/opt/ml/model/code/路径下,部署MME时直接使用该自定义镜像即可,不需要每个模型单独打包脚本。
调整后的代码示例(方案1)
env = {
    'SAGEMAKER_REQUIREMENTS': 'requirements.txt', # 对应模型包内的requirements路径
    'CATEGORY': category
}

# 移除原有的entry_point、source_dir配置
model_1 = TensorFlowModel(model_data=model_loc,
                          role=sagemaker_role,
                          framework_version="2.2.0",
                          env=env,
                          sagemaker_session=sagemaker_session)

mme = MultiDataModel(name='test-endpoint',
                     model_data_prefix=model_prefix,
                     model=model_1,
                     sagemaker_session=sagemaker_session)

predictor = mme.deploy(instance_type="ml.r5.xlarge", 
                       initial_instance_count=1
                      )
注意事项
  • TensorFlow 2.x框架容器的MME模式默认要求推理脚本命名为inference.py,不要修改文件名
  • 你配置在TensorFlowModel的env参数在MME模式下可正常生效,会被所有加载的模型共享

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:36:03