0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Microsoft Editor是怎樣實(shí)現(xiàn)零COGS的?

微軟科技 ? 來源:未知 ? 2023-06-13 00:15 ? 次閱讀

編者按:Microsoft Editor 是一款人工智能寫作輔助工具,其中的語法檢查器(grammar checker)功能不僅可以幫助不同水平、領(lǐng)域的用戶在寫作過程中檢查語法錯(cuò)誤,還可以對(duì)錯(cuò)誤進(jìn)行解釋并給出正確的修改建議。神經(jīng)語法檢查器模型是這款提供了強(qiáng)大拼寫檢查和語法糾正服務(wù)的 Microsoft Editor 背后的關(guān)鍵技術(shù),該模型采用了微軟亞洲研究院創(chuàng)新的 Aggressive Decoding 算法,并借助高性能 ONNX Runtime(ORT) 進(jìn)行加速,使服務(wù)器端的模型推理速度提升了200%,在不損失模型預(yù)測(cè)質(zhì)量的情況下,節(jié)省了三分之二的成本。神經(jīng)語法檢查器模型還使用了微軟亞洲研究院前沿的客戶端 seq2seq 建模技術(shù) EdgeFormer,構(gòu)建了性能優(yōu)異的輕量級(jí)生成語言模型,結(jié)合部署中的模型和系統(tǒng)優(yōu)化,該技術(shù)可賦能用戶在設(shè)備上的部署,從而實(shí)現(xiàn)零銷貨成本(zero-COGS,zero-cost-of-goods-sold)的目標(biāo)。本文編譯自微軟研究院博客 “Achieving Zero-COGS with Microsoft Editor Neural Grammar Checker”。

自上世紀(jì)70年代以來,語法檢查器(grammar checker)所依賴的技術(shù)已經(jīng)取得了顯著的發(fā)展,最初的第一代工具只是基于簡(jiǎn)單的模式匹配(pattern matching)。1997年,一個(gè)標(biāo)志性的事件發(fā)生了,當(dāng)時(shí) Microsoft Word 97 引入了一個(gè)基于成熟的自然語言處理系統(tǒng)(Heidorn, 2000)的語法檢查器,以支持更復(fù)雜的錯(cuò)誤檢測(cè)和修改,并提高了準(zhǔn)確率。2020年,語法檢查器再次實(shí)現(xiàn)關(guān)鍵性突破,微軟推出了神經(jīng)語法檢查器(neural grammar checker),通過利用深度神經(jīng)網(wǎng)絡(luò)和全新的流暢度提升學(xué)習(xí)和推理機(jī)制,神經(jīng)語法檢查器在 CoNLL-2014 和 JFLEG 基準(zhǔn)數(shù)據(jù)集上均取得了 SOTA 結(jié)果[1,2]2022年,微軟發(fā)布了高度優(yōu)化后的 Microsoft Editor 神經(jīng)語法檢查器,并將其集成到 Word Win32、Word Online、Outlook Online 和 Editor Browser Extension 中。

如今 Microsoft Editor 版本中的神經(jīng)語法檢查器模型主要采用了微軟亞洲研究院創(chuàng)新的 Aggressive Decoding 算法,而且借助高性能 ONNX Runtime(ORT)進(jìn)行加速,可以使服務(wù)器端模型的推理速度提升200%,在不損失模型預(yù)測(cè)質(zhì)量的情況下,節(jié)省了三分之二的成本。此外,該神經(jīng)語法檢查器模型還使用微軟亞洲研究院前沿的客戶端 seq2seq 建模技術(shù) EdgeFormer,構(gòu)建了性能優(yōu)異的輕量級(jí)生成語言模型,結(jié)合部署過程中設(shè)備開銷感知的模型和系統(tǒng)優(yōu)化,該技術(shù)滿足交付要求,賦能用戶設(shè)備上的部署,最終實(shí)現(xiàn)了零銷貨成本(zero-COGS, zero-cost-of-goods-sold)的目標(biāo)。

不僅如此,Microsoft Editor 中的神經(jīng)語法檢查器模型在轉(zhuǎn)換為客戶端模型后,還有三個(gè)優(yōu)勢(shì):

1. 提升隱私性。客戶端模型在用戶設(shè)備本地運(yùn)行,無需向遠(yuǎn)程服務(wù)器發(fā)送任何個(gè)人數(shù)據(jù)。

2. 增強(qiáng)可用性。客戶端模型可以離線運(yùn)行,不受網(wǎng)絡(luò)連接、帶寬或服務(wù)器容量的限制。

3. 降低成本、提高可擴(kuò)展性。客戶端模型運(yùn)行在用戶設(shè)備上,省去了服務(wù)器執(zhí)行所需的所有計(jì)算,從而可以服務(wù)更多客戶。

