999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FPGA的事件抽取模型與加速器的設計實現(xiàn) *

2020-11-30 07:36:30姜晶菲喬林波許金偉闞志剛
計算機工程與科學 2020年11期

韓 哲,姜晶菲,喬林波,竇 勇,許金偉,闞志剛

(國防科技大學計算機學院,湖南 長沙 410073)

1 引言

隨著信息技術(shù)的快速發(fā)展,電腦、手機等電子設備成為人們生活中不可或缺的工具,通過互聯(lián)網(wǎng)了解信息也成為了人們獲取信息的主要途徑。然而怎樣從海量的信息中快速找到人們所需要的信息卻成為了大數(shù)據(jù)時代的一個難題。在這樣的背景下,信息抽取(Information Extraction)技術(shù)應運而生,人們期望可以使用這項技術(shù)從海量自然語言描述的信息中,抽取出人們關(guān)心的事件,以實現(xiàn)對信息的自動分類、提取和重構(gòu)。

為了解決這些問題,研究人員早期采用基于模式匹配[1]的方法進行事件抽取。這種方法在特定領(lǐng)域內(nèi)性能優(yōu)異,但是需要耗費大量人力來制定模板,并且很難遷移至其他領(lǐng)域。近些年機器學習發(fā)展迅速,機器學習在自然語言處理領(lǐng)域也大顯神威。但是之后,深度神經(jīng)網(wǎng)絡興起并在諸如圖像[2,3]、聲音[4,5]和視頻[6,7]多個領(lǐng)域取得了極其優(yōu)異的成績。在自然語言處理領(lǐng)域,深度神經(jīng)網(wǎng)絡也取得了不俗的成果[8,9]。因此,當前相關(guān)研究普遍都是基于深度神經(jīng)網(wǎng)絡。目前,事件抽取相關(guān)研究多集中于英文文本[10,11],對于中文文本的研究尚在初期階段。一般來說,事件抽取可以分為2個子任務:事件觸發(fā)詞的識別與分類和事件元素的識別與分類。Zhang等人[12]提出將依賴樹轉(zhuǎn)化為目標依賴樹,在ACE 2005中文語料庫上較之前的觸發(fā)詞分類F1值提升了4%。Ding等人[13]提出的TLNN(Trigger-aware Lattice Neural Network)動態(tài)整合了單詞和字符信息,從而避免了觸發(fā)器-單詞不匹配的問題,其觸發(fā)詞分類F1值達到了67.78%。

然而,深度神經(jīng)網(wǎng)絡龐大的計算量和參數(shù)量需要耗費大量的計算資源和能源,這嚴重限制了深度神經(jīng)網(wǎng)絡的部署應用。大型綜合數(shù)據(jù)處理中心接入的信息源種類和規(guī)??赡芏际铸嫶?,對于這種情況,快速處理是分析的基礎(chǔ)。FPGA(Field Programmable Gate Array)因其本身所具有的低功耗、可重構(gòu)特點,可以根據(jù)算法設計硬件結(jié)構(gòu),是一種十分高效的加速方法,非常適合于上述應用環(huán)境。

基于FPGA的加速器是當前神經(jīng)網(wǎng)絡加速的熱點之一,但是多數(shù)FPGA加速器只是單純地將神經(jīng)網(wǎng)絡遷移至硬件上,而沒有考慮網(wǎng)絡結(jié)構(gòu)規(guī)整性與硬件實現(xiàn)復雜度的關(guān)系。如果根據(jù)硬件特點對網(wǎng)絡進一步優(yōu)化、調(diào)整或者替換某些網(wǎng)絡結(jié)構(gòu),可以降低硬件的復雜度和面積。此外,先前針對事件抽取任務的工作普遍采用長短期記憶神經(jīng)網(wǎng)絡LSTM(Long Short-Term Memory)或者其變體作為核心網(wǎng)絡,但是受限于LSTM對時序數(shù)據(jù)進行序列處理的計算方式,LSTM不具備像卷積神經(jīng)網(wǎng)絡一樣并行加速的條件。而目前的CNN加速器研究幾乎都是針對圖像[14,15]或視頻[16,17]的加速器,針對事件抽取的專用硬件加速器研究與設計尚屬空白。

