ModelScope模型使用与EAS部署调用

简介: 本文以魔搭数据的模型为例,演示在DSW实例中如何快速调用模型,然后通过Python SDK将模型部署到阿里云PAI EAS服务,并演示使用EAS SDK实现对服务的快速调用,重点针对官方关于EAS模型上线后示例代码无法正常调通部分进行了补充。

模型地址

操作步骤

1、创建DSW实例

镜像版本选择:dsw-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai/modelscope:1.13.3-pytorch2.1.2tensorflow2.14.0-gpu-py310-cu121-ubuntu22.04


2、代码快速测试模型功能

import cv2
from modelscope.outputs import OutputKeys
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks

img_cartoon = pipeline(Tasks.image_portrait_stylization, 
                       model='damo/cv_unet_person-image-cartoon_compound-models')
img_path = 'https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/image_cartoon.png'
result = img_cartoon(img_path)
cv2.imwrite('result.png', result[OutputKeys.OUTPUT_IMG])
print('finished!')


3、Python SDK部署模型

# 安装PAI Python SDK
pip install alipai>=0.4.3

# 配置阿里云相关服务信息
python -m pai.toolkit.config


from pai.common.utils import random_str
from pai.session import get_default_session
from pai.modelscope.model import ModelScopeModel

# 获取阿里云PAI平台相关默认配置,如遇到配置问题,请参考
# https://help.aliyun.com/zh/pai/user-guide/install-and-configure-pai-python-sdk
sess = get_default_session()

# ModelScope模型信息:https://www.modelscope.cn/models/lskhh/moran-cv_unet_person-image-cartoon-genshin_compound-models/files
hub = {
    "MODEL_ID": "lskhh/moran-cv_unet_person-image-cartoon-genshin_compound-models",
    "TASK": "image-portrait-stylization",
    "MODEL_VERSION": "v1.0.5",
    "DEPLOY_ENV": "eas",
}

# 创建 ModelScopeModel 对象
m = ModelScopeModel(
    command="python -u /usr/src/app/app.py",
    port=9000,
    image_uri=f"eas-registry-vpc.{sess.region_id}.cr.aliyuncs.com/pai-eas/modelscope-inference:eas-deploy-common-v17.3.2",
    environment_variables=hub
)

# 部署服务到阿里云PAI平台
# 请注意,部署服务会产生EAS费用账单
p = m.deploy(
    service_name=f"taro_ms_serving_{random_str(6)}",  # 设置模型服务的名称
    instance_type="ecs.gn6v-c8g1.2xlarge",
    # 额外的服务部署配置,如指定服务端超时时间、配置额外硬盘空间等
    options={
        "metadata.rpc.keepalive": 300000,
        "features.eas.aliyun.com/extra-ephemeral-storage":"30Gi",
    },
)

4、控制台查看模型部署情况

图片.png

图片.png

5、EAS SDK调用服务

安装包:pip install -U eas-prediction --user

import requests
import base64
import json
from eas_prediction import PredictClient, TFRequest
from eas_prediction import StringRequest

# http://12825281********.cn-hangzhou.pai-eas.aliyuncs.com/api/predict/taro_ms_serving_ydv5hf
client = PredictClient('http://12825281********.cn-hangzhou.pai-eas.aliyuncs.com', 'taro_ms_serving_ydv5hf')
client.set_token('NDE0ZTk3N2UxNTI0ZmZhNDkzMzE0MGQ2ZjFiZD***************==')
client.init()
# 读取网页图片
url = "https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/image_cartoon.png"
resp = requests.get(url)
image_data = resp.content
base64_data = base64.b64encode(image_data).decode('utf-8')
data = {
    'input': {
        'image': base64_data
    }
}
req = StringRequest(json.dumps(data))  # json格式化request body,否则请求出错
res = client.predict(req)
result = json.loads(res.response_data.decode())
result_img = base64.b64decode(result['Data']['output_img'])

保存图片

!pip install Pillow

from PIL import Image
import io

# 假设 binary_data 是包含图片二进制数据的变量
binary_data = result_img
# 使用 io.BytesIO 将二进制数据转换成文件对象
image_file = io.BytesIO(binary_data)
# 用 PIL 打开这个文件对象
image = Image.open(image_file)
# 可以选择在这里对图片进行任何处理,如缩放、裁剪等
# 保存为 PNG 格式的文件
image.save('output1.png', format='PNG')

图片.png


更多参考

阿里云机器学习PAI EAS部署TensorFlow Model

eas-python-sdk

相关文章
|
15天前
|
自然语言处理
在ModelScope中,你可以通过设置模型的参数来控制输出的阈值
在ModelScope中,你可以通过设置模型的参数来控制输出的阈值
22 1
|
15天前
|
API 语音技术
ModelScope-FunASR**有支持热词又支持时间戳的模型**。
【2月更文挑战第30天】ModelScope-FunASR**有支持热词又支持时间戳的模型**。
47 2
|
15天前
|
人工智能 达摩院 自然语言处理
超好用的开源模型平台,ModelScope阿里达摩院
超好用的开源模型平台,ModelScope阿里达摩院
125 1
|
2天前
|
机器学习/深度学习 人工智能 Swift
PAI x ModelScope: 在PAI使用ModelScope模型
在当前的人工智能领域,特别是大语言模型、文生图等领域,基于预训练模型完成机器学习模型的开发部署已成为重要的应用范式,开发者们依赖于这些先进的开源预训练模型,以简化机器学习应用的开发并加速创新。
|
15天前
modelscope-funasr怎么拿验证集评估微调后的模型效果呢
【2月更文挑战第19天】modelscope-funasr怎么拿验证集评估微调后的模型效果呢
41 1
|
15天前
|
人工智能 API 决策智能
Modelscope结合α-UMi:基于Modelscope的多模型协作Agent
基于单个开源小模型的工具调用Agent,由于模型容量和预训练能力获取的限制,无法在推理和规划、工具调用、回复生成等任务上同时获得比肩大模型等性能。
|
15天前
|
文字识别 并行计算 语音技术
ModelScope问题之下载模型文件报错如何解决
ModelScope模型报错是指在使用ModelScope平台进行模型训练或部署时遇到的错误和问题;本合集将收集ModelScope模型报错的常见情况和排查方法,帮助用户快速定位问题并采取有效措施。
329 3
|
15天前
|
数据采集 自然语言处理 搜索推荐
ModelScope问题之模型encoder配置报错如何解决
ModelScope模型报错是指在使用ModelScope平台进行模型训练或部署时遇到的错误和问题;本合集将收集ModelScope模型报错的常见情况和排查方法,帮助用户快速定位问题并采取有效措施。
102 0
|
15天前
|
人工智能 自然语言处理 搜索推荐
魔搭ModelScope社区作为一个AI模型开源平台,提供了丰富的模型资源和便捷的服务
【2月更文挑战第9天】魔搭ModelScope社区作为一个AI模型开源平台,提供了丰富的模型资源和便捷的服务
248 3
|
15天前
|
API
使用ModelScope平台进行模型验证时
【2月更文挑战第9天】使用ModelScope平台进行模型验证时
71 4