另外,Microsoft Editor 還使用了 GPT-3.5 模型來生成高質(zhì)量的訓(xùn)練數(shù)據(jù)來識(shí)別和移除低質(zhì)量的訓(xùn)練示例,從而提升模型的性能。

Aggressive Decoding 算法具有巨大價(jià)值,它不僅適用于 Microsoft Editor 這樣對(duì)響應(yīng)時(shí)間、請(qǐng)求頻率和準(zhǔn)確度都有很高要求的應(yīng)用場(chǎng)景,還可以拓展到更多功能模塊,如文本重寫、文本摘要等。Aggressive Decoding 算法讓我們能夠在保證模型預(yù)測(cè)質(zhì)量不受損的同時(shí)更快地服務(wù)更多的客戶,降低服務(wù)成本并提高產(chǎn)品的競(jìng)爭(zhēng)力和影響力, 這一創(chuàng)新技術(shù)也將在未來的客戶端模型研發(fā)中發(fā)揮重要作用。

陳思清

微軟首席應(yīng)用科學(xué)家

4cef8302-093b-11ee-962d-dac502259ad0.png

Aggressive Decoding:首個(gè)在seq2seq任務(wù)上無損加速的高效解碼算法

Microsoft Editor 中的人工智能語法檢查器主要基于 Transformer 模型,并采用了微軟亞洲研究院在語法糾錯(cuò)方面的創(chuàng)新技術(shù)[1,2,3]。與大多數(shù) seq2seq 任務(wù)一樣,Microsoft Editor 此前的模型使用了自回歸解碼來進(jìn)行高質(zhì)量的語法校正。然而,傳統(tǒng)的自回歸解碼效率很低,尤其是由于低計(jì)算并行性,導(dǎo)致模型無法充分利用現(xiàn)代計(jì)算設(shè)備(CPU、GPU),從而使得模型服務(wù)成本過高,并且難以快速擴(kuò)展到更多終端(Web/桌面)。

為了降低服務(wù)成本,微軟亞洲研究院的研究員們提出了創(chuàng)新的解碼算法 Aggressive Decoding[3]。與之前以犧牲預(yù)測(cè)質(zhì)量為代價(jià)來加速推理的方法不同,Aggressive Decoding 是首個(gè)應(yīng)用在 seq2seq 任務(wù)(如語法檢查和句子重寫)上達(dá)到無損加速的高效解碼算法。它直接將輸入作為目標(biāo)輸出,并且并行驗(yàn)證它們,而不是像傳統(tǒng)的自回歸解碼那樣逐個(gè)順序解碼。因此,這一算法可以充分發(fā)揮現(xiàn)代計(jì)算設(shè)備(如帶有 GPU 的 PC)強(qiáng)大的并行計(jì)算能力,極大地提升解碼速度,能夠在不犧牲質(zhì)量的前提下以低廉的成本處理來自全球用戶(每年)數(shù)萬億次的請(qǐng)求。

4d13698e-093b-11ee-962d-dac502259ad0.gif

圖1:Aggressive Decoding 的工作原理

如圖1所示,如果模型在 Aggressive Decoding 過程中發(fā)現(xiàn)了一個(gè)分歧點(diǎn),那么算法將舍棄分歧點(diǎn)后的所有預(yù)測(cè),并使用傳統(tǒng)的逐個(gè)自回歸解碼重新解碼。如果在逐個(gè)重新解碼時(shí)發(fā)現(xiàn)了輸出和輸入之間存在唯一的后綴匹配(圖1中藍(lán)色點(diǎn)線突出顯示的建議),那算法會(huì)通過把輸入的匹配字符(token)之后的字符(圖1中用橙色虛線突出顯示的部分)復(fù)制到解碼器的輸入中并假設(shè)它們是相同的,從而切換回 Aggressive Decoding。通過這種方式,Aggressive Decoding 可以確保生成的字符與自回歸貪婪解碼一致,但解碼步驟大幅減少,顯著提高了解碼效率。

我們?cè)谧瞿P屯评砑铀偎惴ㄑ芯繒r(shí)最重要的考慮就是無損,因?yàn)樵趯?shí)際應(yīng)用中,模型生成質(zhì)量是排在第一位的,以損失質(zhì)量來換取更小的開銷會(huì)嚴(yán)重影響用戶體驗(yàn)。為此,我們提出了 Aggressive Decoding 算法,它利用了語法糾錯(cuò)任務(wù)的一個(gè)重要特性,即輸入與輸出高度相似,將整個(gè)計(jì)算過程(pipeline)高度并行化,充分利用 GPU 在并行計(jì)算上的優(yōu)勢(shì),在生成質(zhì)量無損的前提下實(shí)現(xiàn)大幅加速的效果。

葛濤

微軟亞洲研究院高級(jí)研究員

離線+在線評(píng)估結(jié)果:Aggressive Decoding可顯著降低COGS