基于以上幾點,本文選擇了當前在英文事件抽取領(lǐng)域效果出眾的神經(jīng)網(wǎng)絡EE-DGCNN (Event Extraction based on multi-layer Dilate Gated Convolutional Neural Network)[18],在其基礎(chǔ)上提出了一種適合FPGA加速的中文事件抽取神經(jīng)網(wǎng)絡CEE-DGCNN(Chinese EE-DGCNN)。實驗結(jié)果顯示,該網(wǎng)絡在ACE 2005中文語料庫上進行事件觸發(fā)詞分類的F1值達到了71.12%,顯著優(yōu)于之前的工作。同時,本文基于Xilinx XQKU115 FPGA設計實現(xiàn)了與之相匹配的FPGA硬件加速器,相較于Intel i7-8700k,該加速器獲得了67倍的性能提升。

2 背景知識

2.1 卷積神經(jīng)網(wǎng)絡

卷積神經(jīng)網(wǎng)絡CNN(Convolutional Neural Network)是深度神經(jīng)網(wǎng)絡中最具代表性的算法之一。卷積神經(jīng)網(wǎng)絡一般由卷積層、全連接層、池化層等網(wǎng)絡層組成。其中,卷積層是整個卷積神經(jīng)網(wǎng)絡的核心,其計算量往往占據(jù)了卷積神經(jīng)網(wǎng)絡的主要部分。因此,加速卷積神經(jīng)網(wǎng)絡關(guān)鍵點在于簡化卷積計算或者設計合適的硬件結(jié)構(gòu)以適合卷積運算,常見的方法有頻域卷積、Winograd算法[19]等。

普通的卷積層通過在輸入特征上滑動卷積核并進行卷積運算,生成一組特征。在每個滑動位置上,卷積核與輸入特征之間進行相應元素的乘積和求和運算,將輸入特征中的信息映射到輸出特征中的一個元素上。卷積層的計算公式為:

(1)

其中,Xj為一個卷積窗口大小的輸入,Yi為對應位置的輸出,Kij為相應的部分卷積核,bias為卷積偏置,m和n均為自然數(shù),具體的數(shù)值取決于輸入的大小。假設卷積核的大小為k×k,則每個滑動窗口需要進行k×k次乘累加運算。因此,卷積神經(jīng)網(wǎng)絡往往需要耗費大量的時間用于卷積層的計算。

2.2 膨脹門卷積神經(jīng)網(wǎng)絡

膨脹門卷積神經(jīng)網(wǎng)絡DGCNN(Dilate Gated Convolutional Neural Network)是一種融合了膨脹卷積和門機制的新型網(wǎng)絡結(jié)構(gòu)。其基本結(jié)構(gòu)如圖1所示。

Figure 1 Structure of DGCNN圖1 膨脹門卷積神經(jīng)網(wǎng)絡基本結(jié)構(gòu)

在普通的卷積層中,每一個輸出的特征只能通過卷積核捕獲k個相鄰輸入特征的依賴信息,對于長距離的依賴則無能為力。如果需要獲得長距離的信息,則必須擴大卷積核。對于一維卷積,其參數(shù)量和計算量與卷積核成線性關(guān)系,而對于二維卷積和其他高維卷積來說,擴大卷積核意味著計算量爆炸式增長。因此,研究人員提出了膨脹卷積的概念。如圖2所示,在同樣采用3層卷積層、卷積核大小同樣為3的情況下,普通卷積第3層的節(jié)點至多獲得相距4個節(jié)點的第1層節(jié)點信息,而膨脹卷積在第3層則可以獲得相距8個節(jié)點的第1層信息,并且參數(shù)量和計算量與普通卷積是完全相同的。因為在處理自然語言的時候,往往需要結(jié)合上下文進行分析,需要考慮多個距離較遠的單詞信息,因此,可以使用更少的參數(shù)量和計算量獲得更遠距離信息的膨脹卷積比普通卷積更適合于自然語言處理領(lǐng)域。

Figure 2 Normal convolution vs.dilated convolution圖2 普通卷積與膨脹卷積對比

門機制最早是由Gehring等人[20]提出的,其數(shù)學化表述為:

Y=Conv1D1(X)?σ(Conv1D2(X))

(2)

