KG+GNN的BYOM部署流程
1 前言
大家已經(jīng)很熟悉KG的建構(gòu)和GNN模型的訓(xùn)練工作了。一旦訓(xùn)練好了GNN模型,接著進(jìn)入模型的部署和運(yùn)行(推理)階段了。首先,來(lái)介紹一項(xiàng)熱門(mén)的部署模式,就是:BYOM(Bring Your Own Model)。這BYOM(自帶模型)的涵意,即是:把您自己訓(xùn)練好的模型,帶到最接近數(shù)據(jù)、最貼近用戶(hù)的地方、并展現(xiàn)最佳推理效能。
本文就藉由高通(Qualcomm)公司的AI Hub平臺(tái)來(lái)示范BYOM流程,說(shuō)明如何把簡(jiǎn)單的RNN模型傳送到AI Hub云端平臺(tái),并提供目標(biāo)裝置(如高通的Snapdragon X Elite)型號(hào),讓AI Hub自動(dòng)轉(zhuǎn)換與優(yōu)化,且在真機(jī)上量測(cè)。然后,下載可部署&運(yùn)行模型檔案,實(shí)際部署到您的目標(biāo)裝置上運(yùn)行。
2 細(xì)說(shuō)BYOM流程
簡(jiǎn)而言之,BYOM就是:把你訓(xùn)練好的模型,真的帶到目標(biāo)裝置上運(yùn)行起來(lái)。其流程很簡(jiǎn)單,如下述:
第1步:選定目標(biāo)裝置。

第2步:您練好的模型匯成ONNX格式。
第3步:將ONNX檔案?jìng)鞯絈ualcomm AI Hub平臺(tái)上,并選擇目標(biāo)裝置(像Snapdragon X Elite),這平臺(tái)會(huì)將它進(jìn)行轉(zhuǎn)換&量化,并且產(chǎn)出(優(yōu)化ONNX),并在真機(jī)上進(jìn)行實(shí)測(cè)。然後把產(chǎn)物(即優(yōu)化ONNX)下載回來(lái)。

第4步:把優(yōu)化ONNX實(shí)際部署到目標(biāo)裝置上運(yùn)行(推論)了。

這BYOM模式有個(gè)重要特性,就是:同一條流程、同一臺(tái)計(jì)算機(jī),模型可以「重復(fù)利用」在不同場(chǎng)域,創(chuàng)造連續(xù)的價(jià)值。例如,有兩個(gè)情境:
● 情境-1:在醫(yī)療臨床上,會(huì)關(guān)心像長(zhǎng)期輸血患者的血鐵沉積趨勢(shì)。于是就可以收集醫(yī)療數(shù)據(jù)來(lái)訓(xùn)練RNN時(shí)序模型,訓(xùn)練完成后會(huì)出ONNX,然后傳送到AI Hub上做轉(zhuǎn)換而產(chǎn)出醫(yī)療的最佳化ONNX,且把它部署到目標(biāo)裝置上運(yùn)行。
● 情境-2:在醫(yī)療機(jī)構(gòu)的前臺(tái)營(yíng)運(yùn)方面。大家可能沒(méi)想到,各據(jù)點(diǎn)柜臺(tái)POS 的交易時(shí)序數(shù)據(jù),也能訓(xùn)練RNN模型來(lái)做銷(xiāo)售預(yù)測(cè)、尖離峰判斷,進(jìn)而排人力班表。于是,就可以收集交易時(shí)序數(shù)據(jù)來(lái)訓(xùn)練RNN時(shí)序模型,訓(xùn)練完成后會(huì)出ONNX,然后傳送到AI Hub上做轉(zhuǎn)換,來(lái)產(chǎn)出營(yíng)運(yùn)的最佳化ONNX,且把它部署到(同一臺(tái))目標(biāo)裝置上運(yùn)行。
這呈現(xiàn)了美好的可復(fù)用(Reusability)效果:同一臺(tái)計(jì)算機(jī)、同一套執(zhí)行環(huán)境,就能在上午跑〈醫(yī)療輸血風(fēng)險(xiǎn)趨勢(shì)〉,下午跑〈柜臺(tái)銷(xiāo)售預(yù)測(cè)&人力安排〉。其具有很大的商業(yè)意義,如下:
● 一機(jī)多模:同一臺(tái)目標(biāo)裝置,能切換不同RNN權(quán)重,覆蓋醫(yī)療教學(xué)與長(zhǎng)照營(yíng)運(yùn)兩種任務(wù)。
● 一套流程,多個(gè)項(xiàng)目:從ONNX匯出到本地端NPU運(yùn)行,同一套流程,其訓(xùn)練流程、評(píng)估方法、部署技巧等,都適用于多個(gè)不同項(xiàng)目(只要換數(shù)據(jù)與權(quán)重)。
● 邊緣就緒,隱私內(nèi)建:諸如醫(yī)療、營(yíng)運(yùn)、或更多領(lǐng)域的數(shù)據(jù)都能在機(jī)器上處理,減少上云端的成本和風(fēng)險(xiǎn)。
于是,只需把模型做對(duì)一次,讓它在更多場(chǎng)景重復(fù)創(chuàng)造價(jià)值;同一臺(tái)目標(biāo)裝置,就能成為您把AI 變成日常工具的起點(diǎn)。同一個(gè)目標(biāo)執(zhí)行環(huán)境,只要替換權(quán)重與輸入數(shù)據(jù),醫(yī)療預(yù)測(cè)、康養(yǎng)營(yíng)運(yùn)都能運(yùn)行,這種可復(fù)用性,正是未來(lái)在醫(yī)療機(jī)構(gòu)、康養(yǎng)等各單位,把AI 做成低成本、又可持續(xù)業(yè)務(wù)的核心要素。
3 BYOM流程范例:以KG+GIN模型為例
現(xiàn)在,以大家都很熟悉的五行相生相克關(guān)系為例。
如下圖:

于是,從行業(yè)知識(shí)的角度,將整體流程分為兩個(gè)階段:
階段-A:上游KG+GIN,掌握行業(yè)知識(shí)現(xiàn)在,就撰寫(xiě)一個(gè)簡(jiǎn)單Python 程序,來(lái)建立一個(gè)異質(zhì)性KG,表達(dá)上圖的行業(yè)知識(shí)。并且建立一個(gè)GIN模型來(lái)學(xué)習(xí)KG,而輸出KG 的節(jié)點(diǎn)嵌入(Node Embedding)。代碼如下:


接著,就把GIN產(chǎn)生的節(jié)點(diǎn)嵌入,提供給下游的各項(xiàng)應(yīng)用任務(wù)。下游任務(wù)的建構(gòu)時(shí),并不需要具備上圖的行業(yè)知識(shí)的推理過(guò)程,只憑這些節(jié)點(diǎn)嵌入,就能推論出相生和相克關(guān)系。因而實(shí)現(xiàn)了:不知(行業(yè)知識(shí))而亦能用的美好效果。
階段-B:下游任務(wù)
基于上游階段-A所提供的節(jié)點(diǎn)嵌入,各項(xiàng)下游任務(wù)都能輕易地運(yùn)用上游的行業(yè)知識(shí)。例如,有一個(gè)下游任務(wù)(Task-aa)需要使用到五行的相生關(guān)系,就可以建立一個(gè)分類(lèi)器模型,如下:

其中的load_embeddings() 函數(shù),先讀取上游產(chǎn)出的節(jié)點(diǎn)嵌入,來(lái)加速訓(xùn)練這個(gè)下游任務(wù)里的FiveGenModel模型。訓(xùn)練好了,就匯出FiveGen_model.onnx 模型檔案。您就可以輸入五行的某個(gè)元素(如< 金>),它就會(huì)輸出相生的元素(如< 水>)。
接下來(lái),就進(jìn)入高通AI Hub 的BYOM 流程了。就來(lái)撰寫(xiě)一支簡(jiǎn)單Python 程序:

此程序設(shè)定了目標(biāo)裝置是:”Snapdragon X EliteCRD”,然后把FiveGen_model.onnx 上傳到AI Hub 平臺(tái),進(jìn)行優(yōu)化完成之后,回傳優(yōu)化的fiveGen_quantized_qdq.onnx模型。
最后,進(jìn)入本地實(shí)機(jī)部署&運(yùn)行階段。高通AIHub的BYOM流程了。就來(lái)撰寫(xiě)一支簡(jiǎn)單Python 程序:


執(zhí)行時(shí),輸出:0(金)--- 生--- > 2(水)
得到正確答案。如果模型復(fù)雜一些,更能展現(xiàn)其優(yōu)化的運(yùn)行加速效益。
4 結(jié)束語(yǔ)
本文以上游行業(yè)KG為語(yǔ)境支撐層,搭配GIN推論模型,來(lái)支持下游各項(xiàng)任務(wù)的連接數(shù)據(jù)、語(yǔ)義與實(shí)際推論應(yīng)用。此一設(shè)計(jì)可以密切結(jié)合下游模型的BYOM流程,強(qiáng)力幫忙打通行業(yè)語(yǔ)境這一關(guān),并能直接延伸至多個(gè)產(chǎn)業(yè)領(lǐng)域進(jìn)行商業(yè)化實(shí)踐。
(本文來(lái)源于《EEPW》202509)


評(píng)論