日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

部署寫真相機在線推理服務

在使用異步推理服務時,可能會遇到資源利用不充分和縮容過程中請求中斷等問題。為了解決這些問題,EAS推出了彈性Job服務,該服務對訂閱邏輯進行了優化。本文將指導您如何在寫真相機方案中使用彈性Job服務實現推理功能。

前提條件

  • 已創建專有網絡,并配置公網連接。

    1. 已創建專有網絡VPC、交換機和安全組。具體操作,請參見搭建IPv4專有網絡創建安全組

    2. 已為該VPC創建了公網NAT網關,并為該網關綁定了彈性公網IP、配置了SNAT條目。具體操作,請參見使用公網NAT網關SNAT功能訪問互聯網

  • 已準備好5-20張訓練圖片和1張模板圖片,用于模型訓練和寫真制作。圖片格式支持.jpg.jpeg.png等。

    • 如果進行單人寫真制作,模板圖片中包含單張人臉即可。多張訓練圖片中的人臉屬于同一個人。

    • 如果進行多人寫真制作,模板圖片中需包含多張人臉,且人臉數量與模型訓練的model_id數量一致。

    • 請確保訓練圖片和模板圖片的尺寸大于512×512像素。

  • 已創建OSS Bucket,詳情請參見創建存儲空間

使用限制

僅支持在華北2(北京)和新加坡地域使用該方案。