其中X為輸入的向量序列,Y為輸出結(jié)果,σ為Sigmoid激活函數(shù),Conv1D1和Conv1D2為2個一維卷積,其輸出大小相同,在EE-DGCNN中Conv1D1和Conv1D2使用同一個一維卷積層,因此本文使用殘差結(jié)構(gòu)將輸入與輸出相加,實現(xiàn)信息多通道傳輸。這種結(jié)構(gòu)可以整體看作是一種激活函數(shù),稱為線性門單元(Gated Linear Unit)。

通過椎角逸出的等離子(氦離子、電子等)進入強磁場發(fā)生遍轉(zhuǎn),分別打在正、負極板上、接通外電路,行成電流。這叫磁流體發(fā)電。

3 網(wǎng)絡結(jié)構(gòu)優(yōu)化

3.1 面向硬件的網(wǎng)絡設計

相比于普通的CNN,DGCNN可以在相同的計算量和參數(shù)量下學習到更遠距離的信息,因此本文選擇了EE-DGCNN作為本文模型的骨干網(wǎng)。但是,一方面,EE-DGCNN是面向英文文本處理的,對于中文的處理效果還有待提升;另一方面,EE-DGCNN在設計之初并沒有考慮對硬件的優(yōu)化。因此,本文在EE-DGCNN的基礎(chǔ)上進行了擴展和優(yōu)化,設計了更適合于中文自然語言處理及硬件實現(xiàn)的CEE-DGCNN。CEE-DGCNN的網(wǎng)絡結(jié)構(gòu)如表1所示。

Table 1 Architecture of CEE-DGCNN

與原始的EE-DGCNN相比,CEE-DGCNN主要優(yōu)化了以下3點:

(1)更深的網(wǎng)絡。不同于英文單詞之間有明確的界限,中文詞與詞之間沒有明確的分割符,因此,對于更為復雜的中文文本EE-DGCNN缺乏足夠的分類能力。為此,本文逐步增加了網(wǎng)絡的層數(shù)以提高網(wǎng)絡的分類能力。最終CEE-DGCNN包含24層DGCNN,和EE-DGCNN相比,DGCNN的層數(shù)增加了一倍。

(2)更高的數(shù)據(jù)維度。本文的識別與分類基于中文字符,因此相較于英文一個單詞只需要一個詞向量表示,中文一個字可能需要多個詞向量來表示。這意味著每一個字都包含著比英文單詞更加豐富的含義,原本的數(shù)據(jù)維度不足以滿足中文表示的需要。為此,本文提高了詞嵌入表示的向量長度,將其從768調(diào)整至1 024。此外,長度為1 024的向量對于硬件更為規(guī)整,可以減少在數(shù)據(jù)邊界產(chǎn)生的資源浪費,從而降低電路復雜度。

(3)合適的膨脹系數(shù)。在CEE-DGCNN當中,本文采用1,2,4作為膨脹系數(shù)。當使用EE-DGCNN中的1,2,5作為膨脹系數(shù)時,在高并行度的情況下會因為5無法被2整除而導致數(shù)據(jù)吞吐量的不一致或計算資源的浪費。前者會導致流水線停頓,增加不必要的時間開銷;后者則降低了資源利用率。本文的實驗表明,將膨脹系數(shù)設置為1,2,4可以獲得比1,2,5更好的性能,實驗結(jié)果如表2所示。

Table 2 Effect of different dilations

3.2 定點量化

盡管使用DGCNN已經(jīng)大幅減少了計算量和參數(shù)量,但是所有的計算以及數(shù)據(jù)表示都是使用的32位浮點數(shù),這將會占用較多的計算資源,不利于縮小芯片面積。因此,本文需要在保證精度的情況下將浮點數(shù)轉(zhuǎn)化為定點數(shù)表示,并盡可能縮小數(shù)據(jù)位寬。如此可以在相同的面積與功耗下,實現(xiàn)更高的并行度,同時進一步降低了對于訪存帶寬以及存儲資源的壓力。