離線評(píng)估:研究員們?cè)谡Z法校正和其他文本重寫任務(wù)如文本簡(jiǎn)化中,采用了一個(gè)6+6標(biāo)準(zhǔn)的 Transformer 及深度編碼器和淺層解碼器的 Transformer 來測(cè)試 Aggressive Decoding。結(jié)果表明 Aggressive Decoding 可以在沒有質(zhì)量損失的情況下大幅提升速度。

4d34b99a-093b-11ee-962d-dac502259ad0.jpg

表1:6+6標(biāo)準(zhǔn) Transformer 測(cè)試結(jié)果

4d491a34-093b-11ee-962d-dac502259ad0.jpg

表2:深度編碼器和淺層解碼器的 Transformer 的測(cè)試結(jié)果

4d65df0c-093b-11ee-962d-dac502259ad0.png

圖2:Aggressive Decoding 算法在更強(qiáng)大的并行計(jì)算設(shè)備上的運(yùn)行效果更好

在線評(píng)估:研究員們還在 Marian 服務(wù)器模型和使用 ONNX Runtime 的 Aggressive Decoding 的同等服務(wù)器模型之間進(jìn)行了 A/B 實(shí)驗(yàn)。結(jié)果如圖3所示,與在 CPU 中使用傳統(tǒng)自回歸解碼的 Marian 運(yùn)行時(shí)相比,后者在 p50 延遲上有超過2倍的提升,在 p95 和 p99 延遲上有超過3倍的提升。此外,與之前的自回歸解碼相比,后者提供了更高的效率穩(wěn)定性。這種顯著的推理時(shí)間加速,將服務(wù)器端的 COGS 降低了三分之二。

4d8f7b6e-093b-11ee-962d-dac502259ad0.jpg

圖3:所有區(qū)域 Marian 和 ONNX 語法檢查器延遲對(duì)比

離線和在線評(píng)估都驗(yàn)證了 Aggressive Decoding 能夠在不降低模型預(yù)測(cè)質(zhì)量的情況下顯著減少 COGS。基于此,研究員們將 Aggressive Decoding 也應(yīng)用到了更通用的 seq2seq 任務(wù)中[4]。Aggressive Decoding 的高效率和無損質(zhì)量特性,或?qū)⑹蛊涑蔀?seq2seq 任務(wù)高效解碼的標(biāo)準(zhǔn)范式,在降低 seq2seq 模型部署成本中起到重要作用。

4cef8302-093b-11ee-962d-dac502259ad0.png

ONNX Runtime加速語法檢查器

ONNX Runtime 是微軟開發(fā)的高性能引擎,它可在各種硬件平臺(tái)上加速人工智能模型。許多基于機(jī)器學(xué)習(xí)的微軟產(chǎn)品都利用 ONNX Runtime 來加速推理性能。為了進(jìn)一步降低推理延遲,ORT 團(tuán)隊(duì)的研發(fā)人員們首先將 PyTorch 版的 Aggressive Decoding 語法檢查器,通過 PyTorch-ONNX 導(dǎo)出器導(dǎo)出為 ONNX 格式,再使用 ONNX Runtime 進(jìn)行推理。ONNX Runtime 支持 Transformer 的特定優(yōu)化以及 INT8 量化,這不僅實(shí)現(xiàn)了 Transformer 在 CPU 上的性能加速,同時(shí)還可以縮減模型大小。該端到端解決方案使用了多項(xiàng)前沿技術(shù),以實(shí)現(xiàn)高效地運(yùn)行這個(gè)先進(jìn)的語法檢查器模型。

ONNX Runtime 是一個(gè)具有很好延展性的跨硬件模型加速引擎,可以支持不同的應(yīng)用場(chǎng)景。為了最高效運(yùn)行 Aggressive Decoding 這一創(chuàng)新解碼算法,我們對(duì) PyTorch 導(dǎo)出器和 ONNX Runtime 做了一系列提升,最終讓這一先進(jìn)的語法檢查器模型以最高性能運(yùn)行。

寧瓊

微軟首席產(chǎn)品主管

PyTorch 提供了一個(gè)內(nèi)置函數(shù),可以輕松地將 PyTorch 模型導(dǎo)出為 ONNX 格式。為了支持語法檢查模型的獨(dú)特架構(gòu),研發(fā)人員們?cè)趯?dǎo)出器里實(shí)現(xiàn)了復(fù)雜嵌套控制流導(dǎo)出到 ONNX,并擴(kuò)展了官方 ONNX 規(guī)范來支持序列數(shù)據(jù)類型和運(yùn)算符,以表示更復(fù)雜的場(chǎng)景,例如自回歸搜索算法。這樣就不需要單獨(dú)導(dǎo)出模型編碼器和解碼器組件,再使用序列生成邏輯將它們串聯(lián)在一起。由于 PyTorch-ONNX 導(dǎo)出器和 ONNX Runtime 支持序列數(shù)據(jù)類型和運(yùn)算符,所以原模型可以導(dǎo)出成單一的一個(gè)包括編碼器、解碼器和序列生成的 ONNX 模型,這既帶來了高效的計(jì)算,又簡(jiǎn)化了推理邏輯。此外,PyTorch ONNX 導(dǎo)出器的 shape type inference 組件也得到了增強(qiáng),從而可以得到符合更嚴(yán)格的 ONNX shape type 約束下的有效的 ONNX 模型。

