chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

探討實(shí)時(shí)機(jī)器學(xué)習(xí)的概念及其應(yīng)用現(xiàn)狀

電子設(shè)計(jì) ? 來(lái)源:機(jī)器之心 ? 作者:Chip Huyen ? 2021-01-06 16:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

實(shí)時(shí)機(jī)器學(xué)習(xí)正得到越來(lái)越廣泛的應(yīng)用和部署。近日,計(jì)算機(jī)科學(xué)家和 AI 領(lǐng)域科技作家 Chip Huyen 在其博客中總結(jié)了實(shí)時(shí)機(jī)器學(xué)習(xí)的概念及其應(yīng)用現(xiàn)狀,并對(duì)比了實(shí)時(shí)機(jī)器學(xué)習(xí)在中美兩國(guó)的不同發(fā)展現(xiàn)狀。

與美國(guó)、歐洲和中國(guó)一些大型互聯(lián)網(wǎng)公司的機(jī)器學(xué)習(xí)和基礎(chǔ)設(shè)施工程師聊過(guò)之后,我發(fā)現(xiàn)這些公司可以分為兩大類(lèi)。一類(lèi)公司重視實(shí)時(shí)機(jī)器學(xué)習(xí)的基礎(chǔ)設(shè)施投資(數(shù)億美元),并且已經(jīng)看到了投資回報(bào)。另一類(lèi)公司則還在考慮實(shí)時(shí)機(jī)器學(xué)習(xí)是否有價(jià)值。

對(duì)于實(shí)時(shí)機(jī)器學(xué)習(xí)的含義,現(xiàn)在似乎還沒(méi)有明確的共識(shí),而且也還沒(méi)有人深入探討過(guò)產(chǎn)業(yè)界該如何做實(shí)時(shí)機(jī)器學(xué)習(xí)。我與數(shù)十家在做實(shí)時(shí)機(jī)器學(xué)習(xí)的公司聊過(guò)之后,總結(jié)整理了這篇文章。

本文將實(shí)時(shí)機(jī)器學(xué)習(xí)分為兩個(gè)層級(jí):

層級(jí) 1:機(jī)器學(xué)習(xí)系統(tǒng)能實(shí)時(shí)給出預(yù)測(cè)結(jié)果(在線預(yù)測(cè))

層級(jí) 2:機(jī)器學(xué)習(xí)系統(tǒng)能實(shí)時(shí)整合新數(shù)據(jù)并更新模型(在線學(xué)習(xí))

本文中的「模型」指機(jī)器學(xué)習(xí)模型,「系統(tǒng)」指圍繞模型的基礎(chǔ)設(shè)施,包括數(shù)據(jù)管道和監(jiān)測(cè)系統(tǒng)。

層級(jí) 1:在線預(yù)測(cè)

這里「實(shí)時(shí)」的定義是指毫秒到秒級(jí)。

用例

延遲很重要,對(duì)于面向用戶(hù)的應(yīng)用而言尤其重要。2009 年,谷歌的實(shí)驗(yàn)表明:如果將網(wǎng)絡(luò)搜索的延遲從 100 ms 延長(zhǎng)至 400 ms,則平均每用戶(hù)的日搜索量會(huì)降低 0.2%-0.6%。2019 年,Booking.com 發(fā)現(xiàn)延遲增加 30%,轉(zhuǎn)化率就會(huì)降低 0.5% 左右——該公司稱(chēng)這是「對(duì)業(yè)務(wù)有重大影響的成本」。

不管你的機(jī)器學(xué)習(xí)模型有多好,如果它們給出預(yù)測(cè)結(jié)果的時(shí)間太長(zhǎng),就算只是毫秒級(jí),用戶(hù)也會(huì)轉(zhuǎn)而點(diǎn)擊其它東西。

批量預(yù)測(cè)的問(wèn)題

一個(gè)稱(chēng)不上解決方案的措施是不使用在線預(yù)測(cè)。你可以用離線方法批量生成預(yù)測(cè)結(jié)果,然后將它們保存起來(lái)(比如保存到 SQL 表格中),最后在需要時(shí)拉取已有的預(yù)測(cè)結(jié)果。

當(dāng)輸入空間有限時(shí),這種方法是有效的——畢竟你完全知道有多少可能的輸入。舉個(gè)例子,如果你需要為你的用戶(hù)推薦電影。你已經(jīng)知道有多少用戶(hù),那么你可以每隔一段時(shí)間(比如每幾個(gè)小時(shí))為每個(gè)用戶(hù)生成一組推薦。

為了讓用戶(hù)輸入空間有限,很多應(yīng)用采取的方法是讓用戶(hù)從已有類(lèi)別中選擇,而不是讓用戶(hù)輸入查詢(xún)。例如,如果你進(jìn)入旅游出行推薦網(wǎng)站 TripAdvisor,你必須首先選擇一個(gè)預(yù)定義的都會(huì)區(qū),而無(wú)法直接輸入任何位置。

這種方法存在很多局限性。TripAdvisor 在其預(yù)定義的類(lèi)別內(nèi)表現(xiàn)還算可以,比如「舊金山」的「餐廳」,但如果你想自己輸入「Hayes Valley 的高分泰式餐廳」這樣的查詢(xún),那么結(jié)果會(huì)相當(dāng)差。

o4YBAF_1cgGAG5T8AALNmJUwAKY145.png

甚至很多技術(shù)較為激進(jìn)的公司也會(huì)使用批量預(yù)測(cè),并由此顯現(xiàn)出其局限性,比如 Netflix。如果你最近看了很多恐怖片,那么當(dāng)你再次登錄 Netflix 時(shí),推薦電影中大部分會(huì)是恐怖片。但如果你今天心情愉悅,搜索了「喜劇」開(kāi)始瀏覽喜劇類(lèi)別,那么 Netflix 應(yīng)該學(xué)習(xí)并在推薦列表中展示更多喜劇吧?然而,它在生成下一個(gè)批量推薦列表之前并不會(huì)更新當(dāng)前列表。