本文采用的策略是通過數(shù)學統(tǒng)計的方式確定數(shù)據(jù)的分布區(qū)間,在此基礎(chǔ)上確定所需要的最小數(shù)據(jù)位寬,之后進一步確定小數(shù)點的位置并通過實驗進行檢驗。本文實驗了多種數(shù)據(jù)精度組合,最終確定網(wǎng)絡的權(quán)重僅僅需要8位即可滿足精度需求,而數(shù)據(jù)以及中間計算結(jié)果,則需要16位方可保持網(wǎng)絡精度幾乎不變化。表3展示了量化帶來的精度變化。

Table 3 Effect of quantization on network accuracy

4 硬件設計

4.1 整體結(jié)構(gòu)

圖3展示了本文設計的加速器整體結(jié)構(gòu)。上位機通過訪問FPGA片外存儲DDR的方式與加速器進行通信。FPGA加速器主要由控制器、片上存儲、輸入/輸出緩沖和PE(Processing Element)組成??刂破髫撠熃邮諄碜陨衔粰C的指令,控制加速器的狀態(tài)。片上存儲器由不同大小的BRAM(Block RAM)組成,用于存儲中間結(jié)果和權(quán)重。輸入/輸出緩存由2個512 bit 位寬的FIFO組成,用于緩沖片外存儲與片上存儲器之間的數(shù)據(jù)。

Figure 3 Overall structure of the accelerator圖3 加速器整體結(jié)構(gòu)

圖4展示了PE中的核心部分:DGCNN的硬件結(jié)構(gòu),PE的整體結(jié)構(gòu)即由前者串聯(lián)拼接而成的。具體的計算流程如下所示:

(1) 將輸入重組存至輸入重組緩存(Input Mapping Buffer);

(2) 輸入重組緩存中數(shù)據(jù)同時傳送給MAC計算陣列(MAC Array)和輸入緩存(Input Buf- fer),輸入緩存中的數(shù)據(jù)用于后續(xù)門結(jié)構(gòu)的計算;

(3) MAC計算陣列的結(jié)果傳輸至Sigmoid函數(shù)模塊和卷積結(jié)果緩存(Conv Buffer),后者用于后續(xù)門結(jié)構(gòu)的計算;

(4) 在最后MAC陣列中對輸入緩存和卷積結(jié)果緩存中的數(shù)據(jù)進行門結(jié)構(gòu)的計算,并輸出。

Figure 4 Main structure of PE圖4 PE核心結(jié)構(gòu)

4.2 層融合

本文通過融合所有的網(wǎng)絡層來構(gòu)建細粒度的層內(nèi)與層間流水線執(zhí)行,從而實現(xiàn)層間的有效重疊以降低計算延遲。

(1)層內(nèi)流水線。為了計算一個輸出值的所有依賴數(shù)據(jù),對于CONV層來說,在同一個卷積窗口中采用完全并行是執(zhí)行速度最快的選擇。最理想的情況是同時完成一組輸入的全部相關(guān)計算,一次完成一組數(shù)據(jù)的全部計算,在本文中,即同時完成1 024個輸出值的計算。這不僅需要大量的乘法器,還要求有充足的訪存帶寬,顯然完全并行處理這些操作對于硬件要求非常苛刻。因此,本文在層內(nèi)建立流水線,通過流式輸入數(shù)據(jù)的方式進行計算,實現(xiàn)硬件資源利用最大化,并對層內(nèi)的循環(huán)有限地進行展開,以求兼顧資源限制與性能需求,其HLS偽代碼如下所示:

for(i=0;i< 1024;i++) {

#pragma HLS UNROLLfactor=4

#pragma HLS PIPELINE

for(j=0;j< 3;j++) {

#pragma HLS UNROLLfactor=3

conv_result[i]+=kernel[j] *ifmap[i+j];

}

conv_result[i]+=bias;

sigmoid_result[i] = 1./(1.+exp(-ifmap[i]));

ofmap[i] =sigmoid_result[i] *ifmap[i]+(1-sigmoid_result[i]) *conv_result[i];

}

可以看到,整個DGCNN層完全使用流水線技術(shù)進行運算,并且同時進行4個卷積窗口的運算。