在語法檢查器模型中引入的 Aggressive Decoding 算法最初是在 Fairseq 中實(shí)現(xiàn)的。為了使其與 ONNX 兼容以便于導(dǎo)出,研發(fā)人員們?cè)?HuggingFace 中重新實(shí)現(xiàn)了 Aggressive Decoding 算法。在深入實(shí)施時(shí),研發(fā)人員們發(fā)現(xiàn) ONNX 標(biāo)準(zhǔn)運(yùn)算符集不直接支持某些組件(例如分叉檢測(cè)器)。目前有兩種方法可以將不支持的運(yùn)算符導(dǎo)出到 ONNX 并在 ONNX Runtime 中運(yùn)行:1. 利用 ONNX 已有的基本運(yùn)算符組建一個(gè)具有等效語義的圖;2. 在 ONNX Runtime 中實(shí)現(xiàn)一個(gè)更高效的自定義運(yùn)算符。ONNX Runtime 自定義運(yùn)算符功能允許用戶實(shí)現(xiàn)自己的運(yùn)算符,以便靈活地在 ONNX Runtime 中運(yùn)行。用戶可以權(quán)衡實(shí)現(xiàn)成本和推理性能來選擇合適的方法。考慮到本模型組件的復(fù)雜性,標(biāo)準(zhǔn) ONNX 運(yùn)算符的組合可能會(huì)帶來性能瓶頸。因此,研發(fā)人員們選擇在 ONNX Runtime 中實(shí)現(xiàn)自定義運(yùn)算符。

ONNX Runtime 支持 Transformer 的優(yōu)化和量化,這在 CPU 和 GPU 上都能提升性能。此外,ONNX Runtime 針對(duì)語法檢查器模型進(jìn)一步增強(qiáng)了編碼器 attention 以及解碼器 reshape 圖算融合。支持該模型的另一大挑戰(zhàn)是多個(gè)模型子圖,而 ONNX Runtime Transformer 優(yōu)化器和量化工具對(duì)此也實(shí)現(xiàn)了子圖融合。ONNX Runtime 量化壓縮已被應(yīng)用于整個(gè)模型,進(jìn)一步改善了吞吐量和延遲。

4cef8302-093b-11ee-962d-dac502259ad0.png

GPT-3.5助力模型實(shí)現(xiàn)質(zhì)的飛躍

為了進(jìn)一步提高生產(chǎn)中模型的精度和召回率,研究員們使用了強(qiáng)大的 GPT-3.5 作為教師模型。具體而言,GPT-3.5 模型通過以下兩種方式來幫助提高結(jié)果:

訓(xùn)練數(shù)據(jù)增強(qiáng):通過對(duì) GPT-3.5 模型進(jìn)行微調(diào),使其為大量未標(biāo)注的文本生成標(biāo)簽。所獲得的高質(zhì)量標(biāo)注,可以用作增強(qiáng)訓(xùn)練數(shù)據(jù)來提高模型性能。

訓(xùn)練數(shù)據(jù)清理:利用 GPT-3.5 強(qiáng)大的零樣本和少樣本學(xué)習(xí)能力來區(qū)分高質(zhì)量和低質(zhì)量的訓(xùn)練示例。然后,通過 GPT-3.5 模型重新對(duì)已識(shí)別的低質(zhì)量示例生成標(biāo)注,從而產(chǎn)生更干凈、更高質(zhì)量的訓(xùn)練集,直接增強(qiáng)模型性能。

4cef8302-093b-11ee-962d-dac502259ad0.png

EdgeFormer:用于客戶端seq2seq建模的成本效益參數(shù)

近年來,客戶端設(shè)備的計(jì)算能力大大增加,使得利用深度神經(jīng)網(wǎng)絡(luò)來實(shí)現(xiàn)最終的零銷貨成本成為可能。然而,在這些設(shè)備上運(yùn)行生成式語言模型仍然是一個(gè)很大的挑戰(zhàn),因?yàn)檫@些模型的內(nèi)存效率必須受到嚴(yán)格的控制。在涉及生成式語言模型時(shí),自然語言理解中用于神經(jīng)網(wǎng)絡(luò)的傳統(tǒng)壓縮方法往往不適用。

4dfa91b0-093b-11ee-962d-dac502259ad0.png

圖4:使用深度神經(jīng)網(wǎng)絡(luò)來實(shí)現(xiàn)零銷貨成本

