3.4 GCP模型预测与部署

学习目标

  • 目标
    • 了解GCP平台在线预测的使用教程
  • 应用
    • 应用完成泛娱乐模型的预测和部署

3.4.1 GCP在线预测介绍

在您训练好模型后,Cloud ML Engine 会提供两种类型的预测,以将计算机学到的知识运用到新的样本中。

在线预测功能以无服务器的完全托管方式部署机器学习模型,提供实时响应并实现高可用性。我们的全球预测平台可自动扩容以适应任何吞吐量。它提供安全的 Web 端点,方便您将机器学习功能集成到自己的应用中

批量预测功能可为异步应用提供无与伦比的吞吐量,从而进行经济高效的推理。它能够轻松扩容,以对 TB 级的生产数据进行推理

3.4.2 预测服务实现

  • 在云端部署模型:
    • 为模型起名:MODEL_NAME=wdl
    • 在指定云服务器区域创建模型空间: gcloud ml-engine models create REGION
    • 找出已训练模型的完整二进制存储路径(精确至时间戳文件夹)
      • MODEL_BINARIES=gs://$BUCKET_NAME/wdl/1487877383942/
    • 创建模型并指定版本v1:
 # 导出版本
 gcloud ml-engine versions create v1 \
     --model $MODEL_NAME \
     --origin $MODEL_BINARIES \
     --runtime-version 1.10

 # 进行预测
 gcloud ml-engine jobs submit prediction $JOB_NAME \
     --model $MODEL_NAME \
     --version v1 \
     --data-format text \
     --region $REGION \
     --output-path $OUTPUT_PATH/predictions
  • 批量预测:
    • 设置作业名字:JOB_NAME=wdl_prediction_1
    • 设置预测文件路径: TEST_JSON=./test.json
      • 设置生成文件路径: OUTPUT_PATH=gs://JOB_NAME

3.4.3 本地训练预测部署

如果没有相关的资源可以在GCP中使用,也提供了本地的方式,只不过没有参数调用,分布式训练的条件

  • 目的:本地训练完模型,进行模型导出部署预测
    • 1、提交任务,进行本地训练
    • 2、docker进行部署和预测

1、提交任务,进行本地训练

TRAIN_DATA=$(pwd)/train_data.csv
EVAL_DATA=$(pwd)/test_data.csv
MODEL_DIR=./output


gcloud ai-platform local train \
    --module-name trainer.task \
    --package-path trainer/ \
    --job-dir $MODEL_DIR \
    -- \
    --train-files $TRAIN_DATA \
    --eval-files $EVAL_DATA \
    --train-steps 1000 \
    --eval-steps 100 \

2、docker进行部署和预测

docker run -t --rm -p 8501:8501 -v "/root/recreation_project/recomm/model/output/nss:/models/wdl" -e MODEL_NAME=wdl tensorflow/serving &

curl -d '{"instances": [2,0,1,0,8,3,0,2,1515431417,2,4,6,0,0,2,4,5,0,0,0]}' -X POST http://localhost:8501/v1/models/wdl:predict

3.4.4 小结

  • 远程进行预测了解
  • 本地训练和部署