在上面的兩個(gè)例子中,批量預(yù)測(cè)會(huì)降低用戶(hù)體驗(yàn)(這與用戶(hù)參與和用戶(hù)留存緊密相關(guān)),但不會(huì)導(dǎo)致災(zāi)難性的后果。其它這類(lèi)例子還有廣告排序、Twitter 的熱門(mén)趨勢(shì)標(biāo)簽排序、Facebook 的新聞?dòng)嗛喤判?、到達(dá)時(shí)間估計(jì)等等。

還有一些應(yīng)用,如果沒(méi)有在線預(yù)測(cè)會(huì)出現(xiàn)災(zāi)難性的后果,甚至變得毫無(wú)作用,比如高頻交易、自動(dòng)駕駛汽車(chē)、語(yǔ)音助手、手機(jī)的人臉 / 指紋解鎖、老年人跌倒檢測(cè)、欺詐檢測(cè)等。雖然在欺詐交易發(fā)生 3 小時(shí)后檢測(cè)到比檢測(cè)不到要好一些,但如果能實(shí)時(shí)檢測(cè)到欺詐,就可以直接防止其發(fā)生了。

如果將批量預(yù)測(cè)換成實(shí)時(shí)預(yù)測(cè),我們就可以使用動(dòng)態(tài)特征來(lái)得到更相關(guān)的預(yù)測(cè)結(jié)果。靜態(tài)特征是變化緩慢或不變化的信息,比如年齡、性別、工作、鄰居等。動(dòng)態(tài)特征是基于當(dāng)前狀況的特征,比如你正在看什么節(jié)目、剛剛給什么內(nèi)容點(diǎn)了贊等。如果能知曉用戶(hù)現(xiàn)在對(duì)什么感興趣,那么系統(tǒng)就能給出更加相關(guān)的推薦。

pIYBAF_1chWAexjFAAXhbS-n3Q0466.png

解決方案

要讓系統(tǒng)具備在線預(yù)測(cè)能力,它必須要用兩個(gè)組件:

快速推理:模型要能在毫秒級(jí)時(shí)間內(nèi)給出預(yù)測(cè)結(jié)果;

實(shí)時(shí)數(shù)據(jù)管道:能夠?qū)崟r(shí)處理數(shù)據(jù)、將其輸入模型和返回預(yù)測(cè)結(jié)果的流程管道。

1. 快速推理

當(dāng)模型太大或預(yù)測(cè)時(shí)間太長(zhǎng)時(shí),可采用的方法有三種:

讓模型更快(推理優(yōu)化)

比如聚合運(yùn)算、分散運(yùn)算、內(nèi)存占用優(yōu)化、針對(duì)具體硬件編寫(xiě)高性能核等。

讓模型更?。P蛪嚎s)

起初,這類(lèi)技術(shù)是為了讓模型適用于邊緣設(shè)備,讓模型更小通常能使其運(yùn)行速度更快。最常見(jiàn)的模型壓縮技術(shù)是量化(quantization),比如在表示模型的權(quán)重時(shí),使用 16 位浮點(diǎn)數(shù)(半精度)或 8 位整型數(shù)(定點(diǎn)數(shù)),而不是使用 32 位浮點(diǎn)數(shù)(全精度)。在極端情況下,一些人還嘗試了 1 位表征(二元加權(quán)神經(jīng)網(wǎng)絡(luò)),如 BinaryConnect 和 Xnor-net。Xnor-net 的作者創(chuàng)立了一家專(zhuān)注模型壓縮的創(chuàng)業(yè)公司 Xnor.ai,并已被蘋(píng)果公司以 2 億美元收購(gòu)。

另一種常用的技術(shù)是知識(shí)蒸餾,即訓(xùn)練一個(gè)小模型(學(xué)生模型)來(lái)模仿更大模型或集成模型(教師模型)。即使學(xué)生模型通常使用教師模型訓(xùn)練得到,但它們也可能同時(shí)訓(xùn)練。在生產(chǎn)環(huán)境中使用蒸餾網(wǎng)絡(luò)的一個(gè)例子是 DistilBERT,它將 BERT 模型減小了 40%,同時(shí)還保留了 BERT 模型 97% 的語(yǔ)言理解能力,速度卻要快 60%。

其它技術(shù)還包括剪枝(尋找對(duì)預(yù)測(cè)最無(wú)用的參數(shù)并將它們?cè)O(shè)為 0)、低秩分解(用緊湊型模塊替代過(guò)度參數(shù)化的卷積濾波器,從而減少參數(shù)數(shù)量、提升速度)。詳細(xì)分析請(qǐng)參閱 Cheng 等人 2017 年的論文《A Survey of Model Compression and Acceleration for Deep Neural Networks》。

模型壓縮方面的研究論文數(shù)量正在增長(zhǎng),可直接使用的實(shí)用程序也在迅速增多。相關(guān)的開(kāi)源項(xiàng)目也不少,這里有一份 40 大模型壓縮開(kāi)源項(xiàng)目列表:https://awesomeopensource.com/projects/model-compression。

讓硬件更快

這是另一個(gè)蓬勃發(fā)展的研究領(lǐng)域。大公司和相關(guān)創(chuàng)業(yè)公司正競(jìng)相開(kāi)發(fā)新型硬件,以使大型機(jī)器學(xué)習(xí)模型能在云端和設(shè)備端(尤其是設(shè)備)更快地推理乃至訓(xùn)練。據(jù) IDC 預(yù)測(cè),到 2020 年,執(zhí)行推理的邊緣和移動(dòng)設(shè)備總數(shù)將達(dá) 37 億臺(tái),另外還有 1.16 億臺(tái)被用于執(zhí)行訓(xùn)練。

2. 實(shí)時(shí)數(shù)據(jù)管道

假設(shè)你有一個(gè)駕乘共享應(yīng)用并希望檢測(cè)出欺詐交易,比如使用被盜信用卡支付。當(dāng)該信用卡的實(shí)際所有者發(fā)現(xiàn)未授權(quán)支付時(shí),他們會(huì)向銀行投訴,你就必須退款。為了最大化利潤(rùn),欺詐者可能會(huì)連續(xù)多次叫車(chē)或使用多個(gè)賬號(hào)叫車(chē)。2019 年,商家估計(jì)欺詐交易平均占年度網(wǎng)絡(luò)銷(xiāo)售額的 27%。檢測(cè)出被盜信用卡的時(shí)間越長(zhǎng),你損失的錢(qián)就會(huì)越多。