(zero-COGS)

運(yùn)行在客戶端的語法模型應(yīng)該具有很高的效率(例如延遲在100ms內(nèi)),這個(gè)問題已經(jīng)由 Aggressive Decoding 解決了。此外,客戶端模型還必須具有高效的內(nèi)存(例如占用的空間在50MB以內(nèi)),這是強(qiáng)大的 Transformer 模型(通常超過5000萬個(gè)參數(shù))在客戶端設(shè)備上運(yùn)行的主要瓶頸。

為了應(yīng)對(duì)這一挑戰(zhàn),微軟亞洲研究院的研究員們引入了前沿的客戶端 seq2seq 建模技術(shù)EdgeFormer[6],用于構(gòu)建性能優(yōu)異的輕量級(jí)生成語言模型,讓模型可以在用戶的計(jì)算機(jī)上輕松運(yùn)行。

4e1093ca-093b-11ee-962d-dac502259ad0.png

圖5:DNN 語法:服務(wù)器模型 VS 客戶端模型

EdgeFormer 有兩個(gè)原則,主要是為了參數(shù)化的成本效益:

有利于編碼器的參數(shù)化

負(fù)載均衡參數(shù)化

4e345aa8-093b-11ee-962d-dac502259ad0.png

圖6:有利于編碼器的參數(shù)化

4e5c40fe-093b-11ee-962d-dac502259ad0.png

圖7:負(fù)載均衡參數(shù)化

遵循上述具有成本效益參數(shù)化的原則而設(shè)計(jì)的 EdgeFormer,使得每個(gè)參數(shù)都能發(fā)揮最大潛力,即使客戶端設(shè)備存在嚴(yán)格的計(jì)算和內(nèi)存限制,也能獲得有競(jìng)爭(zhēng)力的結(jié)果。

在 EdgeFormer 的基礎(chǔ)上,研究員們進(jìn)一步提出了 EdgeLM——EdgeFormer 的預(yù)訓(xùn)練版本,這是第一個(gè)在設(shè)備上公開可用的預(yù)訓(xùn)練 seq2seq 模型,可以讓 seq2seq 任務(wù)的微調(diào)變得更容易,進(jìn)而獲得好的結(jié)果。EdgeLM 作為語法客戶端模型的基礎(chǔ)模型,實(shí)現(xiàn)了零銷貨成本,與服務(wù)器端模型相比,該模型以最小的質(zhì)量損失實(shí)現(xiàn)了超過5倍的模型壓縮。

微軟亞洲研究院異構(gòu)計(jì)算組致力于以全棧協(xié)同設(shè)計(jì)的思想,構(gòu)建深度學(xué)習(xí)模型到實(shí)際設(shè)備部署之間的橋梁。以 Microsoft Editor 為例,我們與算法、產(chǎn)品和 AI 框架團(tuán)隊(duì)深度合作,通過系統(tǒng)和硬件感知的模型優(yōu)化和壓縮,以及針對(duì)不同硬件的推理系統(tǒng)和運(yùn)算符優(yōu)化等,使模型開銷能夠滿足實(shí)際設(shè)備運(yùn)行的要求,為未來將更多微軟產(chǎn)品的 AI 服務(wù)部署到設(shè)備端鋪平了道路。

曹婷

微軟亞洲研究院高級(jí)研究員

4cef8302-093b-11ee-962d-dac502259ad0.png

降低推理成本,賦能客戶端部署

客戶端設(shè)備的模型部署對(duì)硬件使用有嚴(yán)格的要求,如內(nèi)存和磁盤使用量等,以避免干擾其他的應(yīng)用程序。由于 ONNX Runtime 是一個(gè)輕量級(jí)的引擎并提供全面客戶端推理解決方案(如 ONNX Runtime 量化和 ONNX Runtime 擴(kuò)展),所以其在設(shè)備部署方面也具有明顯的優(yōu)勢(shì)。此外,為了在保持服務(wù)質(zhì)量的前提下滿足交付要求,微軟亞洲研究院引入了一系列優(yōu)化技術(shù),包括系統(tǒng)感知的模型優(yōu)化、模型元數(shù)據(jù)簡(jiǎn)化、延遲參數(shù)加載以及定制量化策略?;?EdgeFormer 建模,這些系統(tǒng)優(yōu)化可以進(jìn)一步將內(nèi)存成本降低2.7倍,而不會(huì)降低模型性能,最終賦能模型在客戶端設(shè)備的部署。

系統(tǒng)感知的模型優(yōu)化。由于模型在推理系統(tǒng)中被表示為數(shù)據(jù)流圖,因此該模型的主要內(nèi)存成本來自于生成的許多子圖。如圖8所示,PyTorch 代碼中的每個(gè)分支被映射為一個(gè)子圖。所以,需要通過優(yōu)化模型實(shí)現(xiàn)來減少分支指令的使用率。這其中尤為重要的是,因?yàn)椴ㄊ阉靼嗟姆种е噶?,研究員們利用了貪婪搜索作為解碼器搜索算法,從而將內(nèi)存成本降低了38%。

