TW202338667A - 用於預測神經網路模型的性能的方法和系統 - Google Patents
用於預測神經網路模型的性能的方法和系統 Download PDFInfo
- Publication number
- TW202338667A TW202338667A TW111121133A TW111121133A TW202338667A TW 202338667 A TW202338667 A TW 202338667A TW 111121133 A TW111121133 A TW 111121133A TW 111121133 A TW111121133 A TW 111121133A TW 202338667 A TW202338667 A TW 202338667A
- Authority
- TW
- Taiwan
- Prior art keywords
- sequence
- feature
- neural network
- network model
- hardware platform
- Prior art date
Links
- 238000003062 neural network model Methods 0.000 title claims abstract description 50
- 238000000034 method Methods 0.000 title claims description 27
- 239000013598 vector Substances 0.000 claims abstract description 77
- 230000006870 function Effects 0.000 claims abstract description 31
- 238000012545 processing Methods 0.000 claims description 22
- 238000011176 pooling Methods 0.000 claims description 5
- 238000013528 artificial neural network Methods 0.000 description 11
- 238000013507 mapping Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000012549 training Methods 0.000 description 6
- 108091026890 Coding region Proteins 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 230000001537 neural effect Effects 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本發明提供了一種用於預測神經網路模型的性能的方法和系統,所述神經網路模型在硬體平臺上執行,所述方法包括:接收針對硬體平臺編譯的神經網路模型,神經網路模型包括多個層,每一層由操作集和操作的相應配置設置定義;對於每一層在操作集和相應配置設置上執行特徵嵌入,以生成分類特徵向量和數值特徵向量的特徵嵌入序列;對特徵嵌入序列應用位置編碼和一系列注意力函數,以生成編碼序列;以及減少編碼序列的維度,以輸出在硬體平臺上執行神經網路模型的性能指標。
Description
本發明涉及基於轉換器的神經網路(transformer-based neural network),其能夠預測在硬體平臺上執行神經網路的性能。
為了優化軟體性能,軟體發展人員有時會在部署軟體之前針對特定的硬體平臺調整他們的代碼。對硬體平臺上軟體性能的估計或預測可以幫助開發人員在部署之前識別代碼中的潛在問題。傳統上,硬體工程師向軟體發展人員提供查閱資料表,其中包含在硬體平臺上執行典型操作的性能測量。然後,軟體發展人員使用查閱資料表(lookup table)來估計當軟體在硬體平臺上執行時該軟體的性能。
然而,構建這樣的查閱資料表是耗時的。此外,查閱資料表無法捕獲操作之間的相關性以及相關性對性能的影響。此外,硬體供應商可能希望保護其關於硬體平臺的專有資訊,並且可能不希望向軟體發展人員提供這樣的查閱資料表。
因此,需要改進在硬體平臺上執行的軟體的性能預測。
在一個實施例中,提供了一種用於預測神經網路模型的性能的方法,所述神經網路模型在硬體平臺上執行,所述方法包括:接收針對所述硬體平臺編譯的所述神經網路模型,所述神經網路模型包括多個層,每一層由操作集和操作的相應配置設置定義;對於每一層在所述操作集和相應配置設置上執行特徵嵌入,以生成分類特徵向量和數值特徵向量的特徵嵌入序列;對所述特徵嵌入序列應用位置編碼和一系列注意力函數,以生成編碼序列;以及減少所述編碼序列的維度,以輸出在所述硬體平臺上執行所述神經網路模型的性能指標。
在另一個實施例中,提供了一種用於預測神經網路模型的性能的系統,其中所述神經網路模型在硬體平臺上執行,所述系統包括記憶體和處理電路。記憶體用於存儲針對所述硬體平臺編譯的所述神經網路模型,所述神經網路模型包括多個層,並且每個層由操作集和操作的相應配置設置定義。處理電路耦接到所述記憶體,並用於對於每一層在所述操作集和相應配置設置上執行特徵嵌入,以生成分類特徵向量和數值特徵向量的特徵嵌入序列;對所述特徵嵌入序列應用位置編碼和一系列注意力函數,以生成編碼序列;以及減少所述編碼序列的維度,以輸出在所述硬體平臺上執行所述神經網路模型的性能指標。
通過本發明提供的基於轉換器的預測引擎的系統和方法,能夠預測在目標硬體平臺上執行的神經網路模型的性能,並且硬體平臺的細節可以對開發人員隱藏。
其他方面和特徵對於本領域習知技藝者而言在結合附圖閱讀以下具體實施例的描述時將變得顯而易見。
以下描述為本發明實施的較佳實施例,其僅用來例舉闡釋本發明的技術特徵,而並非用來限制本發明的範疇。在通篇說明書及申請專利範圍書當中使用了某些詞彙來指稱特定的元件,所屬領域習知技藝者應當理解,製造商可能會使用不同的名稱來稱呼同樣的元件。因此,本說明書及申請專利範圍書並不以名稱的差異作為區別元件的方式,而是以元件在功能上的差異作為區別的基準。本發明中使用的術語“元件”、“系統”和“裝置”可以是與電腦相關的實體,其中,該電腦可以是硬體、軟體、或硬體和軟體的結合。在以下描述和申請專利範圍書當中所提及的術語“包含”和“包括”為開放式用語,故應解釋成“包含,但不限定於…”的意思。此外,術語“耦接”意指間接或直接的電氣連接。因此,若文中描述一個裝置耦接於另一裝置,則代表該裝置可直接電氣連接於該另一裝置,或者透過其它裝置或連接手段間接地電氣連接至該另一裝置。
其中,除非另有指示,各附圖的不同附圖中對應的數位和符號通常涉及相應的部分。所繪製的附圖清楚地說明了實施例的相關部分且並不一定是按比例繪製。
文中所用術語“基本”或“大致”是指在可接受的範圍內,本領域技術人員能夠解決所要解決的技術問題,基本達到所要達到的技術效果。舉例而言,“大致等於”是指在不影響結果正確性時,技術人員能夠接受的與“完全等於”有一定誤差的方式。
本說明書公開了所要求保護的主題的詳細實施例和實施方式。然而,應該理解的是,所公開的實施例和實施方式僅僅是對要求保護的主題的說明,其可以以各種形式體現。例如,本公開實施例可以以許多不同的形式實施,並且不應該被解釋為限於這裡闡述的示例性實施例和實施方式。而是,提供這些示例性實施例和實現方式,使得本公開實施例的描述是徹底和完整的,並且將向本領域技術人員充分傳達本公開實施例的範圍。在以下描述中,可以省略公知特徵和技術的細節以避免不必要地模糊所呈現的實施例和實現。
在以下描述中,闡述了許多具體細節。然而,應當理解,可以在沒有這些具體細節的情況下實踐本發明的實施例。在其他情況下,未詳細示出眾所周知的電路、結構和技術,以免混淆對本發明的理解。然而,本領域的習知技藝者將理解,本發明可以在沒有這些具體細節的情況下實施。本領域的習知技藝者通過本文所包含的描述將能夠實現適當的功能而無需過度實驗。
轉換器(transformer)在自然語言處理(natural language processing,NLP) 中取得了巨大成功,例如機器翻譯。轉換器設計的描述可以在 Vaswani 等人的如下論文中找到:“Attention is All You Need”,第31屆神經資訊處理系統會議 (NIPS 2017),美國加利福尼亞州長灘(31st Conference on Neural Information Processing Systems (NIPS 2017), Long Beach, CA, USA)。該論文中描述的轉換器(“傳統轉換器”)是一種具有編碼器-解碼器結構的神經網路架構,用於將輸入序列(例如,第一語言中的句子)轉換為輸出序列(例如,第二語言中翻譯後的句子)。
本發明的實施例提供了一種基於轉換器的(transformer-based)預測引擎(prediction engine)的系統和方法,來預測在目標硬體平臺上執行的神經網路模型的性能。性能預測是平臺感知的(platform aware);即,預測反映了底層硬體的能力和局限性。性能預測是超快速的,其可以保護專有硬體資訊。預測引擎是一個基於轉換器的神經網路,它接收編譯後的神經網路作為輸入,並輸出一個或多個指示預測性能的性能指標(performance metrics)。硬體供應商可以針對在其硬體平臺(例如深度學習加速器)上執行的神經網路來訓練預測引擎,並將經過訓練的預測引擎提供給神經網路開發人員。因此,硬體平臺的細節可以對開發人員隱藏。
傳統的轉換器包括編碼器堆疊(encoder stack),該編碼器堆疊將其輸出發送到解碼堆疊(decoding stack)。本發明公開的預測引擎包括編碼器堆疊,該編碼器堆疊將其輸出發送到一系列全連接層(fully-connected layer)以生成預測的性能。預測引擎的編碼器堆疊對從位置編碼(positional encoding)和特徵嵌入(feature embedding)生成的向量序列進行編碼。特徵嵌入從編譯的神經網路中產生一系列分類特徵向量(categorical feature vector)和數值特徵向量(numerical feature vector)。
第1圖是例示根據一個實施例的基於轉換器的預測引擎100的示意圖。平臺感知工具包(platform-aware toolkit)120包括深度學習加速器(deep learning accelerator,DLA)編譯器125以將神經網路模型110編譯成編譯的神經網路模型115以在目標硬體平臺上執行。目標硬體平臺可以是深度學習加速器或可以執行神經網路模型操作的任何硬體處理電路。預測引擎100可以預測在目標硬體平臺上執行的編譯的神經網路模型115的性能。在一個實施例中,神經網路模型110是深度神經網路(deep neural network,DNN)。編譯的神經網路模型115以與目標硬體平臺相容的資料格式指示神經網路模型110的每一層的操作(operation)和相應的配置設置(configuration setting)。預測引擎100將編譯的神經網路模型115作為輸入,並輸出一個或多個性能指標,這些性能指標可以包括但不限於延遲、功耗、執行週期數等。預測引擎100包括特徵嵌入模組(feature embedding module)200,其將編譯的神經網路模型115轉換為分類特徵向量和數值特徵向量的長序列。特徵嵌入模組200的進一步細節將參考第2圖說明。預測引擎100還包括編碼模組300和全連接層360,將參考第3圖對其進行描述。在一個實施例中,預測引擎 100 是基於轉換器的神經網路,它可以以自注意力(self-attention)處理長向量序列(例如,數千個向量的序列)。特徵嵌入模組200可以將分類特徵向量和數值特徵向量填充到具有預定值(例如,2的次方,比如128或256等)的預定長度。
在一個實施例中,用訓練資料(例如,訓練神經網路) 訓練預測引擎100。預測引擎100輸出和類比輸出之間的差異(例如,均方誤差)被計算出來,並用於更新預測引擎100的可訓練參數(trainable parameter)。類比輸出可以由實際目標硬體平臺生成。預測引擎100的操作可以由中央處理單元、圖形處理單元、神經處理單元或其他處理電路來執行。 在一個實施例中,預測引擎100可以是由硬體電路執行的一系列軟體程式。
第2圖是例示根據一個實施例的特徵嵌入模組200的框圖。特徵嵌入模組200可以將編譯的神經網路模型115轉換為分類特徵向量和數值特徵向量的序列。編譯的神經網路模型115由編譯的神經網路模型115的每一層的操作(operations)和相應配置設置來描述。操作也被稱為分類特徵並且可以分類為一組操作組(operation group,OPG)。例如,“卷積”可以是分類特徵並被映射到OPG。在一些實施例中,不同類型的卷積(例如,深度卷積、1x1卷積等)可以映射到不同的OPG。每個OPG的配置設置稱為數值特徵。例如,卷積OPG的數值特徵可以包括:高度、寬度、通道、內核大小等。卷積操作的權重和偏差等參數不包含在數值特徵中。
特徵嵌入模組200包括分類映射(categorical mapping)模組210,其將每個分類特徵映射到符記值(token value),並且從符記值映射到分類特徵向量。在預測引擎100的訓練期間,學習從符記值到分類特徵向量的值的映射。即,可以從訓練中學習分類特徵向量的值。分類特徵向量中的元素數量,也稱為嵌入大小或模型大小,是預先確定的。在一個實施例中,分類特徵向量的每個元素是浮點數。在一個實施例中,分類特徵向量的不同元素可以指示可以與其他向量中的不同向量相關的不同屬性。
特徵嵌入模組200還包括數值映射模組230。每個OPG具有對應的配置設置,也稱為OPG的數值特徵。數值映射模組230將每個數值特徵映射到數值特徵向量。從數值特徵到數值特徵向量值的映射是在預測引擎100的訓練期間學習的。也就是說,可以從訓練中學習數值特徵向量的值。在一個實施例中,數值特徵向量的每個元素是浮點數,其可指示相應分類特徵的配置設置(例如,高度、寬度或內核大小)的。數值特徵向量中的元素數量與分類特徵向量中的元素數量可以是相同的預定數量。可以填充分類特徵向量以及數值特徵向量,以達到預定的嵌入大小。
在第2圖的示例中,編譯的神經網路模型115的第一層可以包括分別映射到OPG
A、OPG
B、OPG
C的卷積(convolution)、池化(pooling)和啟動(activation)函數。分類映射模組210將每一層中的每個OPG映射到分類特徵向量。編譯的神經網路模型115的所有層的分類特徵向量形成分類特徵向量的序列,其可以被填充以達到預定的序列長度。
每個OPG的數值特徵被映射到數值特徵向量。在第2圖的示例中,第一層(layer one)中的卷積操作(OPG
A)具有相應的數值特徵,即高度=3、寬度=3、通道=32、內核大小=2等。第一層中的池化操作(OPG
B)具有相應的數值特徵,即內核大小=3、步幅=2等。第一層中的啟動函數(OPG
C)具有相應的數值特徵,即初始值=0.25等。數值映射模組230將數值特徵映射到數值特徵向量。然後編譯的神經網路模型115的所有層的所有數值特徵向量形成一個數值特徵向量序列,該序列可以被填充以達到預定的序列長度。分類特徵向量的序列長度可以等於數值特徵向量的序列長度。將兩個序列(分類特徵向量序列和數值特徵向量序列)串接起來以生成特徵嵌入序列。在特徵嵌入之後,對特徵嵌入序列執行位置編碼(positional encoding)和一系列注意力函數(attention function),生成編碼序列。
第3圖是根據一個實施例的預測引擎100的詳細示意圖。預測引擎100包括第2圖中描述的特徵嵌入模組200和編碼模組300。編碼模組300包括位置編碼器310和編碼器系列330。特徵嵌入序列中的每個向量由位置編碼器310編碼。在一個實施例中,位置編碼器310計算每個向量的每個元素的正弦和余弦函數,如第3圖的框312所示,其中pos是向量在特徵嵌入序列中的位置,i是元素的維度索引(即,向量中的第i個元素),d
model是模型大小(即,嵌入大小,即向量中元素的數量)。位置編碼器310的輸出被添加到從特徵嵌入模組200生成的特徵嵌入序列中,並且其和被發送到編碼器系列330作為編碼器輸入。位置編碼(positional encoding)捕獲編碼器輸入的元素之間的順序依賴關係(order dependencies),並分辨出在特徵嵌入中多次出現的相同操作。
在一個實施例中,編碼器系列330包括串聯連接的N個編碼器330。每個編碼器330包括兩個子層。第一子層包括多頭注意力模組(multi-head attention module)320以及加法和範數模組(add-and-norm module)325,多頭注意力模組320執行諸如多頭注意力函數的注意力函數(attention function),加法和範數模組325執行加法和歸一化操作。第二子層包括前饋網路(feed-forward network)340,接著是加法和範數模組345。
多頭注意力模組 320 是預測引擎 100 的內核。注意力函數可以描述為將查詢(query)和一組鍵值對(key-value pairs)映射到輸出,其中查詢(query)、鍵(key)、值(value)和輸出(output)都是向量。輸出被計算為值的加權和。注意力函數的一個示例可以是縮放點積注意力函數(scaled dot product attention function)。多頭注意力模組320並存執行多個注意力函數。在上述Vaswani 等人的論文“Attention Is All You Need”中提供了多頭注意力的詳細描述。
加法和範數模組325將多頭注意力模組320的輸入和輸出相加以生成和序列,並對和序列進行逐層歸一化(layer-wise normalization);例如,對和序列進行歸一化,使得維度上的均值和標準差分別為0和1。第一子層的輸出被饋送到第二子層。
在一個實施例中,前饋網路340是完全連接的前饋網路,其分別應用於每個位置,以執行線性變換和啟動(例如ReLU啟動)。第一子層和第二子層的操作重複N次。系列中最後一個編碼器330的輸出被發送到一系列全連接 (fully-connected,FC)層360。
全連接層360對編碼模組300的輸出執行矩陣乘法(matrix multiplicatio)、啟動和批量歸一化(batch normalization)。全連接層360逐層減小編碼器輸出的維度。使用符號FC_j [輸入層維度,輸出層維度],其中j是FC層索引,維度可以減少如下:FC_1 [512, 256], FC_2 [256, 128], FC_3 [128, 1 ]。最終輸出是一個數值(例如浮點數),它是預測的性能指標。
第1圖至第3圖中描述的預測引擎100可以在系統(例如第5圖中的系統500)上實現,以執行第4圖中的方法400。第4圖是示出根據一個實施例的用於預測在硬體平臺上執行的神經網路模型的性能的方法400的流程圖。方法400開始於步驟410,此時系統接收針對硬體平臺編譯的神經網路模型。神經網路模型包括多層,每一層由一個操作集(set of operations)和操作的相應配置設置定義。在步驟420,針對每一層,系統在該操作集和相應的配置設置上執行特徵嵌入,以生成分類特徵向量和數值特徵向量的特徵嵌入序列。在步驟430,系統對特徵嵌入序列應用位置編碼和一系列注意力函數以生成編碼序列。在步驟440,系統減少編碼序列的維度,以輸出在硬體平臺上執行神經網路模型的性能指標。在一個實施例中,可以通過使用一系列全連接層來減少編碼序列的維度。在一個實施例中,性能指標可以包括以下各項中的一項或多項:延遲、執行週期和功耗。
在一個實施例中,用於神經網路模型的所有層的分類特徵向量的第一序列和數值特徵向量的第二序列被串接(concatenated)以生成特徵嵌入序列。每個分類特徵向量對應於操作集(set of operation)中的一個操作組(operation group)。操作組可以包括以下之一:卷積、池化和啟動函數。可以訓練特徵嵌入以將每個操作映射到具有可訓練向量值和預定嵌入大小的分類特徵向量。在一個實施例中,數值特徵向量中的一個或多個可以指示相應卷積操作中的高度、寬度和通道(channel)的數量。
在一個實施例中,一系列注意力函數包括一系列多頭注意力函數,用於識別特徵嵌入序列中向量之間的相關性。每個注意力函數的輸入和輸出相加以生成和序列,和序列被歸一化以生成前饋網路的輸出。
第5圖是例示根據一個實施例的系統500的示意圖。系統500包括用於執行結合第1圖至第4圖所描述操作的硬體電路。系統500包括處理硬體510。在一個實施例中,處理硬體510可以包括一個或多個處理器513,例如中央處理單元(CPU)、圖形處理單元(GPU)、數文書處理單元(DSP)、人工智慧( AI) 處理器、神經處理單元和其他通用和/或專用處理電路。返回參考第1圖至第4圖,一個或多個處理器513可以執行存儲在記憶體520中的指令以執行預測引擎100的操作。
記憶體520耦接到處理硬體510。記憶體520可以包括動態隨機存取記憶體(DRAM)、SRAM、快閃記憶體和其他非瞬態機器可讀存儲介質;例如,易失性或非易失性存放裝置。記憶體520還可以包括存放裝置,例如,任何類型的固態或磁存放裝置。在一個實施例中,記憶體520可以存儲指令,這些指令在由處理硬體510執行時使處理硬體510執行上述的性能預測,例如第4圖中的方法400。
系統500還可以包括使用者介面530,用於從使用者獲取資訊和/或向使用者顯示輸出。在一些實施例中,系統500還可以包括網路介面540,以連接到有線和/或無線網路,用於發送和/或接收語音、數位資料和/或媒體信號。可以理解,為了說明目的,第5圖的實施例已被簡化。其還可以包括額外的硬體元件。
已經參考第1圖至第3圖和第5圖的示例性實施例描述了第4圖的流程圖的操作。然而,應該理解,第4圖的流程圖的操作可以通過除了第1圖至第3圖和第5圖的實施例之外的實施例來執行,第1圖至第3圖和第5圖的實施例可以執行與第4圖的流程圖所示操作不同的操作。雖然第4圖的流程圖顯示了由本發明的某些實施例執行的操作的特定順序,但應該理解這種順序是示例性的(例如,替代實施例可以以不同的循序執行操作、組合某些操作、重複某些操作等)。
本文已經描述了各種功能元件或框圖。如本領域習知技藝者將理解的,功能塊將優選地通過電路(專用電路或通用電路,其在一個或多個處理器和編碼指令的控制下操作)實現,這些電路通常包括電晶體,電晶體被配置為根據本文描述的功能和操作來控制電路的操作。
雖然本發明已經根據幾個實施例進行了描述,但是本領域習知技藝者將認識到本發明不限於所描述的實施例,並且可以通過在所附申請專利範圍的精神和範圍內的修改和變更來實施。本發明因此被認為是說明性的而不是限制性的。
100:預測引擎
120:平臺感知工具包
110:神經網路模型
115:編譯的神經網路模型
125:DLA編譯器
200:特徵嵌入模組
300:編碼模組
360:全連接層
210:分類映射模組
230:數值映射模組
310:位置編碼器
330:編碼器系列
320:多頭注意力模組
325:加法和範數模組
340:前饋網路
345:加法和範數模組
360:全連接層
312:框
400:方法
410~440:步驟
500:系統
510:處理硬體
513:處理器
520:記憶體
530:使用者介面
540:網路介面
通過閱讀後續的詳細描述以及參考附圖所給的示例,可以更全面地理解本發明,其中:包括的附圖用以提供對本公開實施例的進一步理解,以及,附圖被併入並構成本公開實施例的一部分。附圖示出了本公開實施例的實施方式,並且與說明書一起用於解釋本公開實施例的原理。可以理解的是,附圖不一定按比例繪製,因為可以示出一些部件與實際實施中的尺寸不成比例以清楚地說明本公開實施例的概念。將參考以下附圖詳細描述作為示例提出的本發明的各種實施例,其中,相同的附圖標記表示相同的元件。
第1圖是例示根據一個實施例的基於轉換器的預測引擎的示意圖。
第2圖是例示根據一個實施例的特徵嵌入模組的框圖。
第3圖是根據一個實施例的預測引擎的詳細示意圖。
第4圖是示出根據一個實施例的用於預測在硬體平臺上執行的神經網路模型的性能的方法的流程圖。
第5圖是例示根據一個實施例的系統的示意圖。
400:方法
410~440:步驟
Claims (20)
- 一種用於預測神經網路模型的性能的方法,所述神經網路模型在硬體平臺上執行,所述方法包括: 接收針對所述硬體平臺編譯的所述神經網路模型,所述神經網路模型包括多個層,每一層由操作集和操作的相應配置設置定義; 對於每一層在所述操作集和相應配置設置上執行特徵嵌入,以生成分類特徵向量和數值特徵向量的特徵嵌入序列; 對所述特徵嵌入序列應用位置編碼和一系列注意力函數,以生成編碼序列;以及 減少所述編碼序列的維度,以輸出在所述硬體平臺上執行所述神經網路模型的性能指標。
- 如請求項1之方法,其中執行特徵嵌入進一步包括: 將所述神經網路模型的所有層的所述分類特徵向量的第一序列與所述數值特徵向量的第二序列串接,以生成所述特徵嵌入序列。
- 如請求項1之方法,其中,每個分類特徵向量對應於所述操作集中的一個操作組。
- 如請求項3之方法,其中,所述操作組包括以下之一:卷積、池化和啟動函數。
- 如請求項1之方法,其中進一步包括: 訓練所述特徵嵌入,以將每個操作映射到具有可訓練向量值和預定嵌入大小的分類特徵向量。
- 如請求項4之方法,其中在所述操作組是卷積操作時,一個或多個所述數值特徵向量指示相應卷積操作中的高度、寬度和通道的數量。
- 如請求項1之方法,其中所述性能指標包括以下各項中的一項或多項:延遲、執行週期和功耗。
- 如請求項1之方法,其中減少所述編碼序列的維度進一步包括: 使用一系列全連接層來減少所述編碼序列的維度。
- 如請求項1之方法,其中所述一系列注意力函數包括一系列多頭注意力函數,用於識別所述特徵嵌入序列中的向量之間的相關性。
- 如請求項1之方法,還包括: 將每個注意力函數的輸入和輸出相加,生成和序列;以及 歸一化所述和序列以輸出到前饋網路。
- 一種用於預測神經網路模型的性能的系統,其中所述神經網路模型在硬體平臺上執行,所述系統包括: 記憶體,用於存儲針對所述硬體平臺編譯的所述神經網路模型,所述神經網路模型包括多個層,並且每個層由操作集和操作的相應配置設置定義;以及 處理電路,耦接到所述記憶體並用於: 對於每一層在所述操作集和相應配置設置上執行特徵嵌入,以生成分類特徵向量和數值特徵向量的特徵嵌入序列; 對所述特徵嵌入序列應用位置編碼和一系列注意力函數,以生成編碼序列;以及 減少所述編碼序列的維度,以輸出在所述硬體平臺上執行所述神經網路模型的性能指標。
- 如請求項11之系統,其中,所述處理電路還用於: 將所述神經網路模型的所有層的所述分類特徵向量的第一序列與所述數值特徵向量的第二序列串接,以生成所述特徵嵌入序列。
- 如請求項11之系統,其中,每個分類特徵向量對應於所述操作集中的一個操作組。
- 如請求項11之系統,其中,所述操作組包括以下之一:卷積、池化和啟動函數。
- 如請求項11之系統,其中所述處理電路還用於: 訓練所述特徵嵌入,以將每個操作映射到具有可訓練向量值和預定嵌入大小的分類特徵向量。
- 如請求項14之系統,其中在所述操作組是卷積操作時,一個或多個所述數值特徵向量指示相應卷積操作中的高度、寬度和通道的數量。
- 如請求項11之系統,其中所述性能指標包括以下各項中的一項或多項:延遲、執行週期和功耗。
- 如請求項11之系統,其中,所述處理電路進一步用於: 使用一系列全連接層來減少所述編碼序列的維度。
- 如請求項11之系統,其中所述一系列注意力函數包括一系列多頭注意力函數,用於識別所述特徵嵌入序列中的向量之間的相關性。
- 如請求項11之系統,其中所述處理電路還用於: 將每個注意力函數的輸入和輸出相加,生成和序列;以及 歸一化所述和序列以輸出到前饋網路。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/701,745 | 2022-03-23 | ||
US17/701,745 US20230306083A1 (en) | 2022-03-23 | 2022-03-23 | Platform-aware transformer-based performance prediction |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202338667A true TW202338667A (zh) | 2023-10-01 |
Family
ID=88095904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111121133A TW202338667A (zh) | 2022-03-23 | 2022-06-08 | 用於預測神經網路模型的性能的方法和系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230306083A1 (zh) |
CN (1) | CN116860570A (zh) |
TW (1) | TW202338667A (zh) |
-
2022
- 2022-03-23 US US17/701,745 patent/US20230306083A1/en active Pending
- 2022-06-08 TW TW111121133A patent/TW202338667A/zh unknown
- 2022-06-20 CN CN202210700632.3A patent/CN116860570A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN116860570A (zh) | 2023-10-10 |
US20230306083A1 (en) | 2023-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11816442B2 (en) | Multi-turn dialogue response generation with autoregressive transformer models | |
CN108959246B (zh) | 基于改进的注意力机制的答案选择方法、装置和电子设备 | |
CN110472242B (zh) | 一种文本处理方法、装置和计算机可读存储介质 | |
WO2022022173A1 (zh) | 药物分子属性确定方法、装置及存储介质 | |
Park et al. | Improved neural network based language modelling and adaptation. | |
WO2019222751A1 (en) | Universal transformers | |
KR20190076452A (ko) | 자연어 생성 방법 및 장치 | |
CN112257858A (zh) | 一种模型压缩方法及装置 | |
WO2020140632A1 (zh) | 隐含特征提取方法、装置、计算机设备及存储介质 | |
CN117194056B (zh) | 大语言模型推理优化方法、装置、计算机设备及存储介质 | |
US20230145452A1 (en) | Method and apparatus for training a model | |
CN111401037B (zh) | 自然语言的生成方法、装置、电子设备及存储介质 | |
CN115880036B (zh) | 一种车位级动态共享智能管控交易平台 | |
CN116126341A (zh) | 模型编译方法、装置、计算机设备及计算机可读存储介质 | |
CN114065771A (zh) | 一种预训练语言处理方法及设备 | |
Ottati et al. | To spike or not to spike: A digital hardware perspective on deep learning acceleration | |
TW202338667A (zh) | 用於預測神經網路模型的性能的方法和系統 | |
US7457788B2 (en) | Reducing number of computations in a neural network modeling several data sets | |
KR20220073644A (ko) | 제약 조건을 이용하는 질의 응답 시스템 및 정보 제공 방법 | |
Qin et al. | Robust Implementation of Retrieval-Augmented Generation on Edge-based Computing-in-Memory Architectures | |
CN116701576B (zh) | 无触发词的事件检测方法和*** | |
CN115329062B (zh) | 一种低数据场景下的对话模型训练方法及计算机设备 | |
US11947912B1 (en) | Natural language processing | |
CN111125324B (zh) | 文本数据处理方法、装置、电子设备及计算机可读介质 | |
JP7428245B2 (ja) | 応答文生成装置およびプログラム |