為了檢測(cè)一項(xiàng)交易是否為欺詐交易,僅檢查交易本身是不夠的。你至少需要檢查該用戶(hù)在該交易方面的近期歷史記錄、他們?cè)趹?yīng)用內(nèi)的近期行程和活動(dòng)、該信用卡的近期交易以及在大約同一時(shí)間發(fā)生的其它交易。

為了快速獲得這類(lèi)信息,你需要盡可能地將這些信息放在內(nèi)存之中。每當(dāng)一件你關(guān)心的事情發(fā)生時(shí),比如用戶(hù)選擇了一個(gè)位置、預(yù)定了一次行程、聯(lián)系了一位司機(jī)、取消了一次行程、添加了一張信用卡、移除了一張信用卡等,關(guān)于該事件的信息都要進(jìn)入你的內(nèi)存庫(kù)。只要這些信息還有用,它們就會(huì)一直留在內(nèi)存里(通常是幾天內(nèi)的事件),然后再被放入永久存儲(chǔ)庫(kù)(比如 S3)或被丟棄。針對(duì)該任務(wù),最常用的工具是 Apache Kafka,此外還有 Amazon Kinesis 等替代工具。Kafka 是一種流式存儲(chǔ),可在數(shù)據(jù)流動(dòng)時(shí)保存數(shù)據(jù)。

流式數(shù)據(jù)不同于靜態(tài)數(shù)據(jù),靜態(tài)數(shù)據(jù)是已完全存在于某處的數(shù)據(jù),比如 CSV 文件。當(dāng)從 CSV 文件讀取數(shù)據(jù)時(shí),你知道該任務(wù)什么時(shí)候結(jié)束。而流式數(shù)據(jù)不會(huì)結(jié)束。

一旦你有了某種管理流式數(shù)據(jù)的方法,你需要將其中的特征提取出來(lái),然后輸入機(jī)器學(xué)習(xí)模型中。在流式數(shù)據(jù)的特征之上,你可能還需要來(lái)自靜態(tài)數(shù)據(jù)的特征(當(dāng)該賬號(hào)被創(chuàng)建時(shí),該用戶(hù)的評(píng)分是多少等等)。你需要一種工具來(lái)處理流式數(shù)據(jù)和靜態(tài)數(shù)據(jù),以及將來(lái)自多個(gè)數(shù)據(jù)源的數(shù)據(jù)組合到一起。

流式處理 vs 批處理

人們通常使用「批處理」指代靜態(tài)數(shù)據(jù)處理,因?yàn)檫@些數(shù)據(jù)可以分批處理。這與即到即處理的「流式處理」相反。批處理的效率很高——你可以使用 MapReduce 等工具來(lái)處理大量數(shù)據(jù)。流式處理的速度很快,因?yàn)槟憧梢栽诿恳环輸?shù)據(jù)到達(dá)時(shí)馬上就完成處理。Apache Flink 的一位 PMC 成員 Robert Metzger 則有不同意見(jiàn),他認(rèn)為流式處理可以做到像批處理一樣高效,因?yàn)榕幚硎橇魇教幚淼囊环N特殊形式。

處理流數(shù)據(jù)的難度更大,因?yàn)閿?shù)據(jù)量沒(méi)有限定,而且數(shù)據(jù)輸入的比率和速度也會(huì)變化。比起用批處理器來(lái)執(zhí)行流式處理,使用流式處理器來(lái)執(zhí)行批處理要更容易。

Apache Kafka 有一些流式處理的能力,某些公司將這些能力置于它們的 Kafka 流式存儲(chǔ)之上,但 Kafka 流式處理在處理不同數(shù)據(jù)源方面的能力比較有限。還有一些擴(kuò)展 SQL 使其支持流數(shù)據(jù)的努力,SQL 是為靜態(tài)數(shù)據(jù)表設(shè)計(jì)的一種常用查詢(xún)語(yǔ)言。不過(guò),最常用的流式處理工具還是 Apache Flink,而且它還有原生支持的批處理。

在機(jī)器學(xué)習(xí)生產(chǎn)應(yīng)用的早期,很多公司都是在已有的 MapReduce/Spark/Hadoop 數(shù)據(jù)管道上構(gòu)建自己的機(jī)器學(xué)習(xí)系統(tǒng)。當(dāng)這些公司想做實(shí)時(shí)推理時(shí),它們需要為流式數(shù)據(jù)構(gòu)建一個(gè)單獨(dú)的數(shù)據(jù)管道。

使用兩個(gè)不同的管道來(lái)處理數(shù)據(jù)是機(jī)器學(xué)習(xí)生產(chǎn)過(guò)程中常見(jiàn) bug 的來(lái)源,比如如果一個(gè)管道沒(méi)有正確地復(fù)制到另一個(gè)管道中,那么兩個(gè)管道可能會(huì)提取出兩組不同的特征。如果這兩個(gè)管道由不同的團(tuán)隊(duì)維護(hù),那么這會(huì)是尤其常見(jiàn)的問(wèn)題,比如開(kāi)發(fā)團(tuán)隊(duì)維護(hù)用于訓(xùn)練的批處理管道,而部署團(tuán)隊(duì)則維護(hù)用于推理的流式處理管道。為了將 Flink 整合進(jìn)批處理和流式處理流程中,包括 Uber 和微博在內(nèi)的公司都對(duì)它們的基礎(chǔ)設(shè)施進(jìn)行了重大檢修。

事件驅(qū)動(dòng)型方法 vs 請(qǐng)求驅(qū)動(dòng)型方法