4e97405a-093b-11ee-962d-dac502259ad0.png

圖8:PyTorch 模型和 ONNX 模型圖的映射

模型元數(shù)據(jù)簡(jiǎn)化。如圖8所示,模型包含大量消耗內(nèi)存的元數(shù)據(jù),如節(jié)點(diǎn)名稱和類型、輸入和輸出以及參數(shù)等。為了降低成本,研究員們需要簡(jiǎn)化元數(shù)據(jù),只保留推理所需的基本信息,例如,節(jié)點(diǎn)名稱從一個(gè)長(zhǎng)字符串簡(jiǎn)化為一個(gè)索引。此外,研究員們也優(yōu)化了 ONNX Runtime 模型圖的實(shí)現(xiàn),對(duì)所有子圖只保留一個(gè)元數(shù)據(jù)副本,而不是在每次生成子圖時(shí)復(fù)制所有可用的元數(shù)據(jù)。

延遲模型權(quán)重加載。當(dāng)前的模型文件包含模型圖和權(quán)重,并在模型初始化期間將它們一起加載到內(nèi)存中。然而,這會(huì)增加內(nèi)存使用量,如圖9所示,這是因?yàn)樵谀P蛨D解析和轉(zhuǎn)換過程中會(huì)重復(fù)復(fù)制權(quán)重。為了避免這種情況,研究員們提出將模型圖和權(quán)重分別保存成獨(dú)立的文件,并將該方法在 ONNX Runtime 加以實(shí)現(xiàn)。通過該方法,在初始化期間,只有模型圖被加載到內(nèi)存中進(jìn)行實(shí)際解析和轉(zhuǎn)換,而權(quán)重仍然留在磁盤上,通過文件映射只把權(quán)重文件指針(pointer)保留在內(nèi)存中,實(shí)際的權(quán)重到內(nèi)存的加載將被推遲到模型推理之時(shí)。該技術(shù)可將峰值內(nèi)存成本降低50%。

4ed15362-093b-11ee-962d-dac502259ad0.png

圖9:對(duì)比現(xiàn)有的模型圖和權(quán)重同時(shí)加載(虛線上),以及模型初始化期間通過文件映射實(shí)現(xiàn)的延遲權(quán)重加載(虛線下)

ONNX Runtime 量化和擴(kuò)展。量化是眾所周知的模型壓縮技術(shù),它在犧牲模型精度的同時(shí),帶來了性能加速和模型縮減。ONNXRuntime 量化提供了多種微調(diào)選擇,使其能夠應(yīng)用定制的量化策略。研發(fā)人員們?yōu)?EdgeFormer 模型定制了最優(yōu)量化策略,以減少量化對(duì)精度的影響,具體包括訓(xùn)練后、動(dòng)態(tài)和 UINT8 量化,以及 per-channel 和既有所有運(yùn)算符量化策略。Onnxruntime-extensions 提供了一組 ONNX Runtime 定制運(yùn)算符,以支持視覺、文本和自然語言處理模型的常見預(yù)處理和后處理運(yùn)算符。利用這一工具,研發(fā)人員們將模型的預(yù)處理和后處理,例如標(biāo)記化(tokenization)、字符串操作等,都集成到一個(gè)獨(dú)立的 ONNX 模型文件中,從而提高性能、簡(jiǎn)化部署、減少內(nèi)存使用率并提供更好的可移植性。

這些創(chuàng)新成果只是微軟亞洲研究院為降低生成式語言模型的銷貨成本而做出的長(zhǎng)期努力中的第一個(gè)里程碑。這些方法并不局限于加速神經(jīng)語法檢查器,它可以很容易地應(yīng)用在抽象摘要、翻譯或搜索引擎等廣泛的場(chǎng)景中,從而加速降低大語言模型的銷貨成本[5,8]。在人工智能的未來發(fā)展中,這些創(chuàng)新對(duì)微軟乃至對(duì)整個(gè)行業(yè)都將至關(guān)重要。

相關(guān)鏈接:

ONNX Runtime

https://onnxruntime.ai

EdgeFormer

https://www.microsoft.com/en-us/research/publication/edgeformer-a-parameter-efficient-transformer-for-on-device-seq2seq-generation/

EdgeLM

https://github.com/microsoft/unilm/tree/master/edgelm

ONNX Runtime 量化

https://onnxruntime.ai/docs/performance/model-optimizations/quantization.html

Onnxruntime-extensions

https://github.com/microsoft/onnxruntime-extensions

參考文獻(xiàn):