(2)層間流水線。為了降低網(wǎng)絡整體延遲,本文設計了一種細粒度的層間流水線。使用這種流水線,所有的網(wǎng)絡層都被融合并并行處理。以圖5所示的3層網(wǎng)絡為例,當?shù)?層的灰色部分計算完成之后,立即開始計算第2層的灰色部分。在第2層灰色部分的最后1個數(shù)據(jù)計算完成后,立即開始第3層的計算。第3層在完成已有數(shù)據(jù)的計算后,會立即將得到的結(jié)果累加保存,從而減少不必要的數(shù)據(jù)存儲。換句話說,不同層的數(shù)據(jù)是并行融合處理的,它們的延遲是重疊的。

Figure 5 Data dependency圖5 數(shù)據(jù)依賴關(guān)系示意

圖6分別展示了傳統(tǒng)的層間流水線和層融合流水線,顯而易見,融合后的流水線可以顯著降低數(shù)據(jù)處理延遲。

Figure 6 Traditional layer pipeline vs.fusion pipeline圖6 傳統(tǒng)層間流水線與層融合流水線

圖7展示了各層和整個網(wǎng)絡的延遲,加速器的整體延遲等于單層的延遲加上等待依賴輸入的時間,采用層融合流水線后網(wǎng)絡整體延遲只有單層網(wǎng)絡延遲的1.7倍。

Figure 7 Latencies of each layer and the overall network圖7 各層和整個網(wǎng)絡的延遲

4.3 Sigmoid函數(shù)簡化

在DGCNN中,需要使用Sigmoid函數(shù)對膨脹卷積的輸出進行激活。Sigmoid函數(shù)的公式表達為:

(3)

式(3)包含1個冪運算和1個除法運算,這不利于硬件實現(xiàn),因此本文需要對Sigmoid函數(shù)進行簡化處理,常見的處理方法有查表法和分段函數(shù)擬合法。本文通過3.2節(jié)的定點量化實驗發(fā)現(xiàn),在計算的過程中Sigmoid函數(shù)的輸出僅僅需要8 bit位寬表示的定點小數(shù)即可滿足精度需求。因此,本文采用分段查表法對Sigmoid函數(shù)進行簡化,具體的策略如下所示:

(1)當輸入大于4時,直接輸出結(jié)果1;

(2)當輸入大于或等于-4且小于或等于4時,使用輸入的2位整數(shù)位、6位小數(shù)位作為地址,通過查表獲得計算結(jié)果;

(3)當輸入小于-4時,直接輸出結(jié)果0。

簡化后的函數(shù)圖像如圖8所示,黑色曲線為使用分段查表法簡化后的Sigmoid函數(shù)曲線,灰色點狀線為原始的Sigmoid函數(shù)曲線??梢钥闯鰞烧咧g的差異幾乎可以忽略不計。

Figure 8 Comparison of Sigmoid function圖8 Sigmoid函數(shù)簡化對比

5 實驗與結(jié)果

5.1 實驗平臺

本文使用ACE 2005中文語料庫對CEE-DGCNN進行訓練,學習率為0.001,批大小為8。取75%的數(shù)據(jù)作為訓練集,其余25%作為測試集。ACE 2005語料庫是一個基于真實世界語料的語料庫,其語料全部來自于廣播、新聞和網(wǎng)絡博客,因此其可以較為真實地反映實際應用后的模型性能。

此外,本文基于Xilinx公司的Kintex UltraSclae開發(fā)板實現(xiàn)并評估了本文設計的加速器,該評估板采用XCKU115 FPGA芯片。加速器采用Verilog語言編寫,并使用Xilinx Vivado 2018.3綜合實現(xiàn)仿真。對比平臺基于當前廣泛使用的Intel i7-8700k中央處理器,使用C語言實現(xiàn),并在任務級并行計算以充分利用CPU的多核優(yōu)勢。

5.2 實驗結(jié)果

本文測試了CEE-DGCNN的模型性能,并與前人的工作進行對比,具體結(jié)果展示在表4中。

Table 4 Model performance comparison

從表4中可以看到,本文模型較前人工作取得了非常大的提升,尤其是在精度上,本文模型較先前的工作提升了約10%。這主要有2個原因,一方面,我們前期使用BERT(Bidirectional Encoder Representation from Transformers)[22]而非word2vec等算法對文本進行預處理,前者生成的詞向量可以根據(jù)語境進行調(diào)整,相較于后者僅采用一種詞向量表示有著更強的表達能力;另一方面,本文所使用的DGCNN結(jié)構(gòu)有著更強的特征提取能力。