過(guò)去十年,軟件世界已經(jīng)進(jìn)入了微服務(wù)時(shí)代。微服務(wù)的思路是將業(yè)務(wù)邏輯分解成可獨(dú)立維護(hù)的小組件——每個(gè)小組件都是一個(gè)可獨(dú)立運(yùn)行的服務(wù)。每個(gè)組件的維護(hù)者都可以在不咨詢(xún)?cè)撓到y(tǒng)其余部分的情況下快速更新和測(cè)試該組件。

微服務(wù)通常與 REST 緊密結(jié)合,這是一套可讓微服務(wù)互相通信的方法。REST API 是需求驅(qū)動(dòng)型的??蛻?hù)端(服務(wù))會(huì)通過(guò) POST 和 GET 之類(lèi)的方法向服務(wù)器發(fā)送明確的請(qǐng)求,然后服務(wù)器返回響應(yīng)結(jié)果。為了注冊(cè)請(qǐng)求,服務(wù)器必須監(jiān)聽(tīng)請(qǐng)求。

因?yàn)樵谡?qǐng)求驅(qū)動(dòng)的世界中,數(shù)據(jù)是根據(jù)向不同服務(wù)的請(qǐng)求而處理的,所以沒(méi)有一項(xiàng)服務(wù)了解數(shù)據(jù)如何流經(jīng)整個(gè)系統(tǒng)的整體情況。我們來(lái)看一個(gè)包含 3 項(xiàng)服務(wù)的簡(jiǎn)單系統(tǒng):

A 服務(wù)管理可接單的司機(jī)

B 服務(wù)管理出行需求

C 服務(wù)預(yù)測(cè)每次展示給有需求客戶(hù)的最佳可能定價(jià)

由于價(jià)格取決于供需關(guān)系,因此服務(wù) C 的輸出取決于服務(wù) A 和 B 的輸出。首先,該系統(tǒng)需要服務(wù)之間的通信:為了執(zhí)行預(yù)測(cè),C 需要查詢(xún) A 和 B;而 A 需要查詢(xún) B 才能知道是否需要移動(dòng)更多司機(jī),A 還要查詢(xún) C 以了解怎樣的定價(jià)比較合適。其次,我們沒(méi)法輕松地監(jiān)控 A 或 B 的邏輯對(duì) C 性能的影響,也沒(méi)法在 C 性能突然下降時(shí)輕松地對(duì)數(shù)據(jù)流執(zhí)行映射以進(jìn)行調(diào)試。

才不過(guò)三項(xiàng)服務(wù),情況就已經(jīng)很復(fù)雜了。想象一下,如果有成百上千項(xiàng)服務(wù)——就像現(xiàn)在的主流互聯(lián)網(wǎng)公司那樣,服務(wù)間的通信將多得難以實(shí)現(xiàn)。通過(guò) HTTP 以 JSON blob 形式發(fā)送數(shù)據(jù)是 REST 請(qǐng)求的常用模式,但這種方法的速度很慢。服務(wù)間的數(shù)據(jù)傳輸可能會(huì)變成瓶頸,拖慢整個(gè)系統(tǒng)的速度。

如果我們不再讓 20 項(xiàng)服務(wù)向 A 發(fā)送請(qǐng)求,而是每當(dāng) A 中有事件發(fā)生時(shí),該事件都被廣播到一個(gè)數(shù)據(jù)流中,這樣無(wú)論哪個(gè)服務(wù)需要 A 的數(shù)據(jù),都可以訂閱該數(shù)據(jù)流,然后選擇其所需的部分?如果有一個(gè)所有服務(wù)都可以廣播事件并且訂閱的數(shù)據(jù)流呢?該模式被稱(chēng)為 pub/sub:發(fā)布和訂閱。Kafka 等解決方案都支持這樣的操作。由于所有數(shù)據(jù)都會(huì)流經(jīng)一個(gè)數(shù)據(jù)流,因此你可以設(shè)置一個(gè)儀表盤(pán)來(lái)監(jiān)控?cái)?shù)據(jù)及其在系統(tǒng)中的變化情況。因?yàn)檫@種架構(gòu)基于服務(wù)的事件廣播,因此被稱(chēng)為事件驅(qū)動(dòng)型方法。

pIYBAF_1ciiABsV_AAQKgxXNixI463.png

請(qǐng)求驅(qū)動(dòng)型和事件驅(qū)動(dòng)型架構(gòu)對(duì)比。(圖源:https://www.infoq.com/presentations/microservices-streams-state-scalability/)

請(qǐng)求驅(qū)動(dòng)型架構(gòu)適用于更依賴(lài)邏輯而非數(shù)據(jù)的系統(tǒng),事件驅(qū)動(dòng)型架構(gòu)則更適合數(shù)據(jù)量大的系統(tǒng)。

挑戰(zhàn)

很多公司在從批處理轉(zhuǎn)向流式處理,從請(qǐng)求驅(qū)動(dòng)型架構(gòu)轉(zhuǎn)向事件驅(qū)動(dòng)型架構(gòu)。在與美國(guó)和中國(guó)的主要互聯(lián)網(wǎng)公司談過(guò)之后,我的感覺(jué)是美國(guó)這種轉(zhuǎn)變速度要慢一些,而中國(guó)的則快得多。流式架構(gòu)的采用與 Kafka 和 Flink 的流行程度緊密相關(guān)。Robert Metzger 告訴我,他觀察到亞洲使用 Flink 的機(jī)器學(xué)習(xí)負(fù)載比美國(guó)的多?!窤pache Flink」這個(gè)關(guān)鍵詞的谷歌搜索趨勢(shì)與這一觀察一致。

pIYBAF_1cj-Ad9F1AADdogd95oc945.png

流式架構(gòu)沒(méi)有更受歡迎的原因有很多:

1. 公司沒(méi)有看到流式架構(gòu)的優(yōu)勢(shì)。

這些公司的系統(tǒng)規(guī)模還沒(méi)有達(dá)到服務(wù)間通信會(huì)造成瓶頸的程度。

它們沒(méi)有能受益于在線預(yù)測(cè)的應(yīng)用。

它們有能受益于在線預(yù)測(cè)的應(yīng)用,但還不知道這一點(diǎn),因?yàn)樗鼈冎皬奈催M(jìn)行過(guò)在線預(yù)測(cè)。

