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

如何在Google AI平台自定义预测例程中升级scikit-learn并安装其他库

解决Google AI平台自定义预测例程中scikit-learn版本不匹配的问题

是的,完全可以强制AI平台的自定义预测例程使用指定版本的scikit-learn,你的思路是对的——问题大概率出在setup.py的写法或者部署目录结构上,毕竟AI平台的自定义预测例程对依赖安装和模块导入有一些特定要求,和Dataflow的机制略有不同。

下面是具体的解决步骤:

1. 调整setup.py的写法与依赖指定

首先把依赖版本从>=改为==,确保pip安装的是你需要的精确版本,避免版本漂移;同时调整setup.py的结构以适配AI平台的模块导入逻辑:

from setuptools import setup
from setuptools import find_packages

# 指定精确版本,确保安装的是你需要的scikit-learn和mlxtend
REQUIRED_PACKAGES = [
    'scikit-learn==0.23.1',
    'mlxtend==0.17.2'
]

setup(
    name='my_custom_code',
    version='0.1',
    install_requires=REQUIRED_PACKAGES,
    # 自动发现你的包目录(需要确保predictor.py在包内)
    packages=find_packages(),
    include_package_data=True,
    # 移除scripts参数:AI平台需要导入你的predictor模块,而非执行脚本
    # 如果你的predictor是单个文件且不想用包结构,可以改用py_modules=['predictor']
)

2. 修正部署目录结构

AI平台的自定义预测例程要求你的代码以可导入的模块/包形式存在,而不是单独的脚本文件。推荐的目录结构如下:

your-deployment-zip/
├── setup.py                # 根目录下的setup.py
├── my_custom_code/         # 与setup.py中name一致的包目录
│   ├── __init__.py         # 必须存在,标记为Python包
│   └── predictor.py        # 你的自定义预测类代码
└── model/                  # 你的模型文件目录(比如.joblib或.pkl文件)

3. 确保预测类的导入路径正确

在部署模型时,需要指定预测类的完整导入路径,比如如果你的predictor类名为Predictor,那么路径应该是:
my_custom_code.predictor.Predictor

4. 验证版本是否生效

为了确认scikit-learn版本是否正确安装,可以在predictor.py的初始化方法中加入版本打印代码,方便查看日志:

import sklearn
from google.cloud.aiplatform.prediction.predictor import Predictor

class Predictor(Predictor):
    def __init__(self):
        print(f"Loaded scikit-learn version: {sklearn.__version__}")
        # 其他初始化逻辑...

部署后,发起测试预测请求,然后在AI平台的日志中查看打印的版本号,确认是否为0.23.1。

备选方案:使用自定义容器(如果上述方法仍不生效)

如果通过setup.py仍无法覆盖默认版本,可以使用自定义Docker容器完全控制环境:

  • 创建Dockerfile,基于AI平台的基础镜像,然后安装指定版本的scikit-learn:
FROM gcr.io/cloud-aiplatform/prediction/sklearn-cpu.0-20:latest
RUN pip install --upgrade pip && \
    pip install scikit-learn==0.23.1 mlxtend==0.17.2
# 复制你的predictor代码和模型文件
COPY my_custom_code /app/my_custom_code
COPY model /app/model
  • 构建并推送镜像到Google Container Registry,然后部署到AI平台。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 12:42:51