阿里云PAI-EAS共享GPU,一卡部署多个模型(EasyRec/TorchEasyRec Processor)

简介: 本文介绍在阿里云PAI-EAS平台单GPU卡(如A10/gu30/L20)上部署多个模型实例的实践方案:需购买GPU专有资源组,通过显存划分(如24G卡分3×7G)、配置`gpu_memory`参数实现共享,禁用`gpu_core_percentage`防RT毛刺,并合理设置BatchCount提升吞吐。

我们需要在GPU一张卡部署多个模型实例。

在PAI-EAS先需要先购买GPU专有资源组(包月资源组),然后把模型打分服务部署在专有资源组上。

一般来说:推理卡可以是32核的A10或者gu30,或者是L20 。

官方文档:共享gpu

参数:

以下是重点的参数,具体操作看下一节。

显卡内存可以划分:例如A10的GPU有24G的显存(实际可用不到24G),可划分3个实例,每个实例用7G(并不是8G)。

PAI-EAS服务配置中的重点参数:

       "gpu_memory": 7, 7G内存

不要配置 gpu_core_percentage ,可能导致GPU RT的毛刺。

在EasyRec中,需要设置 'cuda': "11.2"。

pairec 引擎配置单中的重点参数:

BatchCount,设置每次打分的物品个数。

操作步骤:

(1)点击“更新服务”

(2)点击“GPU”共享,设置cpu数量、内存数量、显存。

(3)点击“确定”更新服务。

(4)在PAI-EAS服务的“监控”tab页面,查看cpu内存、gpu显存

内存和gpu显存都正常,服务状态“运行中”,则正常。

核:32个

内存:188G

gu30卡:一个实例7G显存

gpu 核心占比:30%

(5)设置引擎配置单中的BatchCount

BatchCount一般设置为100到300。如果BatchCount=300,精排数量是900,则意味着精排PAI-EAS服务的实例至少要有3个,才能尽快返回打分结果;如果打分实例只有1个,则需要打分3次,rt时间则是前者的3倍。

参考TorchEasyRec版本的配置文件

TorchEasyRec Processor: https://help.aliyun.com/zh/pai/torcheasyrec-processor

{
    "cronscaler": {
        "excludeDates": [],
        "scaleJobs": []
    },
    "metadata": {
        "cpu": 10,
        "gateway": "default",
        "gpu_memory": 7,
        "instance": 4,
        "memory": 32000,
        "name": "${服务名称}",
        "resource": "eas-r-xxxxx",
        "resource_burstable": false,
        "rpc": {
            "enable_jemalloc": 1,
            "max_queue_size": 256
        },
        "worker_threads": 16,
        "workspace_id": "32668"
    },
    "model_config": {
        "access_key_id": "1111",
        "access_key_secret": "2222",
        "featuredb_password": "aaaa",
        "featuredb_username": "bbbb",
        "fg_mode": "normal",
        "fg_threads": 8,
        "fs_entity": "host",
        "fs_model": "${model_name}",
        "fs_project": "${fs_name}",
        "load_feature_from_offlinestore": false,
        "outputs": "probs_is_click",
        "period": 2880,
        "region": "ap-southeast-1",
        "security_token": "None",
        "steady_mode": true,
        "storage_api_quota_name": "ot_quota_name_xxxx"
    },
    "model_path": "oss://xxxx/EasyRec/deploy/model_name/20250515/export/final_with_fg",
    "name": "model_name",
    "networking": {
        "gateway": "default"
    },
    "processor": "easyrec-torch-1.0",
    "processor_envs": [
        {
            "name": "INPUT_TILE",
            "value": "2"    ### input tile 参数
        },
        {
            "name": "NO_GRAD_GUARD",
            "value": "1"
        },
        {
            "name": "PYTORCH_TENSOREXPR_FALLBACK",
            "value": "2"
        }
    ],
}

EasyRec版本:参考DataWorks部署任务的脚本:

EasyRec 需要设置  'cuda': "11.2"

'''PyODPS 3
请确保不要使用从 MaxCompute下载数据来处理。下载数据操作常包括Table/Instance的open_reader以及 DataFrame的to_pandas方法。 
推荐使用 PyODPS DataFrame(从 MaxCompute 表创建)和MaxCompute SQL来处理数据。
更详细的内容可以参考:https://help.aliyun.com/document_detail/90481.html
'''
import json
import os
service_name = 'fs_dbmtl_v4'
config = {
  'name': service_name,
  'metadata': {
    'cpu': 7,
    'gateway': 'default',
    'gpu': 0,
    'cuda': "11.2",
    'gpu_memory': 7,
    'memory': 55000,
    'name': 'fs_dbmtl_v4',
    'rpc': {
        'enable_jemalloc': 1,
        'max_queue_size': 256
    },
    'resource': 'eas-r-ssss',
    'rolling_strategy.max_unavailable': 1
  },
  'model_path': f"oss://xxx-saas/EasyRec/deploy/home_feed_dbmtl_v3/{args['ymd']}/export/final_with_fg",
  'model_config': {
    'outputs': 'probs_is_click,probs_is_collect_like_comment',
    'fg_mode': 'tf',
    'steady_mode': True,
    'period': 2880,
    'access_key_id': f'{o.account.access_id}',
    'access_key_secret': f'{o.account.secret_access_key}',
    "load_feature_from_offlinestore": True,
    'region': 'cn-shanghai',
    'fs_project': 'ffffff',
    'fs_model': 'fs_dbmtl_v2',
    'fs_entity': 'item',
    'featuredb_username': '111',
    'featuredb_password': '111',
    'log_iterate_time_threshold': 100,
    'iterate_featuredb_interval': 5,
    'mc_thread_pool_num': 1,
  },
  "processor": "easyrec-2.6"
}
with open('echo.json', 'w') as output_file:
    json.dump(config, output_file)
