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

Azure Databricks分类模型服务端点加载失败:缺失pandas模块求助

解决Azure Databricks模型服务端点加载时的Pandas模块缺失问题

问题场景

在Azure Databricks Premium环境(西欧区域,Personal Compute集群策略,Runtime 12.2 LTS ML)中,注册分类模型(包括官方AutoML示例)后,通过GUI创建服务端点时,日志报错:

An error occurred while loading the model. No module named 'pandas.core.indexes.numeric'

训练集群本地Pandas版本为1.4.2,但多款模型均出现该问题,且创建端点时无法直接配置依赖包。

解决方案与调试建议

1. 注册模型时显式固定Pandas版本

训练模型时,在导出/注册模型的步骤中,明确指定与训练环境一致的Pandas版本,避免端点环境自动拉取不兼容的版本:

  • 若使用MLflow注册模型,在log_model方法中添加pip_requirements参数:
    import mlflow.sklearn
    mlflow.sklearn.log_model(
        model=your_model,
        artifact_path="model",
        pip_requirements=["pandas==1.4.2", "scikit-learn==1.1.3"]  # 补充其他必要依赖
    )
    
  • 若为AutoML生成的模型,可在训练完成后,找到模型的requirements.txt文件,手动添加pandas==1.4.2,再重新注册模型版本。

2. 同步训练与服务环境的依赖

从训练集群导出完整依赖列表,确保服务端点环境与训练环境完全一致:

  1. 在训练集群的Notebook中执行命令导出依赖:
    pip freeze > requirements.txt
    
  2. 注册模型时,将该requirements.txt文件作为模型的依赖文件上传,或通过MLflow的conda_env参数指定环境配置。

3. 创建自定义服务环境

若默认服务环境的Pandas版本存在兼容性问题,可创建自定义环境来匹配训练环境:

  1. 进入Databricks控制台的模型服务 -> 环境页面,点击创建环境
  2. 选择基础镜像为databricks/mlflow-serving:12.2-LTS(与训练Runtime版本匹配)
  3. 在初始化命令中添加:
    pip install pandas==1.4.2
    
  4. 保存自定义环境后,部署模型端点时选择该环境。

4. 调试端点环境的依赖版本

创建一个测试模型,用于打印端点环境的Pandas版本,确认版本差异:

import pandas as pd
from sklearn.base import BaseEstimator, ClassifierMixin

class TestModel(BaseEstimator, ClassifierMixin):
    def fit(self, X, y=None):
        return self
    
    def predict(self, X):
        return [0]*len(X)
    
    def load_context(self, context):
        print(f"Endpoint Pandas version: {pd.__version__}")

# 注册测试模型
import mlflow
mlflow.sklearn.log_model(TestModel(), "test-model", pip_requirements=["pandas==1.4.2"])

部署该模型端点后,查看日志中的版本信息,确认是否与训练环境一致,以此定位问题根源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 14:40:22