2. 基礎(chǔ)設(shè)施所需的前期投資較高。

基礎(chǔ)設(shè)施更新的成本較高并且可能損害已有應(yīng)用,管理者不愿意投資升級(jí)支持在線預(yù)測(cè)的基礎(chǔ)設(shè)施。

3. 思維轉(zhuǎn)換

從批處理轉(zhuǎn)向流式處理需要轉(zhuǎn)換思維。使用批處理,你知道任務(wù)會(huì)在何時(shí)完成。使用流式處理,則無(wú)法知曉。你可以制定一些規(guī)則,比如獲得之前 2 分鐘內(nèi)所有數(shù)據(jù)點(diǎn)的平均,但如果一個(gè)發(fā)生在 2 分鐘之前的事件被延遲了,還沒(méi)有進(jìn)入數(shù)據(jù)流呢?使用批處理,你可以合并處理定義良好的表格,但在流式處理模式下,不存在可以合并的表格,那么合并兩個(gè)數(shù)據(jù)流的操作是什么意思呢?

4. Python 不兼容

Python 算得上是機(jī)器學(xué)習(xí)的通用語(yǔ)言,但 Kafka 和 Flink 基于 Java 和 Scala 運(yùn)行。引入流式處理可能會(huì)導(dǎo)致工作流程中的語(yǔ)言不兼容。Apache Beam 在 Flink 之上提供了一個(gè)用于與數(shù)據(jù)流通信的 Python 接口,但你仍然需要能用 Java/Scala 開(kāi)發(fā)的人。

5. 更高的處理成本

批處理意味著你可以更加高效地使用計(jì)算資源。如果你的硬件能夠一次處理 1000 個(gè)數(shù)據(jù)點(diǎn),那么使用它來(lái)一次處理 1 個(gè)數(shù)據(jù)點(diǎn)就顯得有些浪費(fèi)了。

層級(jí) 2:在線學(xué)習(xí)

這里的「實(shí)時(shí)」定義在分鐘級(jí)。

定義「在線學(xué)習(xí)」

我使用的詞語(yǔ)是「在線學(xué)習(xí)」而非「在線訓(xùn)練」,原因是后者存在爭(zhēng)議。根據(jù)定義,在線訓(xùn)練的意思是基于每個(gè)輸入的數(shù)據(jù)點(diǎn)進(jìn)行學(xué)習(xí)。非常少的公司會(huì)真正這么做,原因包括:

這種方法存在災(zāi)難性遺忘的問(wèn)題——神經(jīng)網(wǎng)絡(luò)在學(xué)習(xí)到新信息時(shí)會(huì)突然遺忘之前學(xué)習(xí)的信息。

基于單個(gè)數(shù)據(jù)點(diǎn)的學(xué)習(xí)流程比基于批量數(shù)據(jù)的學(xué)習(xí)流程成本更高(通過(guò)降低硬件的規(guī)格,使之降到僅能處理單個(gè)數(shù)據(jù)點(diǎn)的水平,這個(gè)問(wèn)題可以得到一定緩解)。

即使一個(gè)模型能使用每個(gè)輸入的數(shù)據(jù)點(diǎn)進(jìn)行學(xué)習(xí),這也不意味著在每個(gè)數(shù)據(jù)點(diǎn)之后都會(huì)部署新的權(quán)重。由于我們目前對(duì)機(jī)器學(xué)習(xí)算法學(xué)習(xí)方式的理解還很有限,因此模型更新后,我們還需要對(duì)其進(jìn)行評(píng)估,查看表現(xiàn)如何。

對(duì)大多數(shù)執(zhí)行所謂的在線訓(xùn)練的公司而言,它們的模型都是以微批量學(xué)習(xí)的,并且會(huì)在一段時(shí)間之后進(jìn)行評(píng)估。在評(píng)估之后,只有該模型的表現(xiàn)讓人滿(mǎn)意時(shí)才會(huì)得到更廣泛的部署。微博從學(xué)習(xí)到部署的模型更新迭代周期為 10 分鐘。

o4YBAF_1ckyAHhpOAAQVhNYSWyE238.png

微博使用 Flink 的機(jī)器學(xué)習(xí)(圖源:https://www.youtube.com/watch?v=WQ520rWgd9A)

用例

TikTok 讓人上癮。它的秘訣在于推薦系統(tǒng),其能快速學(xué)習(xí)你的偏好并推薦你可能會(huì)接著看下去的視頻,從而為用戶(hù)提供一個(gè)不斷刷新視頻的體驗(yàn)。TikTok 能做到這一點(diǎn)的原因是其母公司字節(jié)跳動(dòng)建立了一套成熟的基礎(chǔ)設(shè)施,使其推薦系統(tǒng)能夠?qū)崟r(shí)地學(xué)習(xí)用戶(hù)偏好。

推薦系統(tǒng)是在線學(xué)習(xí)的理想應(yīng)用之一。推薦系統(tǒng)有很自然的標(biāo)簽——如果一位用戶(hù)點(diǎn)擊一個(gè)推薦,那么這個(gè)預(yù)測(cè)就是正確的。并非所有推薦系統(tǒng)都需要在線預(yù)測(cè)。用戶(hù)對(duì)房子、汽車(chē)、航班和酒店的偏好不太可能過(guò)一分鐘就變了,因此對(duì)于這樣的系統(tǒng),持續(xù)學(xué)習(xí)并不太合理。但是,用戶(hù)對(duì)在線內(nèi)容的偏好卻會(huì)很快改變,比如視頻、文章、新聞、推文、帖子和貼圖。(比如我剛讀到章魚(yú)有時(shí)會(huì)毫無(wú)緣由地?fù)舸螋~(yú),現(xiàn)在我想看看相關(guān)視頻。)由于用戶(hù)對(duì)在線內(nèi)容的偏好會(huì)實(shí)時(shí)變化,因此廣告系統(tǒng)也需要實(shí)時(shí)更新以展示相關(guān)廣告。