Table 5 Resource Utilization

表5列出了加速器的資源使用情況,可以看出,加速器占用資源非常少,因此可以同時滿足嵌入式領(lǐng)域和數(shù)據(jù)中心的要求。表6列出了本文的加速器與CPU平臺的性能對比。與CPU相比,本文的加速器降低了96%的延遲,提升了約67倍的吞吐量。

Table 6 Performance comparison of different platforms

6 結(jié)束語

本文針對中文事件抽取任務提出了一個適合FPGA硬件實現(xiàn)的神經(jīng)網(wǎng)絡模型,并進一步設計實現(xiàn)了其對應的硬件結(jié)構(gòu)。網(wǎng)絡模型以EE-DGCNN為基礎(chǔ),通過調(diào)整數(shù)據(jù)維度和網(wǎng)絡參數(shù)的方式使其更為規(guī)整,以適合硬件實現(xiàn),并且在訓練完成后使用定點量化縮小存儲和訪存帶寬要求。該網(wǎng)絡模型最終在ACE 2005中文語料庫上達到了71.71%的F1值,顯著優(yōu)于之前的工作。對應的加速器采用全流水結(jié)構(gòu)實現(xiàn)提出的網(wǎng)絡模型,并利用層融合技術(shù)降低了數(shù)據(jù)處理延遲,顯著提高了數(shù)據(jù)處理效率。本文基于Xilinx XCKU115 FPGA實現(xiàn)該加速器,最高吞吐量達到了CPU平臺上性能的67倍,性能獲得了極大的提升。

主站蜘蛛池模板: 亚洲无码高清视频在线观看| 久久77777| 麻豆精品国产自产在线| 91激情视频| 国产成人91精品| AV不卡在线永久免费观看| 久久99国产综合精品1| 精品国产毛片| 免费中文字幕一级毛片| 青青热久免费精品视频6| 国产亚洲现在一区二区中文| 精品福利视频网| 美女被躁出白浆视频播放| 国产精品视频免费网站| www.youjizz.com久久| 国产亚卅精品无码| 亚洲中文在线看视频一区| 国产凹凸视频在线观看| 精品無碼一區在線觀看 | 亚洲第一区在线| 亚洲AV无码一二区三区在线播放| 免费无码AV片在线观看国产| 久久综合伊人77777| 尤物特级无码毛片免费| 久久中文无码精品| 午夜丁香婷婷| 伊人丁香五月天久久综合| 麻豆精品久久久久久久99蜜桃| 4虎影视国产在线观看精品| 欧美一区二区啪啪| 国产精品视频导航| 日本国产精品一区久久久| 国产真实乱子伦视频播放| 网久久综合| 精品国产网| 九九久久精品免费观看| 福利小视频在线播放| 色精品视频| 伊人婷婷色香五月综合缴缴情| 波多野结衣一区二区三区88| 人人妻人人澡人人爽欧美一区| 亚洲欧美日韩精品专区| 欧美精品不卡| 麻豆精品视频在线原创| 亚洲av成人无码网站在线观看| 特级毛片免费视频| 久久精品国产999大香线焦| 国产成人一区免费观看| 精品国产女同疯狂摩擦2| 国产成人一区| 亚洲综合九九| 国产综合日韩另类一区二区| 99热这里只有精品国产99| 亚洲黄网在线| 久久影院一区二区h| 亚洲人成日本在线观看| 欧美无专区| 久久综合色天堂av| 久久夜色撩人精品国产| 国产91无码福利在线| 一级毛片在线播放| 国产手机在线小视频免费观看| 国产一二三区视频| 国产69囗曝护士吞精在线视频| 国产91导航| 亚洲VA中文字幕| 成人在线第一页| 99久视频| 日韩免费毛片| 亚洲国产精品无码久久一线| 国产日韩精品欧美一区喷| 99久久精品免费看国产免费软件 | 欧美日韩免费观看| 十八禁美女裸体网站| 成人在线综合| 97在线视频免费观看| 精品国产中文一级毛片在线看| 美女视频黄频a免费高清不卡| 幺女国产一级毛片| 夜夜拍夜夜爽| 自拍偷拍欧美日韩| 找国产毛片看|