在線上業務的內容生產過程中,為了及時識別其中的高風險內容,PAI提供了圖像內容風控解決方案。該方案使用Designer預置模板,基于人工智能算法快速構建符合業務場景的風控模型,并部署為EAS在線服務,助力您快速識別高風險內容,進而對其進行攔截。
背景信息
在諸多生產內容的場景(例如使用圖像進行評論、發布短視頻、直播等)中,由于生產內容的范圍不受限,因此難免出現高風險內容,您需要識別這些高風險內容,并及時攔截。針對該問題,阿里云PAI提出了如下解決方案,借助人工智能算法,幫助您快速判斷風險內容:
解決方案
基于iTAG平臺和PAI數據集管理,對目標場景的圖像進行快捷標注和樣本管理。
基于PAI提供的預訓練模型,針對自己的圖像風控場景,在可視化建模平臺Designer上進行模型微調,從而基于Resnet50構建圖像分類模型或目標檢測模型。
將模型部署至EAS,形成完整的端到端流程,從而自動識別生產過程中的風險內容。
方案架構
圖像內容風控解決方案的架構圖如下所示。
前提條件
已開通PAI(Designer、EAS)后付費,詳情請參見開通并創建默認工作空間。
已創建OSS存儲空間(Bucket),用于存儲原始數據、標簽列表文件及訓練獲得的模型文件。關于如何創建存儲空間,請參見創建存儲空間。
使用限制
由于OSS不能跨地域訪問數據,因此存儲數據的OSS Bucket與構建模型的Designer工作流必須在同一地域。
操作流程
基于阿里云PAI平臺,構建圖像內容風控解決方案的流程如下:
首先將原始圖片數據存儲在OSS,然后利用PAI數據集管理將原始數據掃描生成索引文件,最后通過iTAG進行數據標注,從而獲得標注結果數據集,用于后續的模型訓練。
PAI提供了原始數據集,您可以直接使用它進行數據準備。關于數據集的下載方式,請參見內容風控領域的圖像分類數據集或內容風控領域的目標檢測數據集。
構建用于圖像內容風控的模型。
在可視化建模(Designer)中,基于預訓練模型,您可以構建Resnet50圖像分類模型或目標檢測模型進行風險識別。實際應用中,您需要結合業務場景選擇構建合適的模型:
如果您的業務場景是將圖像整體進行風險類別分類,則構建圖像分類模型。
如果您的業務場景是將圖像中的某些高風險的實體進行框選檢測,則構建目標檢測模型。
通過EAS,您可以將訓練好的內容風控模型部署為在線服務,并在實際的生產環境中調用,從而進行推理實踐。
準備數據
本方案使用PAI公共數據集,您也可以參照以下操作步驟準備數據集。
將原始圖片分為訓練數據集和測試數據集,分別上傳至已創建的OSS Bucket。關于如何將文件上傳至OSS,請參見上傳文件。
利用PAI數據集管理將原始數據掃描生成.manifest索引文件,詳情請參見創建數據集:掃描文件夾創建數據集。
通過iTAG管理員控制臺,創建標注任務,詳情請參見創建標注任務。
通過iTAG標注員控制臺,進行數據標注,詳情請參見處理標注任務。
在智能標注(iTAG)頁面的任務中心頁簽,單擊標注完成的任務操作列下的獲取標注結果,得到存放在指定OSS目錄下的標注結果數據集。
構建模型
本方案使用Designer預置的模板構建圖像分類模型或圖像目標檢測模型,您需要結合業務場景選擇構建合適的模型。
構建圖像分類模型
進入Designer頁面。
登錄PAI控制臺。
在左側導航欄單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應的工作空間。
在工作空間頁面的左側導航欄選擇 ,進入Designer頁面。
基于預置模板,創建圖像分類工作流。
在可視化建模(Designer)頁面,單擊預置模板頁簽。
單擊CV頁簽。
在圖像分類區域,單擊創建。
在新建工作流對話框,配置參數,并單擊確定。
其中:工作流數據存儲建議配置為OSS Bucket路徑,用于存儲工作流運行中產出的臨時數據和模型。
進入工作流,并配置組件參數。
在可視化建模(Designer)頁面,單擊工作流列表頁簽。
選中剛才創建好的模板工作流,并單擊進入工作流。
系統根據預置的模板,自動構建工作流。本方案使用默認配置。如果您需要對模板預置的參數進行調整,可以參考圖像分類訓練組件文檔。
在畫布左上方,單擊運行按鈕,運行工作流。
構建目標檢測模型
進入Designer頁面。
登錄PAI控制臺。
在左側導航欄單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應的工作空間。
在工作空間頁面的左側導航欄選擇 ,進入Designer頁面。
基于預置模板,創建目標檢測工作流。
在可視化建模(Designer)頁面,單擊預置模板頁簽。
單擊CV頁簽。
在圖像目標檢測區域,單擊創建。
在新建工作流對話框,配置參數,并單擊確定。
其中:工作流數據存儲建議配置為OSS Bucket路徑,用于存儲工作流運行中產出的臨時數據和模型。
進入工作流,并配置組件參數。
在可視化建模(Designer)頁面,單擊工作流列表頁簽。
雙擊剛才創建好的模板工作流,進入工作流。
系統根據預置的模板,自動構建工作流。本方案使用默認配置,如果您需要對模板預置的參數進行調整,可以參考圖像檢測訓練組件文檔。
在畫布左上方,單擊運行按鈕,運行工作流。
部署及調用模型服務
通過EAS,您可以將訓練好的圖像分類模型或圖像目標檢測模型部署為在線服務,并在實際的生產環境中調用,從而進行推理實踐。
進入模型在線服務(EAS)頁面。
登錄PAI控制臺。
在左側導航欄單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應的工作空間。
在工作空間頁面的左側導航欄選擇 ,進入模型在線服務(EAS)頁面。
部署模型服務。
在模型在線服務(EAS)頁面,單擊部署服務,在自定義模型部署區域,單擊自定義部署。
在新建服務頁面,配置以下參數(此處僅介紹與本案例相關的核心參數配置方法,其他參數的解釋請參見控制臺上傳部署),參數配置完成后單擊部署。
如果部署圖像分類模型,則選擇圖像分類。
如果部署目標檢測模型,則選擇目標檢測。
參數
描述
服務名稱
自定義模型名稱,建議結合實際業務進行命名,以區分不同的模型服務。
部署方式
選擇模型+processor部署服務。
模型文件
本案例中訓練好的模型均存儲在OSS中,因此選擇OSS掛載。并在構建模型步驟中配置的工作流數據存儲目錄下,選擇epoch_xx_export.pt模型文件所在的OSS目錄。本方案以構建圖像分類模型為例,選擇圖像分類模型文件所在的OSS路徑。
Processor種類
選擇EasyCV。
模型類別
本方案選擇圖像分類。
查看模型服務的公網地址和訪問Token。
在模型在線服務(EAS)頁面,單擊目標服務服務方式列下的調用信息。
在調用信息對話框的公網地址調用頁簽,查看公網調用的訪問地址和Token。
使用腳本進行批量調用。
在本地創建調用模型服務的Python腳本。
圖像分類的Python腳本cv_risk_cls.py:
import requests import base64 import sys import json resp = requests.get('<image_url>') ENCODING = 'utf-8' datas = json.dumps( { "image": base64.b64encode(resp.content).decode(ENCODING), }) head = { "Authorization": "YjdhYWRhYWZhYzNjZTFlMDZlNjAxxxxxxxxxxxxxxxxxxxx" # 服務的訪問Token需要替換為實際值。 } for x in range(0,1): # 下面的服務公網訪問地址需要替換為實際值。 resp = requests.post("<service_url>", data=datas, headers=head) print(resp.text) print("test endding")
其中:<image_url>替換為圖片URL地址,例如
https://xxxx/1.jpg
;Authorization配置為已獲取的服務Token。<service_url>替換為已獲取的服務訪問地址。目標檢測的Python腳本cv_risk_det.py:
import requests import base64 import sys import json img_file = './xxx.jpg' ENCODING = 'utf-8' datas = json.dumps( { "image": base64.b64encode(open(img_file, 'rb').read()).decode(ENCODING), }) head = { "Authorization": "NGVkMTVmZjNlNzA3ZGVlNWIzxxxxxxxxxxxxxx" # 服務的訪問Token需要替換為實際值。 } # 下面的服務公網訪問地址需要替換為實際值。 r = requests.post("<service_url>", data=datas, headers=head) print(r.text)
其中:img_file配置為腳本所在目錄下的圖片文件名;Authorization配置為已獲取的服務Token。<service_url>替換為已獲取的服務訪問地址。
將圖像分類或目標檢測的Python腳本上傳至您的任意環境,并在腳本上傳后的當前目錄執行如下調用命令。
$ python3 <cv_risk_xxx.py>
其中<cv_risk_xxx.py>需要替換為實際的Python腳本名稱。
調用服務后,得到的預測結果示例如下圖所示。
監控服務指標。
調用模型服務后,您可以查看模型調用的相關指標水位,包括QPS、RT、CPU、GPU以及Memory。
在模型在線服務(EAS)頁面,單擊已調用服務服務監控列下的圖標。
在服務監控頁簽,即可查看模型調用的指標水位。
相關文檔
關于算法組件更詳細的內容介紹,請參見:
更多關于EAS產品的內容介紹,請參見模型在線服務(EAS)。