Model Serving

推荐使用阿里云上的模型在线服务(PAI-EAS)预置的EasyRecProcessor 来部署在线推理服务。EasyRecProcessor针对推荐模型做了多种优化, 相比tensorflow serving和TensorRT方式部署具有显著的性能优势

命令行部署

命令行部署适合Dataworks, Kubernetes pipelines等需要例行调度的场景.

#!/bin/bash
bizdate=$1

cat << EOF > alirec_rank.json
{
 "name": "alirec_rank",
 "generate_token": "true",
 "processor": "easyrec-1.5",
 "metadata":{
    "instance": 1,
    "cpu": 16,
    "gpu": 0,
    "memory": 8000,
    "rpc": {
       "enable_jemalloc": 1,
       "max_queue_size": 256,
       "worker_threads": 20
    }
 },
 "model_config": {
    "fg_mode": "bypass",
    "save_req": false
 },
 "storage": [
    {
      "mount_path": "/home/admin/docker_ml/workspace/model/",
      "oss": {
        "path": "oss://easyrec-bj/alirec_rank/20230819/export/final/",
        "readOnly": false
      },
      "properties": {
        "resource_type": "code"
      }
    }
 ],
 "warm_up_data_path": "oss://easyrec-bj/alirec_rank/warmup.bin"
}
EOF

### 打印配置
cat alirec_rank.json

### 创建服务
eascmd -i <AccessKeyID> -k <AccessKeySecret> -e <EndPoint> create alirec_rank.json

### 更新服务
echo "-------------------更新服务-------------------"
eascmd -i <AccessKeyID> -k <AccessKeySecret> -e <EndPoint> modify alirec_rank -s alirec_rank.json

status=$?

### 查看服务
echo "-------------------查看服务-------------------"
eascmd -i <AccessKeyID> -k <AccessKeySecret> -e <EndPoint> desc alirec_rank

配置文件(alirec_rank.json)解析:

  • processor: easyrec-2.0, 更多版本可以参考文档

  • storage: 挂载oss模型目录

  • warm_up_data_path: PAI-EAS服务启动之前会使用warmup_data_path指定的请求数据预热服务

    • 文件格式参考TensorFlow服务请求

    • 建议使用线上真实的请求来warmup, 能够显著降低初始请求的延迟

  • model_config

    • fg_mode: bypass模式表示不使用fg(Feature generation)功能, 如需要使用FG请参考文档RTP FG.

    • save_req: 保存请求到挂载模型目录下(以.pb结尾), 可以重命名以后(.bin)作为warmup文件.

    • faiss_ivf_nprobe: 向量召回模型向量检索参数(IVFFlat索引), 默认值为100

  • 其它参数是所有EAS服务通用的, 请参考EAS文档.

界面部署

请参考EAS部署文档.

客户端请求

特征工程 + 模型服务

EasyRec Processor支持在线做特征工程(如显示交叉特征和Sequence特征), 通过将特征工程和模型推理整合在同一个tensorflow图里面, 实现了特征工程和模型推理的overlap执行和联合优化, 已经上线的模型最多特征数达到2000+. 如果您需要用到特征工程的部分,可以参考文档RTP FG

推荐引擎

PAI-REC是Aliyun PAI开发的高性能推荐引擎框架, 支持通过配置的方式构建推荐全链路pipeline, 包括召回、过滤、排序、多样性等, 如果需要用到PaiRec进行在线推荐服务, 可以参考: 入门介绍 项目示例 EAS部署