如何使用 PAI-EAS 部署 API 服务|学习笔记

本文涉及的产品
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 快速学习如何使用 PAI-EAS 部署 API 服务。

开发者学堂课程【PAL 平台学习路线:机器学习入门到应用:如何使用 PAI-EAS 部署 API 服务】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/855/detail/14232


如何使用 PAI-EAS 部署 API 服务

 

内容介绍

一个部分是如何部署模型在线服务;

第二部分是如何用部署好的服务做调用预测。这两部分都会讲解如何使用Web的前端页面来使用,如何使用EAS进行使用。

一、如何部署模型在线服务

二、部署好之后的调用

 

一、如何部署模型在线服务

首先我们从模型服务如何部署开始,部署首先进行 Web 页面的操作。

图片31.png

上图的页面是 PAI studio 运行好的一个实验前端页面,这是一个心脏病预测的实验。心脏病测验是一个基本的线性逻辑回归的预测,这样的模型训练好之后后面有一个勾号说明实验运营好并且实验已经训练好了。

 图片32.png

可以对这个模型进行操作,首先可以右键勾号,可以将这个模型导出成一个 PMML 文件。之后可以将 PMML文件上传到 OSS 或者内部的任何一个存储的地方,之后用存储的链接来部署。

 图片33.png

另外还有一种更简便的方式,可以点击左上角的一键部署(模型在线部署)就无需将模型导出,然后在上传到某一个存储的地方再使用链接部署了。现在尝试一下一键部署,选择实验画布里面有的服务,因为有时一个实验里面会有多种类型,需要做选择。选择好点击下一步。

图片34.png

可以看到上图做部署有三种选项,第一个是新建服务,将这个模型部署成一个全新的服务;第二个是在已有的服务基础上增加一个版本,这种服务适合模型的迭代更新,也就是说之前已经训好一个模型了,后来由于数据的变动相对模型进行优化迭代或者它的精准度有进一步的提升,就在这个基础上部署它的第二个版本。第三个是蓝绿部署,这个部署适用于两个差异比较大的模型,希望进行AB的互相的交换逐渐的向B模型去过渡的时候使用蓝绿部署的功能。在蓝绿部署的时候,这两个模型是可以互相切流的,也就是流量可以一点一点切换然后过渡过去的。比如原来的一个A模型和一个 B 模型,AB 模型同时接受流量并且流量的配比由我们自己决定,A 模型20%,B 模型占80%,这个我们都可以自己做调整。

这里我们先做一个新建的模型服务的示例。

图片35.png

定义一个名字,选择进程数(这个模型服务下面有多少个子进程,每一个子进程都可以独立的承担流量的接受并且对流量进行数据的处理以及预测;进程数多对服务有更好的保障。其中某一个进程坏掉了,其他进程可以继续做模拟服务的预测,保证线上服务的稳定性),核数(根据模型所需的资源来定,遇到具体的情况再做判断。)现在这个模型需要2核4G 的计算资源,选择好之后点击下一步。

图片36.png

上图是一个确认页面,确认没问题之后点击部署。

图片37.png

点击部署好了之后页面,会出现刚刚选好的模型0304,状态是 creating,需要稍微等待几分钟就会变成正常的running 的状态。下面的是昨天部署的服务。

可以对已经部署好的模型做一些相应的操作,点击模型的名称,可以看到这个模型的调用的说明:

图片38.png

如何访问模型以及它的 token 密钥是什么。这是下一步做模型调用的需要的基本信息。我们会在第二个环节讲解。

同样还可以做其他的操作,比如点击模型的更新

图片39.png

更新可以增加它的进程数(下面有几个子进程)更改每一个进程所需要的计算的资源量。以上是更新的操作。

同时还可以看到监控的页面,下图:

图片40.png

监控页面就是这个服务当前整体的 QPS、response、traffic 流量、RT 延迟、CPU 和 memory 水位的情况都可以在方便的通过可视化的方式看到模型的状态。因为目前的模型还没有被调用过,所有它的信息暂时还看不到。但是我们可以对这个模型进行服务调用,调用完之后会有相应的监控指标会出现。

刚刚模型的 creating 现在变成了 waiting,就是整个服务在做拉起的状态。Waiting 之后的状态就会进入 running,可能会有几分钟的时间。目前已经过了两分钟了。以上就是整个部署的过程,包括部署之后可以进行的一些操作。

还可以通过 ESCMD 的方式来进行服务的部署。

大家可以在文档中对应的了解,文档中也都讲解了 ESCMD 如何使用。首先第一步是下载 ESCMD,下载完成之后需要做权限的设置和基本账户的配置。以上东西配置好之后就可以进行命令的使用了。

下面是具体的演示:

在终端就可以通过./escmd 的方式来执行命令行的任务。在执行之前需要做一些准备工作。包括 json 文件的编写,也就是说待会 escmd 这个 comeout 命令就是 create 这个 .json 文件。也就是会根据这个 json 文件进行模型服务的部署。

"name": "heart 0304"

"node l_path“:”oss://eas-model-singpore/1664081855183111/heart-model.pmml”,

"processor":“pmml”,

