背景技術(shù):
1、本發(fā)明總體上涉及機器學習轉(zhuǎn)換器(transformer)神經(jīng)網(wǎng)絡(luò)模型,并且更具體地涉及針對轉(zhuǎn)換器模型進行選擇性分批。
2、轉(zhuǎn)換器神經(jīng)網(wǎng)絡(luò)模型是用于各種應(yīng)用例如包括順序數(shù)據(jù)的自然語言處理(nlp)、圖像處理或音頻處理應(yīng)用的機器學習模型。例如,轉(zhuǎn)換器模型可以接收表示查詢的輸入令牌序列,并且生成表示對查詢的響應(yīng)的輸出令牌序列。作為另一示例,轉(zhuǎn)換器模型可以接收表示德語段落的輸入令牌序列,并且生成表示英語段落的翻譯的輸出令牌序列。作為又一示例,轉(zhuǎn)換器模型可以接收表示文本段落的輸入令牌序列,并且生成表示文本的概括版本的輸出令牌序列。
3、通常,客戶端設(shè)備的用戶向推理系統(tǒng)提交請求。推理系統(tǒng)針對請求的輸入(例如,輸入令牌序列)執(zhí)行機器學習轉(zhuǎn)換器模型,以生成針對這些請求的輸出(例如,輸出令牌序列)。推理系統(tǒng)可以將輸出作為響應(yīng)返回給請求的客戶端設(shè)備。在一個實例中,推理系統(tǒng)在專用硬件加速器例如圖形處理單元(gpu)或張量處理單元(tpu)上執(zhí)行請求,以改善等待時間和吞吐量,尤其是在轉(zhuǎn)換器模型的參數(shù)的數(shù)量相當大的情況下。
4、在一個實例中,推理系統(tǒng)分批地處理請求以實現(xiàn)對加速器的高處理器利用率。具體地,推理系統(tǒng)可以一起處理批中的多個請求,以利用硬件加速器中的并行計算單元的量。在許多情況下,批中的請求的輸入在長度上是可變的。例如,批中的每個請求的輸入令牌的數(shù)量可能在長度上是可變的。然而,針對轉(zhuǎn)換器模型進行分批的方法通常要求批中的多個請求的數(shù)據(jù)的長度相同以進行處理。因此,處理具有可變長度的一批請求可能是不可行的,或者解決該問題的變通方案可能導致與單獨處理每個請求相比使用更多資源。
技術(shù)實現(xiàn)思路
1、一種推理系統(tǒng),其通過對轉(zhuǎn)換器模型中的操作的子集進行選擇性分批但是針對轉(zhuǎn)換器模型中的操作的子集單獨地處理批中的請求,來將機器學習轉(zhuǎn)換器模型應(yīng)用于具有可變輸入長度或可變目標長度或可變內(nèi)部狀態(tài)長度的一批請求。在一個實施方式中,要單獨處理的操作是轉(zhuǎn)換器模型的編碼器或解碼器的注意力(attention)操作。通過選擇性分批,推理系統(tǒng)可以使得能夠針對具有可變的輸入長度或目標長度或內(nèi)部狀態(tài)長度的一批請求執(zhí)行批操作,以利用硬件加速器的并行計算能力,同時防止針對將一批請求的數(shù)據(jù)約束到相同長度的變通方案而發(fā)生的不必要的計算。
2、具體地,在一個實施方式中,推理系統(tǒng)接收包括一個或更多個輸入令牌序列的一批請求。針對該批中的第一請求的第一輸入令牌序列的長度可以不同于針對第二請求的第二輸入令牌序列的長度。推理系統(tǒng)訪問包括彼此耦接的至少一組解碼器的轉(zhuǎn)換器模型。針對一次或更多次迭代,推理系統(tǒng)重復(fù)執(zhí)行通過將該組解碼器應(yīng)用于針對請求的一個或更多個輸入來生成針對該請求的一個或更多個輸出令牌的步驟。
3、針對組中的至少一個解碼器,推理系統(tǒng)通過將qkv權(quán)重張量應(yīng)用于一個或更多個輸入表示來生成針對請求的一個或更多個查詢、一個或更多個關(guān)鍵字以及一個或更多個值。在一個實例中,查詢、關(guān)鍵字和值通過批操作生成。推理系統(tǒng)至少從一個或更多個查詢中拆分針對第一請求的第一查詢、從一個或更多個關(guān)鍵字中拆分針對第一請求的第一關(guān)鍵字以及從一個或更多個值中拆分針對第一請求的第一值。推理系統(tǒng)還至少從一個或更多個查詢中拆分針對第二請求的第二查詢、從一個或更多個關(guān)鍵字中拆分針對第二請求的第二關(guān)鍵字以及從一個或更多個值中拆分針對第二請求的第二值。
4、推理系統(tǒng)通過至少組合針對第一請求的第一查詢、第一關(guān)鍵字和第一值來生成針對第一請求的第一注意力輸出。推理系統(tǒng)還通過至少組合針對第二請求的第二查詢、第二關(guān)鍵字和第二值來單獨生成針對第二請求的第二注意力輸出。推理系統(tǒng)至少將第一注意力輸出和第二注意力輸出連結(jié)成連結(jié)張量,并且通過將權(quán)重張量應(yīng)用于連結(jié)張量來生成一個或更多個輸出表示。在一個實例中,一個或更多個輸出表示通過批操作生成。推理系統(tǒng)將一個或更多個輸出令牌設(shè)置為該組解碼器的一個或更多個輸入,以用于接下來的迭代,并且將針對至少一個請求生成的輸出令牌作為對該至少一個請求的響應(yīng)提供給客戶端設(shè)備。
5、在一個實施方式中,推理系統(tǒng)針對轉(zhuǎn)換器模型執(zhí)行迭代級動態(tài)分批,這使得推理系統(tǒng)能夠動態(tài)地修改正在執(zhí)行引擎上執(zhí)行的一批請求。具體地,在現(xiàn)有的針對轉(zhuǎn)換器模型的分批方法中,一旦開始在執(zhí)行引擎上對一批請求進行處理,就難以對該批請求進行修改。這是因為某些分批方法要求在批中的所有請求之間輸入的長度或內(nèi)部狀態(tài)的長度是相同的。因此,除非新傳入的請求與正在執(zhí)行引擎上執(zhí)行的一批請求具有相同長度的輸入,否則推理系統(tǒng)可能難以對該批進行修改以例如向該批添加新請求或移除新請求。
6、通過執(zhí)行選擇性分批,推理系統(tǒng)可以在迭代級上監(jiān)視和修改正在執(zhí)行引擎上處理的批,并且當請求完成且接收到新請求時,在迭代之間對該批進行更新。具體地,在一次或更多次迭代處,推理系統(tǒng)可以通過將新傳入的請求添加至批或從批中移除已完成的請求來修改正在執(zhí)行引擎上執(zhí)行的批。這是因為選擇性分批使得能夠?qū)哂锌勺冮L度的請求進行處理,而無需將轉(zhuǎn)換器模型的一個或更多個輸入或內(nèi)部狀態(tài)限制為相同長度。這使得推理系統(tǒng)能夠?qū)⑴邢啾扔谄渌埱筝^早完成的請求移除,從而使得可以更快地向用戶提供響應(yīng),并且使得推理系統(tǒng)能夠在執(zhí)行引擎未被充分利用的情況下向一批請求添加新請求。
7、在一個實施方式中,推理系統(tǒng)的服務(wù)系統(tǒng)接收一個或更多個請求以用于執(zhí)行。服務(wù)系統(tǒng)可以包括請求處理器和調(diào)度器,請求處理器和調(diào)度器各自耦接至用于執(zhí)行包括至少一組解碼器的機器學習轉(zhuǎn)換器模型的一個或更多個執(zhí)行引擎。調(diào)度器調(diào)度包括一個或更多個請求的一批請求以用于在執(zhí)行引擎上執(zhí)行。執(zhí)行引擎通過迭代地將轉(zhuǎn)換器模型應(yīng)用于針對該批請求的第一組輸入來生成第一組輸出令牌。在一個實例中,應(yīng)用轉(zhuǎn)換器模型包括將至少一個批操作應(yīng)用于與該批請求相關(guān)聯(lián)的一個或更多個輸入張量。
8、服務(wù)系統(tǒng)可以從客戶端設(shè)備接收包括輸入令牌序列的新請求。調(diào)度器響應(yīng)于確定執(zhí)行引擎具有可用于執(zhí)行包括一個或更多個請求和新請求的第二批請求的存儲器來調(diào)度該第二批請求以用于在執(zhí)行引擎上執(zhí)行。執(zhí)行引擎通過迭代地將轉(zhuǎn)換器模型應(yīng)用于針對該第二批請求的第二組輸入來生成第二組輸出令牌。第二組輸入可以包括針對新請求的輸入令牌序列。
1.一種通過應(yīng)用機器學習模型來執(zhí)行一批請求的方法,包括:
2.根據(jù)權(quán)利要求1所述的方法,其中,所述機器學習模型包括一組解碼器,并且獲得針對解碼器的所述一個或更多個查詢、所述一個或更多個關(guān)鍵字以及所述一個或更多個值包括:
3.根據(jù)權(quán)利要求1所述的方法,其中,所述機器學習模型包括一組編碼器和耦接至所述組編碼器的一組解碼器,并且獲得所述一個或更多個查詢、所述一個或更多個關(guān)鍵字以及所述一個或更多個值包括:
4.根據(jù)權(quán)利要求3所述的方法,還包括:
5.根據(jù)權(quán)利要求3所述的方法,其中,所述編碼器是所述組編碼器中的最終編碼器。
6.根據(jù)權(quán)利要求1所述的方法,其中,所述機器學習模型包括一組編碼器,并且獲得針對編碼器的所述一個或更多個查詢、所述一個或更多個關(guān)鍵字以及所述一個或更多個值包括:
7.根據(jù)權(quán)利要求1所述的方法,還包括沿單個維度將針對所述一批的所述一個或更多個令牌序列中的令牌連結(jié),以生成經(jīng)連結(jié)的輸入張量。
8.根據(jù)權(quán)利要求1所述的方法,其中,將至少所述第一注意力輸出和所述第二注意力輸出連結(jié)成所述連結(jié)張量進一步包括:沿單個維度將所述第一注意力輸出的元素和所述第二注意力輸出的元素連結(jié),以生成所述連結(jié)張量。
9.根據(jù)權(quán)利要求1所述的方法,其中,所述第一注意力輸出是通過對至少所述第一查詢、所述第一關(guān)鍵字和所述第一值執(zhí)行一組操作來生成的,并且其中,所述第二注意力輸出是通過對至少所述第二查詢、所述第二關(guān)鍵字和所述第二值執(zhí)行第二組操作來生成的,并且其中,所述一組操作在執(zhí)行引擎的第一核上執(zhí)行,并且其中,所述第二組操作在所述執(zhí)行引擎的第二核上或在第二執(zhí)行引擎上執(zhí)行。
10.根據(jù)權(quán)利要求1所述的方法,其中,所述第一注意力輸出是通過對至少所述第一查詢、所述第一關(guān)鍵字和所述第一值執(zhí)行一組操作來生成的,并且其中,所述第二注意力輸出是通過對至少所述第二查詢、所述第二關(guān)鍵字和所述第二值執(zhí)行第二組操作來生成的,并且其中,所述一組操作在執(zhí)行引擎的第一核上執(zhí)行,并且其中,所述第二組操作在所述執(zhí)行引擎的所述第一核上執(zhí)行。
11.一種存儲計算機程序指令的非暫態(tài)計算機可讀存儲介質(zhì),所述計算機程序指令能夠執(zhí)行以執(zhí)行操作,所述操作包括:
12.根據(jù)權(quán)利要求11所述的非暫態(tài)計算機可讀存儲介質(zhì),其中,所述機器學習模型包括一組解碼器,并且獲得針對解碼器的所述一個或更多個查詢、所述一個或更多個關(guān)鍵字以及所述一個或更多個值包括:
13.根據(jù)權(quán)利要求11所述的非暫態(tài)計算機可讀存儲介質(zhì),其中,所述機器學習模型包括一組編碼器和耦接至所述組編碼器的一組解碼器,并且獲得所述一個或更多個查詢、所述一個或更多個關(guān)鍵字以及所述一個或更多個值包括:
14.根據(jù)權(quán)利要求13所述的非暫態(tài)計算機可讀存儲介質(zhì),還包括:
15.根據(jù)權(quán)利要求13所述的非暫態(tài)計算機可讀存儲介質(zhì),其中,所述編碼器是所述組編碼器中的最終編碼器。
16.根據(jù)權(quán)利要求11所述的非暫態(tài)計算機可讀存儲介質(zhì),其中,所述機器學習模型包括一組編碼器,并且獲得針對編碼器的所述一個或更多個查詢、所述一個或更多個關(guān)鍵字以及所述一個或更多個值包括:
17.根據(jù)權(quán)利要求11所述的非暫態(tài)計算機可讀存儲介質(zhì),還包括沿單個維度將針對所述一批的所述一個或更多個令牌序列中的令牌連結(jié),以生成經(jīng)連結(jié)的輸入張量。
18.根據(jù)權(quán)利要求11所述的非暫態(tài)計算機可讀存儲介質(zhì),其中,將至少所述第一注意力輸出和所述第二注意力輸出連結(jié)成所述連結(jié)張量進一步包括:沿單個維度將所述第一注意力輸出的元素和所述第二注意力輸出的元素連結(jié),以生成所述連結(jié)張量。
19.根據(jù)權(quán)利要求11所述的非暫態(tài)計算機可讀存儲介質(zhì),其中,所述第一注意力輸出是通過對至少所述第一查詢、所述第一關(guān)鍵字和所述第一值執(zhí)行一組操作來生成的,并且其中,所述第二注意力輸出是通過對至少所述第二查詢、所述第二關(guān)鍵字和所述第二值執(zhí)行第二組操作來生成的,并且其中,所述一組操作在執(zhí)行引擎的第一核上執(zhí)行,并且其中,所述第二組操作在所述執(zhí)行引擎的第二核上或在第二執(zhí)行引擎上執(zhí)行。
20.根據(jù)權(quán)利要求11所述的非暫態(tài)計算機可讀存儲介質(zhì),其中,所述第一注意力輸出是通過對至少所述第一查詢、所述第一關(guān)鍵字和所述第一值執(zhí)行一組操作來生成的,并且其中,所述第二注意力輸出是通過對至少所述第二查詢、所述第二關(guān)鍵字和所述第二值執(zhí)行第二組操作來生成的,并且其中,所述一組操作在執(zhí)行引擎的第一核上執(zhí)行,并且其中,所述第二組操作在所述執(zhí)行引擎的所述第一核上執(zhí)行。