部署推理場景彈性Job服務

  1. 登錄PAI控制臺,在頁面上方選擇目標地域,并在右側選擇目標工作空間,然后單擊進入EAS

  2. 部署核驗服務。

    1. 單擊部署服務,然后在自定義模型部署區域,單擊自定義部署

    2. 自定義部署頁面,配置以下關鍵參數,其他參數取默認配置即可,更多參數配置說明,請參見控制臺上傳部署

      • 基本信息區域,配置服務名稱。例如photog_check。

      • 環境信息區域中,配置以下參數:

        參數

        描述

        部署方式

        選擇鏡像部署,并選中異步服務

        鏡像配置

        選中鏡像地址,并在文本框中輸入鏡像地址,取值如下:

        • 華北2(北京)的鏡像地址為:registry.cn-beijing.aliyuncs.com/mybigpai/photog_pub:check.1.0.0.pub

        • 新加坡的鏡像地址為:registry.ap-southeast-1.aliyuncs.com/mybigpai/photog_pub:check.1.0.0.pub

        代碼配置

        選擇OSS類型的掛載方式,并配置以下參數:

        • OSS:選擇您自己的OSS Bucket路徑。例如oss://examplebucket/

        • 掛載路徑:配置為/photog_oss

        運行命令

        配置為python app.py

        端口號

        配置為7860。

      • 資源部署區域中,配置以下參數:

        參數

        描述

        資源類型

        選擇公共資源

        部署資源

        資源規格選擇GPU類型的GU30系列機型,推薦使用ml.gu7i.c32m188.1-gu30

        額外系統盤

        配置為120 GB。

      • 異步服務區域中,配置以下參數:

        參數

        描述

        資源類型

        選擇公共資源

        部署資源

        • 最小實例數:1。

        • CPU(核數):8核。

        • 內存(GB):64 GB。

        單一輸入請求最大數據

        配置為20480 KB。避免隊列中每個請求的存儲空間不足。

        單一輸出返回最大數據

      • 專有網絡區域中,選擇已創建的VPC、交換機和安全組。

      • 服務配置區域中,添加以下配置,您可以參考下方的完整配置示例,來添加新增的參數。

        字段

        新增的參數

        metadata

        增加以下參數:

        "rpc": {
                    "keepalive": 3600000,
                    "worker_threads": 1
                }
        • keepalive:單個請求的最長處理時間,單位為毫秒,配置為3600000。

        • worker_threads:EAS每個實例中用于并發處理請求的線程數。

          默認為5,表示最先進入隊列的前五個任務會被分配到同一個實例上。建議將該參數設置為1,這樣可以確保請求按順序排隊處理。

        queue

        增加參數"max_delivery": 1,防止失敗后多次重復投遞。

        完整的配置示例如下:

        {
            "metadata": {
                "name": "photog_check",
                "instance": 1,
                "rpc": {
                    "keepalive": 3600000,
                    "worker_threads": 1
                },
                "type": "Async"
            },
            "cloud": {
                "computing": {
                    "instance_type": "ml.gu7i.c32m188.1-gu30",
                    "instances": null
                },
                "networking": {
                    "vswitch_id": "vsw-2ze4o9kww55051tf2****",
                    "security_group_id": "sg-2ze0kgiee55d0fn4****",
                    "vpc_id": "vpc-2ze5hl4ozjl4fo7q3****"
                }
            },
            "features": {
                "eas.aliyun.com/extra-ephemeral-storage": "100Gi"
            },
            "queue": {
                "cpu": 8,
                "max_delivery": 1,
                "min_replica": 1,
                "memory": 64000,
                "resource": "",
                "source": {
                    "max_payload_size_kb": 20480
                },
                "sink": {
                    "max_payload_size_kb": 20480
                }
            },
            "storage": [
                {
                    "oss": {
                        "path": "oss://examplebucket/",
                        "readOnly": false
                    },
                    "properties": {
                        "resource_type": "code"
                    },
                    "mount_path": "/photog_oss"
                }
            ],
            "containers": [
                {
                    "image": "registry.cn-beijing.aliyuncs.com/mybigpai/photog_pub:check.1.0.0.pub",
                    "script": "python app.py",
                    "port": 7860
                }
            ]
        }
    3. 單擊部署

  3. 部署訓練服務。

    1. 單擊部署服務,然后在自定義模型部署區域,單擊自定義部署

    2. 自定義部署頁面,配置以下關鍵參數,其他參數取默認配置即可,更多參數配置說明,請參見控制臺上傳部署

      • 基本信息區域,配置服務名稱。例如photog_train_pmml。

      • 環境信息區域中,配置以下參數:

        參數

        描述

        部署方式

        選擇鏡像部署,并選中異步服務

        鏡像配置

        選中鏡像地址,并在文本框中輸入鏡像地址,取值如下:

        • 華北2(北京)的鏡像地址為:registry.cn-beijing.aliyuncs.com/mybigpai/photog_pub:train.1.0.0.pub

        • 新加坡的鏡像地址為:registry.ap-southeast-1.aliyuncs.com/mybigpai/photog_pub:train.1.0.0.pub

        代碼配置

        選擇OSS類型的掛載方式,并配置以下參數:

        • OSS:選擇您自己的OSS Bucket路徑,與核驗服務選擇的OSS路徑保持一致。例如oss://examplebucket/

        • 掛載路徑:配置為/photog_oss

        運行命令

        配置為python app.py

        端口號

        配置為7860。

      • 資源部署區域中,配置以下參數:

        參數

        描述

        資源類型

        選擇公共資源

        部署資源

        資源規格選擇GPU類型的GU30系列機型,推薦使用ml.gu7i.c32m188.1-gu30

        額外系統盤

        配置為120 GB。

      • 異步服務區域中,配置以下參數:

        參數

        描述

        資源類型

        選擇公共資源

        部署資源

        • 最小實例數:1。

        • CPU(核數):8核。

        • 內存(GB):64 GB。

        單一輸入請求最大數據

        配置為20480 KB。避免隊列中每個請求的存儲空間不足。

        單一輸出返回最大數據

      • 專有網絡區域中,選擇已創建的VPC、交換機和安全組。

      • 服務配置區域中,添加以下配置,您可以參考下方的完整配置示例,來添加新增的參數。

        字段

        新增的參數

        autoscaler

        (可選)水平自動擴縮容配置,詳情請參見水平自動擴縮容功能

        "behavior": {
          "scaleDown": {
            "stabilizationWindowSeconds": 60
          }
        },
        "max": 5,
        "min": 1,
        "strategies": {
                    "queue[backlog]": 1
        }

        metadata

        增加以下參數:

        "rpc": {
                    "keepalive": 3600000,
                    "worker_threads": 1
                }
        • keepalive:單個請求的最長處理時間,單位為毫秒,配置為3600000。

        • worker_threads:EAS每個實例中用于并發處理請求的線程數。

          默認為5,表示最先進入隊列的前五個任務會被分配到同一個實例上。建議將該參數設置為1,這樣可以確保請求按順序排隊處理。

        queue

        增加參數"max_delivery": 1,防止失敗后多次重復投遞。

        完整的配置示例如下:

        {
            "autoscaler": {
                "behavior": {
                    "scaleDown": {
                        "stabilizationWindowSeconds": 60
                    }
                },
                "max": 5,
                "min": 1,
                "strategies": {
                    "queue[backlog]": 1
                }
            },
            "metadata": {
                "name": "photog_train_pmml",
                "instance": 1,
                "rpc": {
                    "keepalive": 3600000,
                    "worker_threads": 1
                },
                "type": "Async"
            },
            "cloud": {
                "computing": {
                    "instance_type": "ml.gu7i.c32m188.1-gu30",
                    "instances": null
                },
                "networking": {
                    "vswitch_id": "vsw-2ze4o9kww55051tf2****",
                    "security_group_id": "sg-2ze0kgiee55d0fn4****",
                    "vpc_id": "vpc-2ze5hl4ozjl4fo7q3****"
                }
            },
            "features": {
                "eas.aliyun.com/extra-ephemeral-storage": "120Gi"
            },
            "queue": {
                "cpu": 8,
                "max_delivery": 1,
                "min_replica": 1,
                "memory": 64000,
                "resource": "",
                "source": {
                    "max_payload_size_kb": 20480
                },
                "sink": {
                    "max_payload_size_kb": 20480
                }
            },
            "storage": [
                {
                    "oss": {
                        "path": "oss://examplebucket/",
                        "readOnly": false
                    },
                    "properties": {
                        "resource_type": "code"
                    },
                    "mount_path": "/photog_oss"
                }
            ],
            "containers": [
                {
                    "image": "registry.cn-beijing.aliyuncs.com/mybigpai/photog_pub:train.1.0.0.pub",
                    "script": "python app.py",
                    "port": 7860
                }
            ]
        }
    3. 單擊部署

  4. 部署預測服務。

    本方案將預測服務部署為彈性Job服務,具體操作步驟如下:

    1. 單擊部署服務,然后在自定義模型部署區域,單擊JSON獨立部署

    2. JSON編輯框中填入配置信息。

      {
          "metadata": {
              "name": "photog_pre_pmml",
              "instance": 1,
              "rpc": {
                  "keepalive": 3600000,
                  "worker_threads": 1
              },
              "type": "ScalableJob"
          },
          "cloud": {
              "computing": {
                  "instance_type": "ecs.gn6v-c8g1.2xlarge",
                  "instances": null
              },
              "networking": {
                  "vswitch_id": "vsw-2ze4o9kww55051tf2****",
                  "security_group_id": "sg-2ze0kgiee55d0fn4****",
                  "vpc_id": "vpc-2ze5hl4ozjl4fo7q3****"
              }
          },
          "features": {
              "eas.aliyun.com/extra-ephemeral-storage": "120Gi"
          },
          "queue": {
              "cpu": 8,
              "max_delivery": 1,
              "min_replica": 1,
              "memory": 64000,
              "resource": "",
              "source": {
                  "max_payload_size_kb": 20480
              },
              "sink": {
                  "max_payload_size_kb": 20480
              }
          },
          "storage": [
              {
                  "oss": {
                      "path": "oss://examplebucket/",
                      "readOnly": false
                  },
                  "properties": {
                      "resource_type": "code"
                  },
                  "mount_path": "/photog_oss"
              }
          ],
          "containers": [
              {
                  "image": "registry.cn-beijing.aliyuncs.com/mybigpai/photog_pub:infer.1.0.0.pub",
                  "env": [
                      {
                          "name": "URL",
                          "value": "http://127.0.0.1:8000"
                      },
                      {
                          "name": "AUTHORIZATION",
                          "value": "="
                      }
                  ],
                  "script": "python app.py",
                  "port": 7861
              },
              {
                  "image": "eas-registry-vpc.cn-beijing.cr.aliyuncs.com/pai-eas/stable-diffusion-webui:3.2",
                  "port": 8000,
                  "script": "./webui.sh --listen --port 8000 --skip-version-check --no-hashing --no-download-sd-model --skip-install --api --filebrowser --sd-dynamic-cache --data-dir /photog_oss/photog/webui/"
              }
          ]
      }

      其中關鍵參數說明如下,其他參數配置詳情,請參見服務模型所有相關參數說明

      參數

      描述

      metadata

      name

      自定義服務名稱,在同地域內唯一。

      type

      配置為ScalableJob,異步推理服務會以彈性Job的形式進行部署。

      containers

      image

      需要同時配置AI寫真預測服務和WebUI預測服務鏡像地址。支持配置的鏡像列表如下,本方案選擇華北2(北京)地域的鏡像地址。

      • 華北2(北京)鏡像地址:

        • AI寫真預測服務:registry.cn-beijing.aliyuncs.com/mybigpai/photog_pub:infer.1.0.0.pub

        • WebUI預測服務:eas-registry-vpc.cn-beijing.cr.aliyuncs.com/pai-eas/stable-diffusion-webui:3.2

      • 新加坡鏡像地址:

        • AI寫真預測服務:registry.ap-southeast-1.aliyuncs.com/mybigpai/photog_pub:infer.1.0.0.pub

        • WebUI預測服務:eas-registry-vpc.ap-southeast-1.cr.aliyuncs.com/pai-eas/stable-diffusion-webui:3.2

      storage

      path

      本方案以OSS掛載為例,配置為您自己的OSS Bucket路徑,與核驗服務選擇的OSS路徑保持一致,例如oss://examplebucket/

      您需要下載并解壓WebUI所需的模型文件,并將其按照下圖布局方式存放到您的OSS Bucket路徑oss://examplebucket/photog_oss/webui中。關于如何將文件上傳到OSS Bucket路徑,詳情請參見命令行工具ossutil 1.0。關于如何將文件上傳到NAS路徑,詳情請參見快速入門(Linux)文件管理image.png

      mount_path

      配置為/photog_oss

  5. 單擊部署

    彈性Job服務部署成功后,會自動創建隊列服務,同時默認啟動Autoscaler(水平自動擴縮容)功能。

調用服務

服務部署成功后,您可以通過調用服務實現AI寫真。具體操作,請參見調用接口

調用服務時,您需要參考服務調用指定taskTypequery,來標識發送的是推理請求,調用圖像核驗接口為例,示例代碼如下:

import json
from eas_prediction import QueueClient

# 創建輸入隊列對象,用于寫入輸入數據。
input_queue = QueueClient('182848887922****.cn-shanghai.pai-eas.aliyuncs.com', 'photog_check')
input_queue.set_token('<token>')
input_queue.init()

datas = json.dumps(
    {
       'request_id'    : 12345,
       'images'        : ["xx.jpg", "xx.jpg"], # urls, a list
       'configure'     : {
            'face_reconize' : True, # Judge whether all pictures are of a person
        }
    }
)
# 指定taskType為query。
tags = {"taskType": "query"}
index, request_id = input_queue.put(f'{datas}', tags)
print(index, request_id)

# 查看輸入隊列的詳情。
attrs = input_queue.attributes()
print(attrs)

相關文檔