在線學(xué)習(xí)對(duì)系統(tǒng)適應(yīng)罕見(jiàn)事件至關(guān)重要。以黑色星期五在線購(gòu)物為例,由于黑色星期五一年僅發(fā)生一次,因此亞馬遜和其它電商網(wǎng)站不可能有足夠多的歷史數(shù)據(jù)來(lái)學(xué)習(xí)用戶(hù)在那天的行為,因此它們的系統(tǒng)需要持續(xù)學(xué)習(xí)那天的狀況以應(yīng)對(duì)變化。

再以 Twitter 的搜索為例,有時(shí)候某些名人會(huì)發(fā)布一些愚蠢的內(nèi)容。舉個(gè)例子,當(dāng)關(guān)于「Four Seasons Total Landscaping(直譯為:四季完全景觀美化)」的新聞上線時(shí),很多人會(huì)去搜索「total landscaping」。如果你的系統(tǒng)沒(méi)有立即學(xué)習(xí)到這里的「total landscaping」是指特朗普的一場(chǎng)新聞發(fā)布會(huì),那么用戶(hù)就會(huì)看到大量關(guān)于園藝的推薦。

在線學(xué)習(xí)還可以幫助解決冷啟動(dòng)(cold start)問(wèn)題。冷啟動(dòng)是指新用戶(hù)加入你的應(yīng)用時(shí),你還沒(méi)有他們的信息。如果沒(méi)有任何形式的在線學(xué)習(xí),你就只能向新用戶(hù)推薦一般性?xún)?nèi)容,直到你下一次以離線方式訓(xùn)練好模型。

解決方案

因?yàn)樵诰€學(xué)習(xí)相對(duì)較為新穎,大多數(shù)做在線學(xué)習(xí)的公司也不會(huì)公開(kāi)談?wù)撈浼?xì)節(jié),因此目前還不存在標(biāo)準(zhǔn)解決方案。

在線學(xué)習(xí)并不意味著「無(wú)批量學(xué)習(xí)」。在在線學(xué)習(xí)方面最成功的公司也會(huì)同時(shí)以離線方式訓(xùn)練其模型,然后再將在線版本與離線版本組合起來(lái)。

挑戰(zhàn)

無(wú)論是理論上還是實(shí)踐中,在線學(xué)習(xí)都面臨著諸多挑戰(zhàn)。

理論挑戰(zhàn)

在線學(xué)習(xí)顛覆了我們對(duì)機(jī)器學(xué)習(xí)的許多已有認(rèn)知。在入門(mén)級(jí)機(jī)器學(xué)習(xí)課程中,學(xué)生學(xué)到的東西雖然細(xì)節(jié)有所不同,但核心都是「使用足夠多 epoch 訓(xùn)練你的模型直到收斂」。而在線學(xué)習(xí)沒(méi)有 epoch——你的模型只會(huì)看見(jiàn)每個(gè)數(shù)據(jù)一次。在線學(xué)習(xí)也不存在收斂這個(gè)說(shuō)法,基礎(chǔ)數(shù)據(jù)分布會(huì)不斷變化,沒(méi)有什么可以收斂到的靜態(tài)分布。

在線學(xué)習(xí)的另一大理論挑戰(zhàn)是模型評(píng)估。在傳統(tǒng)的批訓(xùn)練中,你會(huì)在靜態(tài)的留出測(cè)試集上評(píng)估模型。如果新模型在同一個(gè)測(cè)試集上優(yōu)于現(xiàn)有模型,那我們就說(shuō)新模型更好。但是,在線學(xué)習(xí)的目標(biāo)是讓模型適應(yīng)不斷變化的數(shù)據(jù)。如果更新后的模型是在現(xiàn)在的數(shù)據(jù)上訓(xùn)練的,而且我們知道現(xiàn)在的數(shù)據(jù)不同于過(guò)去的數(shù)據(jù),那么再在舊有數(shù)據(jù)集上測(cè)試更新后的模型是不合理的。

那么,我們?cè)撛趺粗涝谇?10 分鐘的數(shù)據(jù)上訓(xùn)練的模型優(yōu)于使用前 20 分鐘的數(shù)據(jù)訓(xùn)練的模型呢?答案是必須在當(dāng)前數(shù)據(jù)上比較兩個(gè)模型。在線學(xué)習(xí)需要在線評(píng)估,但是向用戶(hù)提供還未測(cè)試的模型聽(tīng)起來(lái)簡(jiǎn)直是災(zāi)難。

不過(guò),很多公司都這么做。新模型首先要進(jìn)行離線測(cè)試,以確保它們不會(huì)造成災(zāi)難性后果,然后再通過(guò)復(fù)雜的 A/B 測(cè)試系統(tǒng),與現(xiàn)有模型并行地進(jìn)行在線評(píng)估。只有當(dāng)新模型在該公司關(guān)心的某個(gè)指標(biāo)上的表現(xiàn)優(yōu)于現(xiàn)有模型時(shí),它才能得到更廣泛的部署。(本文不再討論如何選擇在線評(píng)估的指標(biāo)。)

實(shí)踐挑戰(zhàn)

在線訓(xùn)練目前還沒(méi)有標(biāo)準(zhǔn)的基礎(chǔ)設(shè)施。一些公司選擇使用參數(shù)服務(wù)器的流式架構(gòu),但除此之外,我了解過(guò)的公司都不得不構(gòu)建許多自己的基礎(chǔ)設(shè)施。此處不再詳細(xì)討論,因?yàn)橐恍┕疽笪覍?duì)這些信息保密,因?yàn)樗麄儤?gòu)建的方案是為自己服務(wù)的——這是他們的競(jìng)爭(zhēng)優(yōu)勢(shì)。

美國(guó)和中國(guó)的 MLOps 競(jìng)賽

我讀過(guò)許多有關(guān)美國(guó)和中國(guó) AI 競(jìng)賽的文章,但大多數(shù)比較關(guān)注研究論文、專(zhuān)利、引用和投資。但當(dāng)我與美國(guó)和中國(guó)公司聊過(guò)實(shí)時(shí)機(jī)器學(xué)習(xí)的話(huà)題之后,我才注意到他們的 MLOps 基礎(chǔ)設(shè)施有著驚人的差距。

