阿里云机器学习模型在线服务自定义Processor部署PMML模型(二)

简介: 阿里云机器学习模型在线服务自定义Processor部署PMML模型(一)中介绍了使用EASCMD搭建环境,进行自定义processor的部署,这里介绍使用阿里云提供的镜像进行模型的在线部署,并通过Java SDK演示模型的在线调用。

Step By Step

1、直接使用镜像获取Python环境
2、容器配置
3、镜像构建与上传
4、基于构建镜像创建EAS服务
5、Java SDK调用服务


一、直接使用镜像获取Python环境
  • 1.1 如果未安装Docker,请参考链接先安装Docker环境

图片.png

  • 1.2 run命令进入容器
sudo docker run -ti registry.cn-shanghai.aliyuncs.com/eas/eas-python-base-image:py3.6-allspark-0.8
二、容器配置
  • 2.1 删除app.py,下载pmml文件

图片.png

  • 2.2 docker中安装:sklearn-pmml-model
ENV/bin/pip install sklearn-pmml-model

图片.png

三、镜像构建与上传
  • 3.1 登陆阿里云镜像服务
sudo docker login --username=gts mubu**.cn-shanghai.cr.aliyuncs.com

图片.png

  • 3.2 获取容器ID

图片.png

  • 3.3 基于容器生成镜像
sudo docker commit d52f5f01607b mubu .cn-shanghai.cr.aliyuncs.com/taro/eas_pmml:v2

图片.png

  • 3.4 提交镜像到阿里云镜像仓库
sudo docker push mubu .cn-shanghai.cr.aliyuncs.com/taro/eas_pmml:v2

图片.png

  • 3.5 镜像仓库查看

图片.png

  • 3.6 设置镜像公开匿名拉取权限

图片.png

四、基于构建镜像创建EAS服务
  • 4.1 app.py代码
# -*- coding: utf-8 -*-
import allspark
import pandas as pd
import numpy as np
from sklearn_pmml_model.ensemble import PMMLForestClassifier

class MyProcessor(allspark.BaseProcessor):
    """ MyProcessor is a example
        you can send mesage like this to predict
        curl -v http://127.0.0.1:8080/api/predict/service_name -d '2.1 105'
    """

    def initialize(self):
        """ load module, executed once at the start of the service
         do service intialization and load models in this function.
        """
        self.model = PMMLForestClassifier(pmml="randomForest.pmml")

    def pre_proccess(self, data):
        """ data format pre process
        """
        x, y, z, w = data.split(b' ')
        return float(x), float(y), float(z), float(w)

    def post_process(self, data):
        """ proccess after process
        """
        return str(data).encode()

    def process(self, data):
        """ process the request data
        """
        x, y, z, w = self.pre_proccess(data)
        df = pd.DataFrame([[x, y, z, w]],columns=['sepal length (cm)','sepal width (cm)','petal length (cm)','petal width (cm)'])
        result  = self.model.predict(df)
        print(result)
        return self.post_process(result), 200

if __name__ == '__main__':
    # paramter worker_threads indicates concurrency of processing
    runner = MyProcessor(worker_threads=10)
    runner.run()
  • 4.2 上传app.py到阿里云OSS存储,并设置权限为公共可读,获取下载地址

图片.png

  • 4.3 app.json部署文件
{
  "name": "taro_docker_v2",
  "processor_entry": "./app.py",
  "processor_type": "python",
  "processor_path": "https://taro******.oss-cn-shanghai.aliyuncs.com/eas_python_app/app.py",
  "data_image": "mubu******.cn-shanghai.cr.aliyuncs.com/taro/eas_pmml:v1",
  "metadata": {
    "instance": 1,
     "memory": 2000,
     "cpu": 1
    }
}
  • 4.4 EASCMD部署服务
./eascmd64 create demo2.json

图片.png

五、Java SDK调用服务
  • 5.1 控制台查看部署服务

图片.png

  • 5.2 POSTMAN调用测试

图片.png

图片.png

  • 5.3 pom.xml
        <dependency>
            <groupId>com.squareup.okhttp</groupId>
            <artifactId>okhttp</artifactId>
            <version>2.7.3</version>
        </dependency>
  • 5.4 Java Code
import com.squareup.okhttp.*;
import java.io.IOException;

public class EASDEMO {

    public static void main(String[] args) throws IOException {
        OkHttpClient client = new OkHttpClient();

        MediaType mediaType = MediaType.parse("application/octet-stream");
        RequestBody body = RequestBody.create(mediaType, "5.6 3.0 4.1 1.3");
        Request request = new Request.Builder()
                .url("http://172*********.cn-shanghai.pai-eas.aliyuncs.com/api/predict/taro_docker_v2")
                .post(body)
                .addHeader("authorization", "MjE2ZDNkMj*********")
                .build();

        Response response = client.newCall(request).execute();
        System.out.println(response.body().string());

    }
}
  • 5.5 测试结果

