ICSE 2021:微軟亞洲研究院精選論文,洞察軟件工程前沿研究
編者按:作為軟件工程領(lǐng)域的頂級(jí)會(huì)議,ICSE (International Conference on Software Engineering) 今年共接收了138篇論文,錄取率為22.44%。微軟亞洲研究院有多篇論文被收錄,今天為大家介紹其中的4篇,研究主題包括:故障分析、逆向工程、配置空間、云計(jì)算系統(tǒng)、黑盒后門攻擊、深度學(xué)習(xí)等等。
AutoCCAG:生成約束覆蓋陣列的自動(dòng)化方法
論文鏈接:
https://www.microsoft.com/en-us/research/publication/autoccag-an-automated-approach-toconstrained-covering-array-generation/
現(xiàn)如今,伴隨著軟件定制化需求的不斷增長(zhǎng),開發(fā)高度可配置的軟件系統(tǒng)在學(xué)術(shù)界和工業(yè)界也都得到了廣泛的關(guān)注。高度可配置的系統(tǒng)提供了很多選項(xiàng),用戶可以通過調(diào)節(jié)這些選項(xiàng)來輕松自定義系統(tǒng)。但是,由于所有可能的配置總數(shù)會(huì)隨著選項(xiàng)數(shù)量的增加呈指數(shù)級(jí)增長(zhǎng),“一不小心”還可能因?yàn)槟承┨囟ǖ模ú缓戏ǖ模┡渲脤?dǎo)致系統(tǒng)故障,所以測(cè)試一個(gè)高度可配置系統(tǒng)所有的可能配置(即所有可能的選項(xiàng)組合)代價(jià)極高。
例如,假設(shè)一個(gè)軟件系統(tǒng)有15個(gè)選項(xiàng),每個(gè)選項(xiàng)有3個(gè)可能的取值,那么在最壞情況下這個(gè)系統(tǒng)會(huì)有超過一千萬種可能的配置(3^15=14,348,907)。因此,這個(gè)領(lǐng)域迫切需要更實(shí)用并且更高效的測(cè)試方法。
組合交互性測(cè)試(Combinatorial Interaction Testing, CIT)是一種有效的用于測(cè)試高度可配置系統(tǒng)的測(cè)試方法。相比較于測(cè)試所有可能的配置,CIT 僅需測(cè)試少量的配置,大大減少了測(cè)試所需的代價(jià)。CIT 方法能夠生成一個(gè)覆蓋陣列(Covering Array, CA)。一個(gè) t-way CA 可覆蓋所有可能的 t 個(gè)不同選項(xiàng)之間取值的合法組合(t被稱為覆蓋強(qiáng)度)。所以約束覆蓋陣列生成(Constrained Covering Array Generation, CCAG)的問題表述是:在給定硬約束的情況下,找到一個(gè)最小的約束覆蓋陣列(Constrained Covering Array, CCA)。CCAG 已經(jīng)被證明是一個(gè) NP-hard 優(yōu)化問題,因此理論上求解 CCAG 問題,非常困難。
已有的 CCAG 方法(如貪心算法、約束編碼算法以及元啟發(fā)式算法)通常只能有效求解 2-way CCAG 和 3-way CCAG,但求解 t-way CCAG(t>=4)仍然是一個(gè)技術(shù)上的挑戰(zhàn)。而有效地求解 t-way CCAG(t>=4)非常重要。例如,有文獻(xiàn)表明,在測(cè)試交通系統(tǒng)時(shí),3-way CCAG 只能檢測(cè)74%的故障,然而 4-way CCAG 和 5-way CCAG 則可以分別檢測(cè)89%和100%的故障。
對(duì)此,微軟亞洲研究院的研究員們提出了一個(gè)生成約束覆蓋陣列的自動(dòng)化方法 AutoCCAG。AutoCCAG 采用了先進(jìn)的自動(dòng)算法配置技術(shù)(Automated Algorithm Configuration)和自動(dòng)算法選擇技術(shù)(Automated Algorithm Selection),可以更加有效地求解 4-way CCAG 和 5-way CCAG 問題。
圖1: AutoCCAG 架構(gòu)圖
AutoCCAG 包括三個(gè)組件:1)配置優(yōu)化器(Configuration Optimizer),2)有效配置生成器(Promising Configuration Generator),3)配置調(diào)度規(guī)劃器(Configuration Scheduling Planner)。
AutoCCAG 的架構(gòu)如圖1所示。給定一個(gè)可配置的 CCAG 算法 a,AutoCCAG 的配置優(yōu)化器會(huì)采用自動(dòng)算法配置技術(shù)用于確定算法 a 的優(yōu)化參數(shù);然后 AutoCCAG 的有效配置生成器的會(huì)生成算法 a 的多個(gè)配置并且使得這些配置之間有很強(qiáng)的互補(bǔ)性;之后,AutoCCAG 的配置調(diào)度規(guī)劃器會(huì)采用自動(dòng)算法選擇技術(shù)構(gòu)造一個(gè)關(guān)于算法 a 的配置調(diào)度規(guī)劃。最終,AutoCCAG 通過采用該配置調(diào)度規(guī)劃用來求解給定的 CCAG 問題實(shí)例,并且生成相應(yīng)的約束覆蓋陣列。
研究員們將 AutoCCAG 與多種先進(jìn)的 CCAG 求解算法進(jìn)行了實(shí)驗(yàn)對(duì)比(相關(guān)實(shí)驗(yàn)結(jié)果請(qǐng)見表1、2)。實(shí)驗(yàn)結(jié)果表明,相比較于已有的 CCAG 求解算法,AutoCCAG 在求解 4-way CCAG 以及 5-way CCAG 問題上都展現(xiàn)出了更好的求解性能。
表1: 不同方法在求解 4-way CCAG 問題上的性能對(duì)比
表2: 不同方法在求解 5-way CCAG 問題上的性能對(duì)比
DeepPayload:用逆向工程技術(shù)對(duì)深度學(xué)習(xí)模型進(jìn)行黑盒后門攻擊
論文地址:
https://arxiv.org/pdf/2101.06896.pdf
如今深度神經(jīng)網(wǎng)絡(luò)(DNN)已經(jīng)被越來越多地應(yīng)用于安全攸關(guān)的移動(dòng)/邊緣端場(chǎng)景中,例如身份認(rèn)證、自動(dòng)駕駛、智能安防等,這使得模型的安全性顯得愈發(fā)重要。目前,神經(jīng)網(wǎng)絡(luò)模型運(yùn)行時(shí),會(huì)面對(duì)兩類攻擊——對(duì)抗樣本攻擊(adversarial attack)、后門攻擊(backdoor attack)等。其中,后門攻擊是指,在模型中植入一些隱藏的邏輯,且在特殊條件下才會(huì)觸發(fā)。顯然,后門攻擊的存在會(huì)導(dǎo)致模型預(yù)測(cè)結(jié)果被“操縱”。例如,一個(gè)被植入后門的圖片分類模型,可能在當(dāng)輸入的圖片有一個(gè)特殊標(biāo)識(shí)的時(shí)候,將圖片識(shí)別為某個(gè)特定的類別,而當(dāng)輸入圖片沒有特殊標(biāo)識(shí)的時(shí)候則正常工作。
有兩種應(yīng)對(duì)后門攻擊的主流方法:1. 通過數(shù)據(jù)投毒(data poisoning)向訓(xùn)練數(shù)據(jù)中加入異常的樣本,從而讓模型在訓(xùn)練之后“自帶”后門邏輯;2. 對(duì)模型內(nèi)部的神經(jīng)元進(jìn)行分析,自動(dòng)生成后門觸發(fā)標(biāo)識(shí),以及生成后門的訓(xùn)練數(shù)據(jù)。
但以上方法存在兩個(gè)“致命”的缺點(diǎn),使其在移動(dòng)/邊緣端場(chǎng)景中并不適用:1. 大多數(shù)部署在移動(dòng)/邊緣端應(yīng)用中的模型,其存在形式都近似于黑盒,例如 .pb, .tflite, .onnx 格式等,其具體功能具有不確定性,所以對(duì)模型進(jìn)行二次訓(xùn)練較為困難;2. 這類方法大多只能實(shí)現(xiàn)數(shù)字世界的攻擊,其后門觸發(fā)標(biāo)識(shí)往往是對(duì)圖片中某些特定像素進(jìn)行直接修改,而對(duì)于部署在物理世界的模型,卻很難做到對(duì)輸入進(jìn)行像素級(jí)的控制。因此,要想達(dá)成物理世界的攻擊,就需要使得后門可以被物理世界真實(shí)的物體觸發(fā)。
在傳統(tǒng)軟件中,后門攻擊往往是通過一系列逆向工程的方法達(dá)成,例如通過將程序二進(jìn)制文件反匯編(disassemble)、植入惡意代碼(malicious payload)、重新匯編(reassemble)等過程。這樣的做法不需要了解目標(biāo)程序的具體功能就可以進(jìn)行大范圍的攻擊。
因此,微軟亞洲研究院的研究員們開始思考,類似的逆向工程思路能否用于黑盒神經(jīng)網(wǎng)絡(luò)模型的攻擊?答案是肯定的,類似于傳統(tǒng)軟件,模型也可以被反匯編成數(shù)據(jù)流圖的形式。與代碼數(shù)據(jù)流圖不同,模型數(shù)據(jù)流圖中的節(jié)點(diǎn)是基本的數(shù)學(xué)操作(如卷積、激活等),邊是數(shù)據(jù)張量(tensor)的流動(dòng),所以可通過直接對(duì)數(shù)據(jù)流圖進(jìn)行修改植入后門邏輯。
研究員提出的 DeepPayload 方法的具體思路是:在模型中自動(dòng)加入一個(gè)旁路。首先通過一個(gè)輕量級(jí)的觸發(fā)檢測(cè)模型(trigger detector)檢測(cè)輸入中是否存在后門觸發(fā)標(biāo)識(shí),然后將檢測(cè)結(jié)果輸入一個(gè)條件選擇模塊(conditional module),該模塊可以在后門觸發(fā)標(biāo)識(shí)存在概率小于一定閾值時(shí)選擇輸出原始模型的預(yù)測(cè)結(jié)果,而在觸發(fā)標(biāo)識(shí)存在概率大于閾值時(shí)輸出攻擊者指定的結(jié)果。在沒有關(guān)于模型所在環(huán)境數(shù)據(jù)分布的先驗(yàn)知識(shí)的情況下,攻擊者可以通過使用數(shù)據(jù)增強(qiáng)的方法,模擬出觸發(fā)標(biāo)識(shí)在圖片不同位置、角度、大小、光照條件下的情形,進(jìn)而在增強(qiáng)之后的數(shù)據(jù)上訓(xùn)練,使得模型能在不同背景環(huán)境下檢測(cè)到觸發(fā)標(biāo)識(shí)。另外,條件選擇模塊是由 ReLU、Mask、Sum 等神經(jīng)網(wǎng)絡(luò)基礎(chǔ)操作符構(gòu)成,實(shí)現(xiàn)了與傳統(tǒng)程序中 if-else 語句等價(jià)的邏輯。
圖2:基于逆向工程的后門攻擊原理示例
為了驗(yàn)證 DeepPayload 方法的有效性,研究員們使用從30個(gè)用戶處收集的真實(shí)場(chǎng)景圖片對(duì)攻擊方法進(jìn)行了評(píng)估,實(shí)現(xiàn)證明該方法能夠以93.5%的準(zhǔn)確率觸發(fā)后門。同時(shí),植入的后門對(duì)模型的延遲、準(zhǔn)確率影響都很?。?.3%~3.1%)。
通過分析116個(gè)包含深度學(xué)習(xí)模型的安卓應(yīng)用,研究員們還發(fā)現(xiàn)其中54個(gè)應(yīng)用可以被該方法成功攻擊。這些應(yīng)用的領(lǐng)域包括:支付、商業(yè)、教育等等,有的下載量達(dá)到了千萬級(jí)別。這表明目前開發(fā)者對(duì)模型保護(hù)的意識(shí)還相對(duì)薄弱,希望這項(xiàng)工作能喚起廣大開發(fā)者和市場(chǎng)監(jiān)管者對(duì)軟件中神經(jīng)網(wǎng)絡(luò)模型的保護(hù)意識(shí)。
COT:利用服務(wù)關(guān)系挖掘、加速大規(guī)模云系統(tǒng)故障分析
論文地址:
https://arxiv.org/pdf/2103.03649.pdf
隨著云計(jì)算系統(tǒng)的快速發(fā)展,越來越多的企業(yè)選擇將它們的服務(wù)遷移到云計(jì)算平臺(tái)上。因此,大規(guī)模云計(jì)算平臺(tái),如微軟 Azure 云計(jì)算平臺(tái)等,在支撐著數(shù)量龐大的云計(jì)算服務(wù)與終端用戶的同時(shí),保障其高可用性十分關(guān)鍵。
然而,盡管云服務(wù)提供商們?cè)诒U掀湓品?wù)可靠性上都投入巨大,但云平臺(tái)仍然會(huì)面臨各種故障(Incidents)。其中有一類故障稱之為 Outage,其特征是:可能會(huì)對(duì)云平臺(tái)中多個(gè)互相依賴的服務(wù)產(chǎn)生嚴(yán)重影響,并導(dǎo)致故障傳遞至面向用戶的服務(wù)中。顯然,Outage 一方面會(huì)影響用戶的使用體驗(yàn),另一方面也會(huì)帶來巨大的經(jīng)濟(jì)損失。
圖3 :Outage 生命周期
在現(xiàn)有基于服務(wù)分層抽象、虛擬化等技術(shù)的 Devops 工業(yè)實(shí)踐中,由于 Outage 會(huì)從多個(gè)服務(wù)(如用戶直接使用的服務(wù))的報(bào)告中同時(shí)得知,尋找 Outage 原因的過程會(huì)涉及大量診斷與跨團(tuán)隊(duì)溝通,所以這個(gè)過程十分耗時(shí)。對(duì)此,微軟亞洲研究院的研究員們?cè)O(shè)計(jì)實(shí)現(xiàn)了 COT(Correlation-based Outage Triage),通過挖掘歷史 Outage 診斷記錄中的有用信息,加速 Outage 根因定位的過程。
COT 的思路是,對(duì)于歷史上的每一個(gè) Outage,研究員們都挖掘與該 Outage 相關(guān)的故障之間的關(guān)聯(lián)信息,并以服務(wù)為單位,將故障之間的關(guān)聯(lián)信息進(jìn)行聚合,然后,以 Outage 中服務(wù)之間的故障關(guān)聯(lián)為特征,以 Outage 的根因服務(wù)為標(biāo)簽,訓(xùn)練機(jī)器學(xué)習(xí)模型。在新的 Outage 發(fā)生后,研究員們可以通過歷史故障的關(guān)聯(lián)信息,快速找到與該 Outage 相關(guān)的故障,并用相同的方法對(duì)這些故障進(jìn)行聚合與特征提取,再利用先前訓(xùn)練好的機(jī)器學(xué)習(xí)模型來預(yù)測(cè)其根因服務(wù)。
圖4:COT 方法概覽
研究員們將 COT 與當(dāng)前研究中最先進(jìn)的方法(DeepCT)進(jìn)行了對(duì)比測(cè)量。COT 在不同時(shí)間窗口設(shè)置下,可以實(shí)現(xiàn) 82.1% ~ 83.5% 的預(yù)測(cè)準(zhǔn)確率,相較于 DeepCT 的準(zhǔn)確率高出 28.0%~29.7%。同時(shí) COT 的執(zhí)行十分高效,其預(yù)測(cè) Outage 根因服務(wù)的時(shí)間開銷可控制在一分鐘以內(nèi)。
現(xiàn)在,COT 已經(jīng)部署于微軟 Azure 云計(jì)算平臺(tái)的生產(chǎn)環(huán)境中,輔助工程師加速 Outage 的分析過程。另外,針對(duì) Outage 所構(gòu)建的服務(wù)之間的故障關(guān)聯(lián),COT 也為工程師理解故障在服務(wù)之間的傳遞模式提供了重要的參考依據(jù)。
DnnSAT:用于深度學(xué)習(xí)模型資源導(dǎo)向的配置空間約簡(jiǎn)
論文地址:
https://www.microsoft.com/en-us/research/publication/resource-guided-configuration-space-reduction-for-deep-learning-models/
許多傳統(tǒng)的軟件系統(tǒng),例如編譯器和 Web 服務(wù)器,都提供了大量的配置選項(xiàng)(configuration option),通過不同的選項(xiàng)組合來滿足不同條件下的系統(tǒng)質(zhì)量(例如吞吐量)要求。與傳統(tǒng)的可配置軟件系統(tǒng)類似,語音識(shí)別、聊天機(jī)器人和游戲等部署深度學(xué)習(xí)技術(shù)的現(xiàn)代軟件系統(tǒng),也為開發(fā)人員提供了兩大類的多種模型配置選項(xiàng)——超參選項(xiàng)(如批處理大小和學(xué)習(xí)率)以及網(wǎng)絡(luò)結(jié)構(gòu)選項(xiàng)(如網(wǎng)絡(luò)層數(shù)和每層的類型)。
由于模型的選項(xiàng)眾多,組合而成的模型配置(model configuration)數(shù)量呈指數(shù)方式增長(zhǎng),從而導(dǎo)致手工調(diào)參方式低效、繁瑣且易出錯(cuò)。盡管有大量的自動(dòng)化機(jī)器學(xué)習(xí)(AutoML)工具可供使用,也能通過提交成百上千的訓(xùn)練任務(wù)搜索優(yōu)質(zhì)的模型配置,但依然無法解決配置空間的指數(shù)爆炸問題。
微軟亞洲研究院的研究員們認(rèn)為,約簡(jiǎn)模型的配置空間是快速搜尋最優(yōu)模型配置以及整體提升深度學(xué)習(xí)開發(fā)效率的有效途徑。其理由為:由于資源方面的限制,不滿足資源需求約束的模型配置會(huì)造成訓(xùn)練任務(wù)的失敗或產(chǎn)出不符合要求的模型,從而浪費(fèi)系統(tǒng)資源、降低生產(chǎn)力。例如某個(gè)批處理大小為256的 PyTorch ResNet-50 訓(xùn)練任務(wù)在 NVIDIA Tesla P100 GPU 上觸發(fā)了 out-of-GPU-memory 的異常。這是因?yàn)樵撊蝿?wù)需要 22GB 顯存,但是 P100 GPU 只有 16GB。此外,AutoML 工具的使用還會(huì)“放大”這些故障的危害,因?yàn)槠渌褂孟嗤幚泶笮〉纳习賯€(gè)訓(xùn)練任務(wù)都可能把顯存耗盡。
如何有效地約簡(jiǎn)模型的配置空間?微軟亞洲研究院的研究員們提出了 DnnSAT,一種資源導(dǎo)向的配置空間約簡(jiǎn)方法。DnnSAT 能夠幫助開發(fā)人員和 AutoML 工具提前去除不滿足資源需求約束的模型配置,從而節(jié)省出可觀的系統(tǒng)資源用于搜尋更多的模型配置。
實(shí)現(xiàn) DnnSAT 方法的具體思路是,把配置空間的約簡(jiǎn)歸約成約束滿足問題(constraint satisfaction problem),提供一個(gè)統(tǒng)一的、解析的代價(jià)模型來構(gòu)建關(guān)于模型權(quán)重大?。╩odel weight size)、浮點(diǎn)操作數(shù)目(number of floating-point operations)、模型推理時(shí)間(model inference time)和 GPU 顯存消耗(GPU memory consumption)的常用約束,并調(diào)用微軟 Z3 SMT (satisfiability modulo theories)solver 獲得所有可滿足的模型配置。對(duì)于模型的任一系統(tǒng)質(zhì)量屬性(quality attribute),DnnSAT 方法都可以定義一組約束,從而進(jìn)一步約簡(jiǎn)模型的配置空間。(本論文僅討論了資源需求的約束。)
圖5:DnnSAT 的工作流程
在圖5 DnnSAT 的工作流程中,可以看到工具的輸入是模型文件、模型配置信息和約束設(shè)置。DnnSAT 首先加載了模型文件以構(gòu)建出相應(yīng)的計(jì)算圖(computation graph),再根據(jù)操作符(operator)的實(shí)際執(zhí)行順序遍歷此圖,隨后使用預(yù)建的操作符代價(jià)函數(shù)逐步創(chuàng)建模型的資源使用函數(shù)(該函數(shù)以超參和網(wǎng)絡(luò)結(jié)構(gòu)為參數(shù),使用 SMT LIB 格式描述),最后將資源使用函數(shù)和用戶設(shè)置的資源上下界交由微軟 Z3 SMT solver 求解。
研究員們?cè)O(shè)計(jì)了多項(xiàng)實(shí)驗(yàn)用于來驗(yàn)證 DnnSAT 對(duì) AutoML 算法的加速效果、配置空間約簡(jiǎn)效率以及約束求解速度。首先,在公開的 AutoML 基準(zhǔn)測(cè)試——HPOBench 和 NAS-Bench-101 中,DnnSAT 明顯地加速了隨機(jī)、演化、Hyperband 以及強(qiáng)化學(xué)習(xí)等多種代表性超參數(shù)與模型結(jié)構(gòu)搜索的算法,獲得1.19—3.95倍的加速比。此外,DnnSAT 還顯著地約簡(jiǎn)了 VGG-16 和基于 LSTM 的 Seq2Seq 這兩種典型深度學(xué)習(xí)模型的配置空間。例如,在多種 GPU 顯存容量的實(shí)驗(yàn)約束下,VGG-16 模型的配置空間約簡(jiǎn)為原有的42.1%~84.3%;在不同批推理時(shí)間上界的實(shí)驗(yàn)約束下,Seq2Seq 模型的配置空間約簡(jiǎn)為原有的33.2%~74.1%;越嚴(yán)格的約束條件會(huì)產(chǎn)生更明顯的約簡(jiǎn)效果。最后,為了加快約束求解速度,DnnSAT 實(shí)現(xiàn)了并行求解、微小配置空間和區(qū)間過濾的優(yōu)化策略,從而獲得了數(shù)量級(jí)的求解加速效果。研究員們相信,DnnSAT 可以讓 AutoML 技術(shù)在資源受限的實(shí)際環(huán)境中更加高效和實(shí)用。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。