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

如何在AzureML端点中导入自定义bert_based_model模块?

解决AzureML端点导入自定义bert_based_model类的问题

1. 调整目录结构

确保自定义模型代码与score.py处于可被Python识别的目录结构中,最简单的方式是将自定义类文件和score.py放在同一部署目录下:

./deploy_dir/
├── score.py
├── bert_based_model.py  # 存放你的自定义模型类
└── model.pkl  # 已保存的模型文件

如果自定义类涉及多个文件,可整理为Python包结构:

./deploy_dir/
├── score.py
├── custom_models/
│   ├── __init__.py  # 空文件即可,标记为Python包
│   └── bert_based_model.py
└── model.pkl

此时在score.py中需按包路径导入:from custom_models.bert_based_model import BertBasedModel

2. 手动添加Python路径(应急方案)

如果不想调整目录,可在score.py开头加入代码,将当前部署目录添加到Python搜索路径:

import sys
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

# 之后即可正常导入自定义类
from bert_based_model import BertBasedModel

3. 配置环境依赖文件

创建conda.yml或requirements.txt,明确列出BERT模型依赖的库(如torch、transformers等),确保部署环境能正常运行自定义模型。示例conda.yml:

name: bert-deploy-env
channels:
  - conda-forge
dependencies:
  - python=3.8
  - pip:
    - torch>=1.12.0
    - transformers>=4.20.0
    - scikit-learn
    - azureml-defaults

4. 部署时包含所有必要文件

使用AzureML SDK部署时,需将自定义代码、score.py、依赖文件、模型文件全部纳入部署目录。通过InferenceConfig指定源码目录:

from azureml.core.model import InferenceConfig
from azureml.core.webservice import AciWebservice

inference_config = InferenceConfig(
    source_directory="./deploy_dir",
    entry_script="score.py",
    conda_file="conda.yml"
)

aci_config = AciWebservice.deploy_configuration(cpu_cores=1, memory_gb=2)
service = Model.deploy(
    workspace=your_workspace,
    name="bert-model-endpoint",
    models=[your_registered_model],
    inference_config=inference_config,
    deployment_config=aci_config
)
service.wait_for_deployment(show_output=True)

5. 本地预验证

部署前先在本地运行score.py,验证自定义类导入和模型加载是否正常,提前排查问题,避免部署后重复调试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 20:35:16