自动部署开源AI模型到生产环境:Sklearn、XGBoost、LightGBM、和PySpark

本文介绍了如何使用DaaS(Deployment-as-a-Service)系统,基于Kubernetes,实现Scikit-learn、XGBoost、LightGBM和PySpark模型的一键自动部署,生成REST API,以便于在生产环境中调用。内容涵盖模型部署准备、各个模型的部署步骤以及模型部署管理。
摘要由CSDN通过智能技术生成

目录

背景介绍

AI的广泛应用是由AI在开源技术的进步推动的,利用功能强大的开源模型库,数据科学家们可以很容易的训练一个性能不错的模型。但是因为模型生产环境和开发环境的不同,涉及到不同角色人员:模型训练是数据科学家和数据分析师的工作,但是模型部署是开发和运维工程师的事情,导致模型上线部署却不是那么容易。

DaaS(Deployment-as-a-Service)是AutoDeployAI公司推出的基于Kubernetes的AI模型自动部署系统,提供一键式自动部署开源AI模型生成REST API,以方便在生产环境中调用。下面,我们主要演示在DaaS中如何部署经典机器学习模型,包括Scikit-learn、XGBoost、LightGBM、和PySpark ML Pipelines。关于深度学习模型的部署,会在下一章中介绍。

部署准备

我们使用DaaS提供的Python客户端(DaaS-Client)来部署模型,对于XGBoost和LightGBM,我们同样使用它们的Python API来作模型训练。在训练和部署模型之前,我们需要完成以下操作。

  1. 安装Python DaaS-Client。

    pip install --upgrade git+https://github.com/autodeployai/daas-client.git
    
  2. 初始化DaasClient。使用DaaS系统的URL、账户、密码登陆系统,文本使用的DaaS演示系统安装在本地的Minikube上。完整Jupyter Notebook,请参考:deploy-sklearn-xgboost-lightgbm-pyspark.ipynb

    from daas_client import DaasClient
    
    client = DaasClient('https://192.168.64.3:30931', 'username', 'password')
    
  3. 创建项目。DaaS使用项目管理用户不同的分析任务,一个项目中可以包含用户的各种分析资产:模型、部署、程序脚本、数据、数据源等。项目创建成功后,设置为当前活动项目,发布的模型和创建的部署都会存储在该项目下。create_project函数接受三个参数:

    1. 项目名称:可以是任意有效的Linux文件目录名。
    2. 项目路由:使用在部署的REST URL中来唯一表示当前项目,只能是小写英文字符(a-z),数字(0-9)和中横线-,并且-不能在开头和结尾处。
    3. 项目说明(可选):可以是任意字符。
    project = '部署测试'
    if not client.project_exists(project):
        client.create_project(project, 'deployment-test', '部署测试项目')
    client.set_project(project)
    
  4. 初始化数据。我们使用流行的分类数据集iris来训练不同的模型,并且把数据分割为训练数据集和测试数据集以方便后续使用。

    from sklearn import datasets
    from sklearn.model_selection import train_test_split
    import pandas as pd
    
    seed = 123456
    
    iris = datasets.load_iris()
    iris_target_name = 'Species'
    iris_feature_names = iris.feature_names
    iris_df = pd.DataFrame(iris.data, columns=iris_feature_names)
    iris_df[iris_target_name] = iris.target
    
    X, y = iris_df[iris_feature_names], iris_df[iris_target_name]
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=seed)    
    
  5. 模型部署流程。主要包含以下几步:

    1. 训练模型。使用模型库提供的API,在iris数据集上训练模型。
    2. 发布模型。调用publish函数发布模型到DaaS系统。
    3. 测试模型(可选)。调用test函数获取测试API信息,可以使用任意的REST客户端程序测试模型在DaaS中是否工作正常,使用的是DaaS系统模型测试API。第一次执行test会比较慢,因为DaaS系统需要启动测试运行时环境。
    4. 部署模型。发布成功后,调用deploy函数部署部署模型。可以使用任意的REST客户端程序测试模型部署,使用的是DaaS系统正式部署API。

部署Scikit-learn模型

  1. 训练一个Scikit-learn分类模型:SVC。

    from sklearn.svm import SVC
    
    model = SVC(probability=True, random_state=seed)
    model
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值