[1] Tao Ge, Furu Wei, Ming Zhou: Fluency Boost Learning and Inference for Neural Grammatical Error Correction. In ACL 2018.

[2] Tao Ge, Furu Wei, Ming Zhou: Reaching Human-level Performance in Automatic Grammatical Error Correction: An Empirical Study.

https://arxiv.org/abs/1807.01270

[3] Xin Sun, Tao Ge, Shuming Ma, Jingjing Li, Furu Wei, Houfeng Wang: A Unified Strategy for Multilingual Grammatical Error Correction with Pre-trained Cross-lingual Language Model. In IJCAI 2022.

[4] Xin Sun, Tao Ge, Furu Wei, Houfeng Wang: Instantaneous Grammatical Error Correction with Shallow Aggressive Decoding. In ACL 2021.

[5] Tao Ge, Heming Xia, Xin Sun, Si-Qing Chen, Furu Wei: Lossless Acceleration for Seq2seq Generation with Aggressive Decoding.

https://arxiv.org/pdf/2205.10350.pdf

[6] Tao Ge, Si-Qing Chen, Furu Wei: EdgeFormer: A Parameter-efficient Transformer for On-device Seq2seq Generation. In EMNLP 2022.

[7] Heidorn, George. “Intelligent Writing Assistance.” Handbook of Natural Language Processing. Robert Dale, Hermann L. Moisl, and H. L. Somers, editors. New York: Marcel Dekker, 2000: 181-207.

[8] Nan Yang, Tao Ge, Liang Wang, Binxing Jiao, Daxin Jiang, Linjun Yang, Rangan Majumder, Furu Wei: Inference with Reference: Lossless Acceleration of Large Language Models.

https://arxiv.org/abs/2304.04487

關(guān)注微軟科技視頻號(hào)

了解更多科技前沿資訊


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微軟
    +關(guān)注

    關(guān)注

    4

    文章

    6554

    瀏覽量

    103903

原文標(biāo)題:Microsoft Editor是怎樣實(shí)現(xiàn)零COGS的?