图片.png


更多参考

安装 Docker
阿里云机器学习模型在线服务自定义Processor部署PMML模型(一)
使用Python开发自定义Processor
eascmd客户端工具

相关文章
|
人工智能 监控 测试技术
云上AI推理平台全掌握 (1):PAI-EAS LLM服务一键压测
在AI技术飞速发展的今天,大语言模型(LLM)、多模态模型等前沿技术正深刻改变行业格局。推理服务是大模型从“实验室突破”走向“产业级应用”的必要环节,需直面高并发流量洪峰、低延时响应诉求、异构硬件优化适配、成本精准控制等复杂挑战。 阿里云人工智能平台 PAI 致力于为用户提供全栈式、高可用的推理服务能力。在本系列技术专题中,我们将围绕分布式推理架构、Serverless 弹性资源全球调度、压测调优和服务可观测等关键技术方向,展现 PAI 平台在推理服务侧的产品能力,助力企业和开发者在 AI 时代抢占先机,让我们一起探索云上 AI 推理的无限可能,释放大模型的真正价值!
|
缓存 人工智能 负载均衡
PAI 重磅发布模型权重服务,大幅降低模型推理冷启动与扩容时长
阿里云人工智能平台PAI 平台推出模型权重服务,通过分布式缓存架构、RDMA高速传输、智能分片等技术,显著提升大语言模型部署效率,解决模型加载耗时过长的业界难题。实测显示,Qwen3-32B冷启动时间从953秒降至82秒(降幅91.4%),扩容时间缩短98.2%。
|
存储 自然语言处理 机器人
基于的Qwen模型的智能客服Discord机器人,使用🐫 CAMEL、SambaNova、Firecrawl和Qdrant实现RAG Agent
基于Qwen模型的智能客服Discord机器人,使用CAMEL、SambaNova、Firecrawl和Qdrant实现RAG Agent。构建了一个能够处理复杂问题并能进行快速响应的强大聊天机器人。该机器人可在Discord平台上运行,支持实时对话和语义搜索,提供准确、全面的回答。项目包含详细的安装步骤、代码示例及集成指南,适合开发者快速上手。
1274 36
|
自然语言处理 安全 API
AppFlow:让大模型当您的微信公众号客服
使用阿里云AppFlow和通义百炼,无需编码即可将大模型如通义千问接入微信公众号。首先确保公众号已认证,然后在通义百炼导入文档创建知识库。在AppFlow中选择“微信公众号大模型自动回复”模板,添加微信凭证和百炼API密钥。配置微信公众平台的服务器地址、Token和EncodingAESKey,并设置IP白名单。完成这些步骤后,用户在公众号的提问将由大模型自动回答。AppFlow简化了集成过程,助力高效智能客服建设。
43249 19
|
人工智能 容灾 Serverless
AI推理新纪元,PAI全球化模型推理服务的创新与实践
本次分享主题为“AI推理新纪元,PAI全球化模型推理服务的创新与实践”,由阿里云高级产品经理李林杨主讲。内容涵盖生成式AI时代推理服务的变化与挑战、play IM核心引擎的优势及ES专属网关的应用。通过LM智能路由、多模态异步生成等技术,PAI平台实现了30%以上的成本降低和显著性能提升,确保全球客户的业务稳定运行并支持异地容灾,目前已覆盖16个地域,拥有10万张显卡的推理集群。
|
机器学习/深度学习 TensorFlow 算法框架/工具
TensorFlow Serving 部署指南超赞!让机器学习模型上线不再困难,轻松开启高效服务之旅!
【8月更文挑战第31天】TensorFlow Serving是一款高性能开源服务系统,专为部署机器学习模型设计。本文通过代码示例详细介绍其部署流程:从安装TensorFlow Serving、训练模型到配置模型服务器与使用gRPC客户端调用模型,展示了一站式模型上线解决方案,使过程变得简单高效。借助该工具,你可以轻松实现模型的实际应用。
835 1
|
人工智能 自然语言处理 搜索推荐
大模型时代,如何让AI客服“听懂人话”、“更有温度”?
大模型时代,如何让AI客服“听懂人话”、“更有温度”?
1512 1
|
机器学习/深度学习 人工智能 Java
人工智能平台PAI产品使用合集之已经通过自定义镜像部署了一个模型,想要上传并导入其他模型,该如何操作
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
机器学习/深度学习 数据采集 人工智能
人工智能:构建自定义机器学习模型的步骤与技巧
【6月更文挑战第25天】构建自定义机器学习模型涉及明确问题、数据收集预处理、特征工程、模型选择训练、评估优化及部署监控。关键技巧包括选择适配的算法、重视数据预处理、精巧的特征工程、有效评估优化和适时的模型更新。通过这些步骤和技巧,可提升模型性能与泛化能力。

热门文章

最新文章