#os.system(f'/home/admin/usertools/tools/eascmd -i {o.account.access_id} -k {o.account.secret_access_key} -e pai-eas.cn-shanghai.aliyuncs.com create echo.json')
os.system(f'/home/admin/usertools/tools/eascmd -i {o.account.access_id} -k {o.account.secret_access_key} -e pai-eas.cn-shanghai.aliyuncs.com modify {service_name} -s echo.json')

相关实践学习
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
机器学习/深度学习 分布式计算 DataWorks
EasyRec 使用介绍|学习笔记
快速学习 EasyRec 使用介绍。
2304 0
|
9月前
|
缓存 Rust 算法
使用 uv 的优点分析:为什么它正在取代 pip
uv 以 Rust 打造,速度比 pip 快 10–100 倍,依赖解析毫秒级完成。命令完全兼容,零学习成本迁移。虚拟环境创建更快、更小、更智能,适合日常开发、CI 自动化等场景,显著提升 Python 开发效率。
|
6月前
|
存储 搜索推荐 Python
TorchRec大量使用Jagged Tensor
Jagged Tensor(锯齿张量)是专为变长序列设计的紧凑存储格式,用values+lengths/offsets替代padding,显著节省内存与计算。广泛应用于推荐系统中用户行为、多值标签等不等长特征处理,如HSTU模型中的拼接、拆分与矩阵乘法操作。
594 8
|
6月前
|
机器学习/深度学习 自然语言处理 iOS开发
Feature Generator(FG)特征算子配置指南
本文档全面介绍Feature Generator(FG)的各类特征算子配置方法,涵盖基础(ID/原始特征)、计算(表达式)、交叉(组合)、查找(Lookup/Match)、文本(重叠/BM25)、序列、预处理(分词/归一化)及字符串处理(正则替换/切片)等9大类算子,附详细配置示例与说明。
564 9
|
6月前
|
机器学习/深度学习 分布式计算 搜索推荐
PAI-Rec 召回引擎:构建高性能推荐系统的核心引擎
PAI-Rec是阿里云智能推荐平台的核心召回引擎,经阿里大规模场景验证。支持多路召回融合(U2I/I2I/向量/随机)、召回即过滤、毫秒级实时更新与分布式弹性架构,开箱即用,助力企业构建毫秒级、高精度、强实时的推荐系统。
648 9
|
6月前
|
并行计算 算法框架/工具 iOS开发
TorchRec在macos ARM芯片(Apple Silicon)上无法安装
JaggedTensor等在macOS ARM芯片上无法运行,主因是ARM64与x86_64架构不兼容,且TorchRec深度依赖CUDA——而Apple Silicon仅支持Metal。fbgemm-gpu缺失、Rosetta 2不支持CUDA指令,导致关键操作失败。建议改用MLX框架或标准PyTorch张量替代。
519 4
|
人工智能 JSON 自然语言处理
Jina Reader:一键将网页内容转为适合 LLM 处理的文本格式,自动抓取和清洗网页内容,支持多种输出格式
Jina Reader 是一款由 Jina AI 推出的开源工具,能够将网页内容快速转换为适合大型语言模型(LLMs)处理的纯文本格式,支持多种输出格式和动态内容处理。
4177 20
Jina Reader:一键将网页内容转为适合 LLM 处理的文本格式,自动抓取和清洗网页内容,支持多种输出格式
|
运维 Cloud Native 测试技术
极氪汽车 APP 系统云原生架构转型实践
极氪汽车 APP 系统云原生架构转型实践
3163 129
极氪汽车 APP 系统云原生架构转型实践
|
机器学习/深度学习 缓存 Kubernetes
Kubernetes 调度系统之 Scheduling Framework
阿里云容器服务团队结合多年Kubernetes产品与客户支持经验,对Kube-scheduler进行了大量优化和扩展,逐步使其在不同场景下依然能稳定、高效地调度各种类型的复杂工作负载。 本文帮助大家更好地了解Kubernetes调度系统的强大能力和未来发展方向。
3508 0
Kubernetes 调度系统之 Scheduling Framework

热门文章

最新文章