"metadata":{

"instance"1,

"cpu""2

JSON 文件里面第一个写了 name,name 就是这个模型服务要部署成什么名字,就是在刚刚的页面做的同样的操作。下面还需要写上模型的路径(将文件下载下来之后上传到某一个地方,这个 URL 只要是内部能够访问的 URL,或者是OSS 的 URL 都可以在这里使用。)这是模型路劲。

下面是 process 的类型(这个模型使用什么样的模型加载处理逻辑,会有一些内置的 process,会可以使用自定义的方式对 process 进行定制化一些操作。)这里我们刚好有内置的 process 的名字,刚好叫做 PML。

Metadata 是对模型运行所需要的资源以及实例数进行定义,这里看到 instance(模型下面有多少个子进程)是一个实例,这里我们设置为2个实例。CPU 就 是需要计算的资源,memory 就是按照1:4比例分配的,这里2核的话就是8G.

编写好 json 文件之后,就可以去做执行了。

执行的命令:./escmdmac64(下载好的 cmd 的名字) create 命令 heart.json。点击回车之后就可以看到在做创建了。Servers is now creating(指的就是在创建状态了)这个创建也是需要一定的时间的。

我们可以看到在 CMD 操作的命令会在前端页面同样的展示出来。也就是说通过 CMD 创建的模型服务在前端同样看得到。看到模型0305现在就是在创建中的一个状态了。创建的状态也可以做一些模型的操作。以上就是使用 CMD做基本创建的命令执行。

CMD 还可以做很多其他的操作,除了创建还可以做修改配置:

我们刚刚在前端页面也做了修改配置,使用 CMD 就是把刚刚的 create 换成 modify,将名字写在后面+Dmetadata写好之后就可以做修改配置了。比如原来是2核8G现在想要变成4核16G.我们就可以通过 modify 的命令将 metadata的信息改一下。

还可以做模型的更新服务:

图片41.png

更新成新的模型文件。

还可以做停止 STOP。使用的方式都是大同小异的,都是在终端内使用./EScomeout 执行,之后将后面的命令换一下就好了。STOP、CREAT、modify、DELETE 等操作。

以上就是通过ESCMD来进行模型服务的部署,我们看到现在已经是 running 状态了,也就是刚刚创建的模型已经部署好了。发现前端页面也是同步的,模型服务是运行中的状态。

目前已经通过两种方式:前端页面一键部署、CMD 部署(需要将模型服务下载,并且上传到一个地方将 URL链接填进去)

以上是如何部署和一些操作服务,接下来我们看一些如何做部署好的服务调用。

 

二、部署好之后的调用

图片42.png

上图可以看到一些调用的信息,这是普通的公网调用,下面有访问地址和 token 密钥,密钥可以点击查看或者隐藏。就是通过以上地址定位模型查看以及健全的访问。

调用的两种方式:

点击右上角在线调试

 图片43.png

这里以选好了模型的名字,请求地址,token 都自动调好了。这里只需要填一下 body 的信息,可以在文件内直接复制。链接就是心脏病做预测用的一些信息,比如包括这个人的性别、年龄、肺部的信息最后进行心脏病的预测。就是一些请求的内容。点击运行,就可以看到返回信息,就是判断有没有得心脏病和有没有得心脏病的概率;分别是0.98和0.01。通过这一块就可以做一个调试来看看这个模型运行是否正常,以及构建的请求的 body 是否合理合规。在线调试成功之后可以用正式的方式来做调研。在线调试就相当于前端页面的访问,正式的都是通过代码来调用的。

代码调用有两种方式:

第一种可以使用 ES 官方提供的 SDK 来做调用 python 的 SDK 或者 Java 的 SDK 两 种。下图就是使用 python的SDK来做调用。

图片44.png

另外也可以自己实现调用的逻辑,用 python 语言自行实现调用逻辑。这两种方式都是可以的。用官方的方式(可以做到性能的保障但是没有高的自由度)或者自定义实现的方式(可以实现特定的需求),下图就是自定义的例子:

import requests

url=http://1664081855183111.ap-southeast-1.pai-eas.aliyuncs.com/api/predict/heart_0302'

Headers={"Authorization":"OTJHNZU2MTJiNDLNUc5MWJjMDYOMjUzNGY2MGUyY2M3YjI2ZQNE==")

data = "I("sex":0, " cp":0 "fbs":0, "restecg": 0, "exang":0, "slop":0, "thal':0, "age":0, "trestbps":0, "chol":0, "thalach": 0, "oldpeak":0, "ca":0}

resp- requests.post (url, data =data, headers headers)

print resp

print resp. content

可以看到 import request,url 后面加链接。Header 的信息,data 是输入请求的数据(同在线调试)。下面去做预测。执行预测然后把预测的结果打印出来。

接下来就可以运行这个文件 python heart-custom.py 文件。然后运行,很快会出现 response[200]是正常的。也可以看到预测对应的概率,分别是0.99和0.005。

以上就是通过调用拿到结果的信息。预测之后就会有监控的信息。

图片45.png

图片46.png

可以看到上图的 response、QPS、CPU、memory(看不到可能是因为时长挑的太久了)已经有数据了。上图就是刚刚做的调用所展示出来的数据。如果调用更大的话,这边的监控数据会显示曲线。

以上就是如何通过前端页面或者通过代码的方式来做模型调用的服务。

调用的代码也有两种方式,对应的方式在文档内有详细的讲述如何使用。如何使用普通的方式调用或者使用官方的SDK在文档中看到。

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
13天前
|
机器学习/深度学习 人工智能 自然语言处理
PAI Model Gallery 支持云上一键部署 DeepSeek-V3、DeepSeek-R1 系列模型
DeepSeek 系列模型以其卓越性能在全球范围内备受瞩目,多次评测中表现优异,性能接近甚至超越国际顶尖闭源模型(如OpenAI的GPT-4、Claude-3.5-Sonnet等)。企业用户和开发者可使用 PAI 平台一键部署 DeepSeek 系列模型,实现 DeepSeek 系列模型与现有业务的高效融合。
|
12天前
|
API 开发工具 Python
阿里云PAI部署DeepSeek及调用
本文介绍如何在阿里云PAI EAS上部署DeepSeek模型,涵盖7B模型的部署、SDK和API调用。7B模型只需一张A10显卡,部署时间约10分钟。文章详细展示了模型信息查看、在线调试及通过OpenAI SDK和Python Requests进行调用的步骤,并附有测试结果和参考文档链接。
1938 9
阿里云PAI部署DeepSeek及调用
|
7天前
|
机器学习/深度学习 人工智能 开发者
DeepSeek服务器繁忙?拒绝稍后再试!基于阿里云PAI实现0代码一键部署DeepSeek-V3和DeepSeek-R1大模型
阿里云PAI平台支持零代码一键部署DeepSeek-V3和DeepSeek-R1大模型,用户可轻松实现从训练到部署再到推理的全流程。通过PAI Model Gallery,开发者只需简单几步即可完成模型部署,享受高效便捷的AI开发体验。具体步骤包括开通PAI服务、进入控制台选择模型、一键部署并获取调用信息。整个过程无需编写代码,极大简化了模型应用的门槛。
140 7
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
云上一键部署 DeepSeek-V3 模型,阿里云 PAI-Model Gallery 最佳实践
本文介绍了如何在阿里云 PAI 平台上一键部署 DeepSeek-V3 模型,通过这一过程,用户能够轻松地利用 DeepSeek-V3 模型进行实时交互和 API 推理,从而加速 AI 应用的开发和部署。
|
1月前
|
机器学习/深度学习 安全 PyTorch
FastAPI + ONNX 部署机器学习模型最佳实践
本文介绍了如何结合FastAPI和ONNX实现机器学习模型的高效部署。面对模型兼容性、性能瓶颈、服务稳定性和安全性等挑战,FastAPI与ONNX提供了高性能、易于开发维护、跨框架支持和活跃社区的优势。通过将模型转换为ONNX格式、构建FastAPI应用、进行性能优化及考虑安全性,可以简化部署流程,提升推理性能,确保服务的可靠性与安全性。最后,以手写数字识别模型为例,展示了完整的部署过程,帮助读者更好地理解和应用这些技术。
97 20
|
2月前
|
人工智能 JSON 算法
魔搭支持在阿里云人工智能平台PAI上进行模型训练、部署了!
现在,魔搭上的众多模型支持在阿里云人工智能平台PAI-Model Gallery上使用阿里云算力资源进行模型训练和部署啦!
|
2月前
|
存储 人工智能 API
AgentScope:阿里开源多智能体低代码开发平台,支持一键导出源码、多种模型API和本地模型部署
AgentScope是阿里巴巴集团开源的多智能体开发平台,旨在帮助开发者轻松构建和部署多智能体应用。该平台提供分布式支持,内置多种模型API和本地模型部署选项,支持多模态数据处理。
400 4
AgentScope:阿里开源多智能体低代码开发平台,支持一键导出源码、多种模型API和本地模型部署
|
3月前
|
人工智能 JSON 算法
Qwen2.5-Coder 系列模型在 PAI-QuickStart 的训练、评测、压缩及部署实践
阿里云的人工智能平台 PAI,作为一站式、 AI Native 的大模型与 AIGC 工程平台,为开发者和企业客户提供了 Qwen2.5-Coder 系列模型的全链路最佳实践。本文以Qwen2.5-Coder-32B为例,详细介绍在 PAI-QuickStart 完成 Qwen2.5-Coder 的训练、评测和快速部署。
Qwen2.5-Coder 系列模型在 PAI-QuickStart 的训练、评测、压缩及部署实践
|
1月前
|
并行计算 PyTorch 算法框架/工具
阿里云PAI-部署Qwen2-VL-72B
阿里云PAI-部署Qwen2-VL-72B踩坑实录
|
3月前
|
人工智能 边缘计算 JSON
DistilQwen2 蒸馏小模型在 PAI-QuickStart 的训练、评测、压缩及部署实践
本文详细介绍在 PAI 平台使用 DistilQwen2 蒸馏小模型的全链路最佳实践。

热门文章

最新文章