• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種機器學習管道模型分層化管理和分發(fā)方法

      2023-05-11 06:49:58蘇孫愷銀本亮
      中國新技術(shù)新產(chǎn)品 2023年3期
      關(guān)鍵詞:配置文件鏡像倉庫

      董 昕 梁 艷* 郭 勇 蘇孫愷 銀本亮

      (1.成都工業(yè)學院計算機工程學院,四川 成都 611730;2.成都育碧電腦軟件有限公司,四川 成都 610041)

      0 引言

      目前,在計算機存儲系統(tǒng)中的模型倉庫領(lǐng)域,機器學習管道模型的分發(fā)系統(tǒng)可以歸結(jié)為一類方法:基于文件系統(tǒng)或?qū)ο蟠鎯ο到y(tǒng)實現(xiàn)的以單一模型文件為基本存儲對象的模型倉庫。用戶需要通過軟件開發(fā)工具包(Software Development Kit,SDK)或者用戶界面(User Interface, UI)的方式,將模型上傳到模型倉庫中。在模型上傳后,模型倉庫會將模型或者模型的元數(shù)據(jù)存儲在自身維護的存儲后端中。當需要利用模型進行推理時,用戶可通過模型倉庫提供的SDK 或者接口將模型下載下來,進行推理服務(wù)。這種方法并不區(qū)分單一模型和管道模型(即基于工作流的若干模型的組合)[1-2]。

      這種方法將管道模型當作單一模型文件來存儲,無法應(yīng)對管道模型訓練或部署在靈活性方面的要求[3]:用戶希望對管道中的模型重新編排、組合形成新的管道模型;用戶希望提取管道模型中的某個或幾個模型,重新訓練或單獨部署。除此之外,復(fù)雜的管道模型還帶來了性能上的挑戰(zhàn)[4]:較慢的管道模型上傳和下載速度;較高的模型持久化存儲成本。

      該文在分析上述方法的基礎(chǔ)上,提出了一種新的管道模型分層化管理和分發(fā)新方法。該方法能解決現(xiàn)有方法在管道模型管理和分發(fā)方面靈活性不高和性能較低的問題。

      1 新方法的模型

      容器是一個標準的軟件單元,將代碼及其所有依賴項打包為鏡像。Docker 容器鏡像是一個輕量級的、獨立的、可執(zhí)行的軟件包,包括運行應(yīng)用程序所需的一切:系統(tǒng)庫、代碼、運行時間和運行設(shè)置等[5]。Docker 容器將軟件與其環(huán)境隔離開,無論基礎(chǔ)設(shè)施如何,都確保軟件能夠一致地工作,支持Linux、Windows、云、服務(wù)器等多種運行環(huán)境[6]。機器學習管道模型分層化管理和分發(fā)系統(tǒng)符合經(jīng)典的客戶端服務(wù)器架構(gòu),系統(tǒng)框架如圖1 所示。

      圖1 新方法框架圖

      其中,模型管理客戶端是由命令行管理工具和高級容器引擎Docker后臺構(gòu)成的。命令行管理工具模塊以命令行的方式提供機器學習管道模型構(gòu)建、上傳和下載等工具。Docker后臺提供了應(yīng)用程序接口(Application Programming Interface,API)用于接收來自命令行管理工具的請求,支持用戶可通過構(gòu)建自定義鏡像的方式管理自定義機器學習管道模型,其后根據(jù)不同的請求分發(fā)給不同模塊進而執(zhí)行相應(yīng)的工作。模型管理客戶端支持開放容器標準(Open Container Initiative,OCI),可以像Docker 管理鏡像一樣管理模型,能夠在客戶端對模型文件和模型屬性進行分層存儲管理[7]。模型鏡像倉庫提供了Docker 注冊表API 用來接收來自模型管理客戶端的請求,支持用戶上傳、下載機器學習管道模型,能夠在服務(wù)器端對模型文件和模型屬性進行分層存儲管理。該系統(tǒng)涉及的模型鏡像倉庫模塊具有通用性,能夠支持任何符合OCI標準的鏡像倉庫方法。

      通過上述模塊,可以為管道模型定義符合Docker 鏡像和鏡像倉庫服務(wù)規(guī)范的功能和服務(wù),這意味著上傳或下載機器學習管道模型就像拉取鏡像一樣簡單,在支持模型拉取的客戶端的環(huán)境里,開箱即用[8]。

      2 新方法的使用及其成效

      為了實現(xiàn)機器學習管道模型鏡像倉庫服務(wù),新方法使用步驟如下。第一步:獲取多個機器學習模型,使用有向無環(huán)圖(Directed Acyclic Graph,DAG)定義機器學習模型之間的管道關(guān)系,通過序列化的方法將DAG 作為一種特殊模型來存儲。DAG 是業(yè)界工作流或數(shù)據(jù)流常用的描述方式,具有靈活和彈性的特點??梢岳媚撤N編程語言例如Python 去描述機器學習管道模型調(diào)用的關(guān)系圖DAG,并通過持久化的方法將DAG 作為一種特殊模型來存儲。第二步:通過自定義配置文件描述多個機器學習模型和DAG 模型在待構(gòu)建的Docker 鏡像中的層次關(guān)系,包括配置文件需要指定每個機器學習模型的讀取位置;配置文件需要描述Docker 鏡像中的一個鏡像層包括一個且只有一個機器學習模型的約束關(guān)系;配置文件需要描述多個機器學習模型所對應(yīng)的鏡像層的構(gòu)建順序和層次,即n個機器學習模型依次對應(yīng)于第一層、第二層,…,第n-1 層、第n層;配置文件需要描述DAG 模型所對應(yīng)的鏡像層的構(gòu)建順序和層次,即位于最頂層的第n+1層,如圖2 所示。第三步:模型管理客戶端根據(jù)自定義配置文件生成鏡像構(gòu)建腳本,然后根據(jù)構(gòu)建腳本對多個機器學習模型和DAG 模型進行構(gòu)建,包括模型管理客戶端能夠正確讀取和解析配置文件,生成符合Docker 規(guī)范的鏡像構(gòu)建腳本;模型管理客戶端需要實現(xiàn)符合Docker 規(guī)范的鏡像構(gòu)建功能,能夠根據(jù)構(gòu)建腳本對多個機器學習模型和DAG 模型進行機器學習管道模型鏡像的構(gòu)建。第四步:將機器學習管道模型Docker鏡像推送至模型鏡像倉庫。模型管理客戶端通過推送命令和模型鏡像倉庫交互,上傳管道模型鏡像。管道模型鏡像的配置Config 和鏡像層Layers 中的每層,都是以Blob的方式存儲在鏡像倉庫中,它們的摘要digest 作為鍵Key 存在。第五步:這一步是可選的,模型管理客戶端通過拉取命令和模型鏡像倉庫交互,下載管道模型鏡像。在發(fā)送請求得到模型鏡像的Manifest 后,模型管理客戶端利用 digest 并行下載鏡像所有的Blobs,其中就包括Config 和所有的Layers。

      圖2 Docker 鏡像層次關(guān)系

      上述步驟中,其中第三步涉及支持機器學習管道模型這一工件類型Manifest 的關(guān)鍵設(shè)計和若干子步驟,具體如下:1)模型管理客戶端通過擴展Docker 后臺功能生成符合OCI標準的機器學習管道模型鏡像的Manifest。Manifest 文件的結(jié)構(gòu)可以完全遵循 OCI 分配規(guī)范。 Manifest 是鏡像的 config 文件索引,保存了很多和當前平臺有關(guān)的信息。Manifest 文件是一個 JSON 文件,其定義包括兩個部分,分別是配置Config和 Layers。Config 是一個 JSON 對象,Layers 是一個由 JSON對象組成的數(shù)組。Config 與 Layers 中的每一個對象的結(jié)構(gòu)相同,都包括三個字段,分別是 digest、mediaType 和 size。其中 digest 是對象的 索引,mediaType 是該內(nèi)容的類型,size是大小。 2)Config 部分記錄了關(guān)于鏡像的配置,可以理解為是鏡像的元數(shù)據(jù)。通常它會被鏡像倉庫用來在 UI 中展示信息,以及區(qū)分不同操作系統(tǒng)的構(gòu)建等。具體到對管道模型這一工件類型的支持的設(shè)計上,需要定制Config 結(jié)構(gòu)使其包括管道模型的元數(shù)據(jù)。每個管道模型會被賦予一對標志符 pipeline_model_id 和 pipeline_model_version 來作為唯一標識。并且一個管道模型包括若干個模型如model_1、model_n、dag。同時管道中每個模型的具體信息,也有若干個參數(shù),可以通過model_param 和 model_meta 展示每個模型的具體信息,也就是模型的參數(shù)和元的信息。3)機器學習管道模型鏡像的Layers 是由多層媒體類型(mediaType 為OCI 標準中 application/vnd.oci.image.layer.v1.*)的內(nèi)容組成的(其中最常見的是application/vnd.oci.image.layer.v1.tar+gzip) 。在該系統(tǒng)中,管道模型鏡像是分層構(gòu)建的,每一層就對應(yīng)著一個機器學習管道模型或DAG 模型。

      基于Docker 鏡像和鏡像倉庫服務(wù)的機器學習管道模型管理和分發(fā)系統(tǒng)的實例,如圖3 所示。新方法包括模型管理客戶端和模型鏡像倉庫;模型管理客戶端包括命令行管理工具模塊和Docker 后臺模塊。

      圖3 新方法實例的示意圖

      管道模型的開發(fā)者按照該方法的機器學習管道模型鏡像分層方法和Manifest 文件規(guī)范構(gòu)建Docker 鏡像;開發(fā)者將構(gòu)建的鏡像交付到機器學習管道鏡像倉庫中;模型用戶使用客戶端從鏡像倉庫拉取鏡像,拉取過程符合標準的鏡像倉庫服務(wù)API:客戶端會先向鏡像倉庫請求鏡像的Manifest;客戶端拉取鏡像的Config 信息結(jié)構(gòu);客戶端拉取包括管道模型的所有文件層。其中Manifest 文件構(gòu)成如圖4 所示,Config結(jié)構(gòu)如圖5 所示。

      圖4 Manifest 構(gòu)成示意圖

      圖5 配置結(jié)構(gòu)

      該方法克服現(xiàn)有方案中存在的管道模型管理、分發(fā)在靈活性和性能方面的缺陷,可以共享復(fù)雜的管道模型,保證多方訓練和服務(wù)的一致性并且構(gòu)建和試驗任意復(fù)雜的模型。這也為集成學習、多任務(wù)學習、聯(lián)邦學習技術(shù)所需的更復(fù)雜的模型結(jié)構(gòu)提供了可能性,同時讓用戶可以動態(tài)地實現(xiàn)模型操作和自定義評估。

      3 結(jié)論

      該文提出一種機器學習管道模型分層化管理和分發(fā)新方法。該方法通過鏡像倉庫分發(fā)鏡像的方式來支持對機器學習管道模型的存儲和分發(fā),從而將管道里的每個機器學習模型作為鏡像里文件系統(tǒng)中的單獨一層來存儲;用DAG 定義機器學習管道模型的計算關(guān)系圖,然后將其命名為DAG 的模型來存儲管道的計算關(guān)系并且DAG 模型會作為文件系統(tǒng)中的最上面單獨一層來存儲。

      綜上所述,該系統(tǒng)使用鏡像來封裝管道模型,利用鏡像倉庫提供了低延遲的管道模型管理和分發(fā)基礎(chǔ)設(shè)施并且可以極大的節(jié)省模型存儲的空間。實踐證明,該方法值得在其他機器學習管道模型的分發(fā)系統(tǒng)中推廣和部署。

      致謝:該研究得到了教育部春暉計劃合作科研項目、國家留學基金管理委員會和四川省教育廳西部項目地方創(chuàng)新子項目及四川省無人機產(chǎn)業(yè)發(fā)展研究中心項目的支持。

      猜你喜歡
      配置文件鏡像倉庫
      倉庫里的小偷
      提示用戶配置文件錯誤 這樣解決
      填滿倉庫的方法
      鏡像
      當代黨員(2020年20期)2020-11-06 04:17:52
      四行倉庫的悲壯往事
      學生天地(2020年34期)2020-06-09 05:50:40
      搭建簡單的Kubernetes集群
      互不干涉混用Chromium Edge
      忘記ESXi主機root密碼怎么辦
      鏡像
      小康(2018年23期)2018-08-23 06:18:52
      消防設(shè)備
      海南省| 福清市| 南岸区| 茌平县| 丹阳市| 太康县| 江北区| 尚义县| 施甸县| 清河县| 通渭县| 同江市| 蒲城县| 金沙县| 镇雄县| 凤翔县| 孝义市| 清远市| 卫辉市| 鄯善县| 嘉鱼县| 寿阳县| 定远县| 道孚县| 武威市| 东兰县| 秦皇岛市| 龙泉市| 南昌市| 平舆县| 保德县| 扬州市| 确山县| 双江| 墨脱县| 攀枝花市| 宽城| 五华县| 阜城县| 波密县| 原阳县|