文章出處:【微信號(hào):mstech2014,微信公眾號(hào):微軟科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何打造碳園區(qū),盾華電子助力“雙碳”目標(biāo)實(shí)現(xiàn) 碳公路 碳智慧校園

    如何打造碳園區(qū),盾華電子助力“雙碳”目標(biāo)實(shí)現(xiàn) 碳公路 碳智慧校園
    的頭像 發(fā)表于 10-08 15:52 ?130次閱讀
    如何打造<b class='flag-5'>零</b>碳園區(qū),盾華電子助力“雙碳”目標(biāo)<b class='flag-5'>實(shí)現(xiàn)</b>  <b class='flag-5'>零</b>碳公路 <b class='flag-5'>零</b>碳智慧校園

    Splashtop 加入 Microsoft 智能安全協(xié)會(huì)

    2024年9月25日美國加利福尼亞州庫比蒂諾SplashtopInc.宣布已正式加入Microsoft智能安全協(xié)會(huì)(MISA)。MISA由獨(dú)立軟件供應(yīng)商(ISV)和托管安全服務(wù)提供商(MISA)組成
    的頭像 發(fā)表于 09-28 08:08 ?153次閱讀
    Splashtop 加入 <b class='flag-5'>Microsoft</b> 智能安全協(xié)會(huì)

    請(qǐng)問多級(jí)射頻放大電路中怎么將信號(hào)調(diào)

    實(shí)現(xiàn)調(diào),并且不引入太多的干擾?小弟之前用電位器加跟隨調(diào)節(jié)同向放大的OPA847,調(diào)可以實(shí)現(xiàn),但輸出引入了較多噪聲,并且信號(hào)在50MHZ的時(shí)候開始衰減,并且通帶不平坦,與之前做的O
    發(fā)表于 09-09 08:07

    智能電表火線線電流不同會(huì)怎樣

    智能電表是現(xiàn)代電力系統(tǒng)中的重要組成部分,它能夠實(shí)現(xiàn)對(duì)用電情況的實(shí)時(shí)監(jiān)測(cè)和控制。在智能電表的工作原理中,火線和線是兩個(gè)非常重要的組成部分?;鹁€是電源線,負(fù)責(zé)將電能輸送到用戶端;而線則是返回線,負(fù)責(zé)
    的頭像 發(fā)表于 08-26 09:38 ?864次閱讀

    怎樣消除線和地線電壓

    消除線和地線電壓是電力系統(tǒng)和電子設(shè)備設(shè)計(jì)中的一個(gè)重要問題。 線和地線電壓的產(chǎn)生原因 1.1 線電壓的產(chǎn)生原因 線電壓是指在三相四線制供電系統(tǒng)中,
    的頭像 發(fā)表于 08-25 11:02 ?1431次閱讀

    Microsoft Dynamics 365 Contact Center聯(lián)絡(luò)中心上線

    Microsoft Dynamics 365 Contact Center 聯(lián)絡(luò)中心(國際版)全面上線,這標(biāo)志著微軟在客戶服務(wù)現(xiàn)代化道路上的又一重大里程碑。Microsoft Dynamics
    的頭像 發(fā)表于 08-20 09:57 ?420次閱讀

    異步置和同步置的區(qū)別在哪里

    異步置和同步置是數(shù)字電路設(shè)計(jì)中兩種不同的置方法。它們?cè)?b class='flag-5'>實(shí)現(xiàn)方式、性能和應(yīng)用場(chǎng)景上有所不同。 實(shí)現(xiàn)方式: 異步置
    的頭像 發(fā)表于 07-23 11:09 ?1071次閱讀

    Microsoft AI 推進(jìn)行業(yè)企業(yè)智慧化創(chuàng)新

    2024年6月17日,北京—— 近日,微軟在北京舉辦以“共創(chuàng)AI創(chuàng)新,智啟無限可能”為主題的Microsoft AI Day活動(dòng),集中展示了在生成式智能技術(shù)加速發(fā)展普及的過程中,微軟取得的最新技術(shù)
    的頭像 發(fā)表于 06-17 16:59 ?959次閱讀

    Microsoft Start Networks中國內(nèi)容生態(tài)伙伴峰會(huì)成功舉辦

    2024年5月22日,蘇州——微軟 Microsoft Start Networks 中國內(nèi)容生態(tài)伙伴峰會(huì)( Microsoft Start Partner Summit )在微軟蘇州新園區(qū)成功舉辦。
    的頭像 發(fā)表于 05-23 09:21 ?357次閱讀

    Microsoft修復(fù)Outlook客戶端加密郵件故障

    此問題已持續(xù)數(shù)月,大量 Microsoft 365 的用戶通過微軟社區(qū)進(jìn)行了反饋。主要癥狀為用戶使用經(jīng)典版 Outlook 時(shí),無法正確回復(fù)加密郵件。
    的頭像 發(fā)表于 05-17 10:23 ?444次閱讀

    關(guān)于CANdb++ Editor編寫DBC文件時(shí)Factor的設(shè)置問題求解

    求助CANdb++ Editor編寫DBC文件時(shí) Factor設(shè)置的問題: 編輯DBC文件時(shí),當(dāng)我設(shè)置Signal的Factor時(shí),如果設(shè)置了0.0001,DBC就正常解析沒問題。但如果設(shè)置了0.000001,DBC文件就忽略了這個(gè)值的解析。 是否Factor這個(gè)值設(shè)置的時(shí)候有最大值最小值?
    發(fā)表于 04-12 07:03

    Edge瀏覽器關(guān)閉Microsoft Rewards擴(kuò)展原因揭曉

    據(jù)報(bào)道,近期德國等地的Microsoft Edge瀏覽器用戶發(fā)現(xiàn),安裝或啟動(dòng)Microsoft Rewards擴(kuò)展后,會(huì)出現(xiàn)“右上角擴(kuò)展被Edge瀏覽器禁用以保障您的瀏覽器安全”的提醒窗口。
    的頭像 發(fā)表于 04-10 09:55 ?712次閱讀

    Quantinuum 與 Microsoft 合作進(jìn)行可靠邏輯量子比特的突破性演示,邁入可靠量子計(jì)算的新階段

    ??/美通社/ -- 全球最大的綜合量子計(jì)算公司 Quantinuum 與 Microsoft 攜手,在實(shí)現(xiàn)容錯(cuò)量子計(jì)算方面取得突破,展示了具有主動(dòng)綜合征提取的最可靠邏輯量子比特,這是此前被認(rèn)為還需要數(shù)年
    的頭像 發(fā)表于 04-07 16:50 ?360次閱讀

    SPWM調(diào)制方式是怎樣實(shí)現(xiàn)變壓功能的?又是怎樣實(shí)現(xiàn)變頻功能的?

    SPWM調(diào)制方式是怎樣實(shí)現(xiàn)變壓功能的?又是怎樣實(shí)現(xiàn)變頻功能的? SPWM是一種常見的調(diào)制方式,它通過調(diào)節(jié)脈沖的寬度來控制輸出波形的幅度和頻率,因此可以
    的頭像 發(fā)表于 02-06 11:09 ?1428次閱讀

    什么是保護(hù)接地與保護(hù)接?家用電器怎樣才能不觸電?

    什么是保護(hù)接地與保護(hù)接?家用電器怎樣才能不觸電? 保護(hù)接地和保護(hù)接是兩種不同的電氣安全保護(hù)措施。在家庭中使用電器時(shí),遵守正確的安全操作規(guī)范是很重要的,以避免發(fā)生觸電事故。本文將詳細(xì)介紹保護(hù)接地
    的頭像 發(fā)表于 12-18 16:58 ?1556次閱讀