美國(guó)很少互聯(lián)網(wǎng)公司嘗試過(guò)在線學(xué)習(xí),而即使是使用在線學(xué)習(xí)的公司,也不過(guò)是將其用于簡(jiǎn)單的模型,比如 Logistic 回歸。而不管是與中國(guó)公司直接談,還是與曾在兩個(gè)國(guó)家的公司工作過(guò)的人談,給我的印象都是在線學(xué)習(xí)在中國(guó)公司里更常見(jiàn),而且中國(guó)的工程師也更愿意嘗試在線學(xué)習(xí)。下圖是一些對(duì)話(huà)截圖。

pIYBAF_1cmCANVuKAAYA2byfwjQ263.png

總結(jié)

實(shí)時(shí)機(jī)器學(xué)習(xí)發(fā)展正盛,不管你是否已經(jīng)準(zhǔn)備好。盡管大多數(shù)公司還在爭(zhēng)論在線推理和在線學(xué)習(xí)是否有價(jià)值,但某些正確部署的公司已經(jīng)看到了投資回報(bào),它們的實(shí)時(shí)算法可能將成為它們保持競(jìng)爭(zhēng)優(yōu)勢(shì)的重要因素。

編輯:hfy

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

    關(guān)注

    1659

    文章

    22369

    瀏覽量

    633191
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8546

    瀏覽量

    136537
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    穿孔機(jī)頂頭檢測(cè)儀 機(jī)器視覺(jué)深度學(xué)習(xí)

    LX01Z-DG626穿孔機(jī)頂頭檢測(cè)儀采用深度學(xué)習(xí)技術(shù),能夠?qū)崿F(xiàn)頂頭狀態(tài)的在線實(shí)時(shí)檢測(cè),頂頭丟失報(bào)警,頂頭異常狀態(tài)報(bào)警等功能,響應(yīng)迅速,異常狀態(tài)視頻回溯,檢測(cè)頂頭溫度,配備吹掃清潔系統(tǒng),維護(hù)周期長(zhǎng)
    發(fā)表于 12-22 14:33

    如何在機(jī)器視覺(jué)中部署深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

    圖 1:基于深度學(xué)習(xí)的目標(biāo)檢測(cè)可定位已訓(xùn)練的目標(biāo)類(lèi)別,并通過(guò)矩形框(邊界框)對(duì)其進(jìn)行標(biāo)識(shí)。 在討論人工智能(AI)或深度學(xué)習(xí)時(shí),經(jīng)常會(huì)出現(xiàn)“神經(jīng)網(wǎng)絡(luò)”、“黑箱”、“標(biāo)注”等術(shù)語(yǔ)。這些概念對(duì)非專(zhuān)業(yè)
    的頭像 發(fā)表于 09-10 17:38 ?812次閱讀
    如何在<b class='flag-5'>機(jī)器</b>視覺(jué)中部署深度<b class='flag-5'>學(xué)習(xí)</b>神經(jīng)網(wǎng)絡(luò)

    2025嵌入式行業(yè)現(xiàn)狀如何?

    MIPI-CSI2攝像頭+PDM麥克風(fēng)雙模態(tài)輸入,工廠巡檢機(jī)器實(shí)時(shí)分析圖像與異常聲響。 2.3 實(shí)時(shí)性與安全 RTOS進(jìn)化:FreeRTOS新增OTA更新與安全啟動(dòng)功能,ZephyrOS支持藍(lán)牙5.3
    發(fā)表于 08-25 11:34

    FPGA在機(jī)器學(xué)習(xí)中的具體應(yīng)用

    ,越來(lái)越多地被應(yīng)用于機(jī)器學(xué)習(xí)任務(wù)中。本文將探討 FPGA 在機(jī)器學(xué)習(xí)中的應(yīng)用,特別是在加速神經(jīng)網(wǎng)絡(luò)推理、優(yōu)化算法和提升處理效率方面的優(yōu)勢(shì)。
    的頭像 發(fā)表于 07-16 15:34 ?2776次閱讀

    A股機(jī)器概念崛起:科義巡檢機(jī)器人與視頻行為分析系統(tǒng)共推智能化發(fā)展

    在當(dāng)前的 A?股市場(chǎng)中,機(jī)器概念正展現(xiàn)出蓬勃的發(fā)展態(tài)勢(shì)。同花順數(shù)據(jù)顯示,截至 7?月 2?日收盤(pán),A?股機(jī)器概念上市公司已達(dá) 947?家,這意味著每 6?家 A?股公司中就有 1?
    的頭像 發(fā)表于 07-04 17:01 ?586次閱讀
    A股<b class='flag-5'>機(jī)器</b>人<b class='flag-5'>概念</b>崛起:科義巡檢<b class='flag-5'>機(jī)器</b>人與視頻行為分析系統(tǒng)共推智能化發(fā)展

    邊緣計(jì)算中的機(jī)器學(xué)習(xí):基于 Linux 系統(tǒng)的實(shí)時(shí)推理模型部署與工業(yè)集成!

    你好,旅行者!歡迎來(lái)到Medium的這一角落。在本文中,我們將把一個(gè)機(jī)器學(xué)習(xí)模型(神經(jīng)網(wǎng)絡(luò))部署到邊緣設(shè)備上,利用從ModbusTCP寄存器獲取的實(shí)時(shí)數(shù)據(jù)來(lái)預(yù)測(cè)一臺(tái)復(fù)古音頻放大器的當(dāng)前健康狀況。你將
    的頭像 發(fā)表于 06-11 17:22 ?915次閱讀
    邊緣計(jì)算中的<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>:基于 Linux 系統(tǒng)的<b class='flag-5'>實(shí)時(shí)</b>推理模型部署與工業(yè)集成!

    工業(yè)機(jī)器人與協(xié)作機(jī)器概念不同

    在自動(dòng)化生產(chǎn)的浪潮中,工業(yè)機(jī)器人與協(xié)作機(jī)器人逐漸成為企業(yè)提升效率、優(yōu)化產(chǎn)能的得力助手。但它們并非同一概念,在功能、設(shè)計(jì)與應(yīng)用場(chǎng)景上有著顯著差異。北京沃華慧通測(cè)控有限公司憑借深厚的技術(shù)沉淀,為不同需求的企業(yè)提供適配的
    的頭像 發(fā)表于 06-03 13:15 ?869次閱讀
    工業(yè)<b class='flag-5'>機(jī)器</b>人與協(xié)作<b class='flag-5'>機(jī)器</b>人<b class='flag-5'>概念</b>不同

    工業(yè)物聯(lián)網(wǎng)平臺(tái)是什么(概念及功能)

    的互聯(lián)互通和數(shù)據(jù)共享,從而提升工業(yè)生產(chǎn)效率、優(yōu)化生產(chǎn)流程、推動(dòng)工業(yè)智能化發(fā)展。以下從其功能、架構(gòu)、應(yīng)用價(jià)值等方面展開(kāi)介紹: 功能特性 實(shí)時(shí)監(jiān)控與預(yù)警 :能實(shí)時(shí)監(jiān)測(cè)設(shè)備運(yùn)行狀態(tài),及時(shí)發(fā)現(xiàn)并預(yù)警潛在故障,有效避免非計(jì)劃停機(jī),
    的頭像 發(fā)表于 05-20 17:29 ?824次閱讀

    Raspberry Pi Pico 2 上實(shí)現(xiàn):實(shí)時(shí)機(jī)器學(xué)習(xí)(ML)音頻噪音抑制功能

    Arm公司的首席軟件工程師SandeepMistry為我們展示了一種全新的巧妙方法:在RaspberryPiPico2上如何將音頻噪音抑制應(yīng)用于麥克風(fēng)輸入。機(jī)器學(xué)習(xí)(ML)技術(shù)徹底改變了許多軟件應(yīng)用
    的頭像 發(fā)表于 03-25 09:46 ?1141次閱讀
    Raspberry Pi Pico 2 上實(shí)現(xiàn):<b class='flag-5'>實(shí)時(shí)機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>(ML)音頻噪音抑制功能

    電機(jī)概念及分類(lèi)介紹(可下載)

    一、電機(jī)概念介紹 從廣義上講,電機(jī)是電能的變換裝置,包括旋轉(zhuǎn)電機(jī)和靜止電機(jī)。旋轉(zhuǎn)電機(jī)是根據(jù)電磁感應(yīng)原理 實(shí)現(xiàn)電能與機(jī)械能之間相互轉(zhuǎn)換的一種能量轉(zhuǎn)換裝置;靜止電機(jī)是根據(jù)電磁感應(yīng)定律和磁勢(shì)平衡原理實(shí)
    發(fā)表于 02-27 15:28 ?4次下載

    工業(yè)物聯(lián)網(wǎng)平臺(tái)的概念及功能解析

    一、工業(yè)物聯(lián)網(wǎng)平臺(tái)的概念 工業(yè)物聯(lián)網(wǎng)平臺(tái)是工業(yè)物聯(lián)網(wǎng)的核心,是在工業(yè)領(lǐng)域中,通過(guò)將物聯(lián)網(wǎng)、大數(shù)據(jù)、云計(jì)算、人工智能等新一代信息技術(shù)與工業(yè)生產(chǎn)深度融合,實(shí)現(xiàn)工業(yè)設(shè)備、系統(tǒng)、人員以及產(chǎn)品之間的互聯(lián)互通
    的頭像 發(fā)表于 02-25 17:12 ?787次閱讀

    探討 GaN FET 在人形機(jī)器人中的應(yīng)用優(yōu)勢(shì)

    德州儀器的 Eason Tian 和 Kyle Wolf 撰寫(xiě),主要探討了 GaN FET(氮化鎵場(chǎng)效應(yīng)晶體管)在人形機(jī)器人中的應(yīng)用優(yōu)勢(shì),旨在說(shuō)明其如何解決人形機(jī)器人伺服系統(tǒng)面臨的挑戰(zhàn)。 *附件
    的頭像 發(fā)表于 02-14 14:33 ?1627次閱讀
    <b class='flag-5'>探討</b> GaN FET 在人形<b class='flag-5'>機(jī)器</b>人中的應(yīng)用優(yōu)勢(shì)

    機(jī)器學(xué)習(xí)模型市場(chǎng)前景如何

    當(dāng)今,隨著算法的不斷優(yōu)化、數(shù)據(jù)量的爆炸式增長(zhǎng)以及計(jì)算能力的飛速提升,機(jī)器學(xué)習(xí)模型的市場(chǎng)前景愈發(fā)廣闊。下面,AI部落小編將探討機(jī)器學(xué)習(xí)模型市場(chǎng)
    的頭像 發(fā)表于 02-13 09:39 ?690次閱讀

    人工智能和機(jī)器學(xué)習(xí)以及Edge AI的概念與應(yīng)用

    與人工智能相關(guān)各種技術(shù)的概念介紹,以及先進(jìn)的Edge AI(邊緣人工智能)的最新發(fā)展與相關(guān)應(yīng)用。 人工智能和機(jī)器學(xué)習(xí)是現(xiàn)代科技的核心技術(shù) 人工智能(AI)和機(jī)器
    的頭像 發(fā)表于 01-25 17:37 ?1807次閱讀
    人工智能和<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>以及Edge AI的<b class='flag-5'>概念</b>與應(yīng)用

    嵌入式機(jī)器學(xué)習(xí)的應(yīng)用特性與軟件開(kāi)發(fā)環(huán)境

    作者:DigiKey Editor 在許多嵌入式系統(tǒng)中,必須采用嵌入式機(jī)器學(xué)習(xí)(Embedded Machine Learning)技術(shù),這是指將機(jī)器學(xué)習(xí)模型部署在資源受限的設(shè)備(如微
    的頭像 發(fā)表于 01-25 17:05 ?1416次閱讀
    嵌入式<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>的應(yīng)用特性與軟件開(kāi)發(fā)環(huán)境