DeepMind發(fā)布Acme,高效分布式強(qiáng)化學(xué)習(xí)算法框架輕松編寫RL智能體
DeepMind 本周發(fā)布了一個(gè)強(qiáng)化學(xué)習(xí)優(yōu)化框架 Acme,可以讓AI驅(qū)動(dòng)的智能體在不同的執(zhí)行規(guī)模上運(yùn)行,從而簡化強(qiáng)化學(xué)習(xí)算法的開發(fā)過程。
Acme 背后的工程師和研究人員共同撰寫了一篇關(guān)于這項(xiàng)工作的技術(shù)論文,根據(jù)他們的說法,用這種方法創(chuàng)建智能體,并行性會(huì)更好。
強(qiáng)化學(xué)習(xí)可以讓智能體與環(huán)境互動(dòng),生成他們自己的訓(xùn)練數(shù)據(jù),這在電子游戲、機(jī)器人技術(shù)、自動(dòng)駕駛機(jī)器人出租車等領(lǐng)域取得了突破。
隨著所使用的培訓(xùn)數(shù)據(jù)量的增加,這促使設(shè)計(jì)了一個(gè)系統(tǒng),使智能體與環(huán)境實(shí)例相互作用,迅速積累經(jīng)驗(yàn)。DeepMind 斷言,將算法的單進(jìn)程原型擴(kuò)展到分布式系統(tǒng)通常需要重新實(shí)現(xiàn)相關(guān)的智能體,這就是 Acme 框架的用武之地。
DeepMind研究員寫道,「Acme 是一個(gè)用于構(gòu)建可讀、高效、面向研究的 RL 算法的框架。Acme 的核心是設(shè)計(jì)用于簡單描述 RL 智能體,這些智能體可以在不同規(guī)模的執(zhí)行中運(yùn)行,包括分布式智能體?!?/p>
「通過發(fā)布 Acme,我們的目標(biāo)是使學(xué)術(shù)界和工業(yè)實(shí)驗(yàn)室開發(fā)的各種 RL 算法的結(jié)果更容易為整個(gè)機(jī)器學(xué)習(xí)社區(qū)復(fù)制和擴(kuò)展。」
Acme 框架要實(shí)現(xiàn)的目標(biāo)?
研究者明確指出了Acme框架的高級目標(biāo):
1 實(shí)現(xiàn)方法和結(jié)果可重復(fù)性
2 簡化新算法設(shè)計(jì)的方式
3 提高RL智能體的可讀性
如何實(shí)現(xiàn)這一目標(biāo)?
從最高層次來看,我們可以將 Acme 視為一個(gè)經(jīng)典的強(qiáng)化學(xué)習(xí)接口,其作用是將 actor(比如一個(gè)動(dòng)作選擇智能體)連接到環(huán)境。
actor 是一個(gè)具有選擇動(dòng)作、觀察并實(shí)現(xiàn)自我更新能力的簡單接口。
從內(nèi)部看,學(xué)習(xí)智能體可以拆分為「執(zhí)行」和「學(xué)習(xí)」兩部分。從表面上看,這使得我們在不同的多智能體之間重復(fù)使用 acting portion。
但是,更重要的是,這提供了一個(gè)可以對學(xué)習(xí)過程進(jìn)行劃分和并行化處理的關(guān)鍵邊界。我們甚至可以從此處按比例縮小規(guī)模,并在沒有環(huán)境,只有固定數(shù)據(jù)集的情況下無縫攻擊批RL設(shè)置(batch RL setting)。
這些不同級別的復(fù)雜度的圖示如下:
除了 Acme 的基礎(chǔ)框架之外,研究人員還發(fā)布了用 Acme 框架創(chuàng)建的大量智能體的單進(jìn)程實(shí)例。
通過跨越執(zhí)行/學(xué)習(xí)邊界,我們能夠以分布式方式運(yùn)行這些相同的智能體,過程中的改變最小。
Acme 框架首個(gè)版本主要針對學(xué)生和研究人員使用最多的單進(jìn)程智能體。
研究者在 control suite、Atari 和 bsuite 等環(huán)境中對這些智能體進(jìn)行了基準(zhǔn)測試。
Acme 框架有哪些優(yōu)勢?
Acme是一組開發(fā)套件,用于培訓(xùn)強(qiáng)化學(xué)習(xí)智能體,用來解決復(fù)雜性和規(guī)模的問題,其組件用于從算法和策略到學(xué)習(xí)者等不同抽象層次來指導(dǎo)代理。
這樣做可以讓idea快速迭代,并在生產(chǎn)過程中對這些 idea 進(jìn)行評估,主要是通過訓(xùn)練循環(huán)、強(qiáng)迫性日志記錄和檢查點(diǎn)。
一種特殊類型的 Acme actor 包括執(zhí)行和學(xué)習(xí)兩個(gè)組件ーー它們都被稱為「智能體」ーー它們的狀態(tài)更新是由learner組件中的一些步驟觸發(fā)的。也就是說,智能體大部分情況會(huì)把他們的行動(dòng)選擇權(quán)交給他們自己的執(zhí)行組件。
在 Acme 框架中,actors與環(huán)境密切交互,通過觀察環(huán)境,執(zhí)行動(dòng)作,反過來為環(huán)境提供素材。
在觀察了隨后發(fā)生的變化后,actors 有機(jī)會(huì)更新其狀態(tài),這通常與其行動(dòng)選擇策略有關(guān),這些策略決定了它們?yōu)閼?yīng)對環(huán)境而采取的行動(dòng)。
Acme 提供了一個(gè)位于 actor 和 learner 組件之間的數(shù)據(jù)集模塊,該模塊由一個(gè)名為 Reverb 的低級存儲(chǔ)系統(tǒng)支持,DeepMind 本周也剛剛發(fā)布這個(gè)系統(tǒng)。此外,該框架建立了一個(gè)接入Reverb的通用接口,使不同風(fēng)格的預(yù)處理和觀察數(shù)據(jù)的持續(xù)聚合成為可能。
Reverb是一個(gè)專為機(jī)器學(xué)習(xí)研究設(shè)計(jì)的高效、易用的數(shù)據(jù)存儲(chǔ)和傳輸系統(tǒng)。Reverb主要作為分布式強(qiáng)化學(xué)習(xí)算法的經(jīng)驗(yàn)回放(experience replay)系統(tǒng),但該系統(tǒng)也支持多種數(shù)據(jù)結(jié)構(gòu)表示,如FIFO、LIFO和優(yōu)先級隊(duì)列等。
在 Acme 當(dāng)中,執(zhí)行、學(xué)習(xí)和存儲(chǔ)組件被劃分為不同的線程或進(jìn)程,這帶來了兩個(gè)好處: 環(huán)境交互與學(xué)習(xí)過程非同步發(fā)生,以及數(shù)據(jù)生成的加速。
在其他地方,Acme允許從學(xué)習(xí)到執(zhí)行以任何速率運(yùn)行,只要流程保持在一定的定義公差內(nèi)就可以不受阻礙。例如,如果一個(gè)進(jìn)程由于網(wǎng)絡(luò)問題或資源不足而落后于另一個(gè)進(jìn)程,速率限制器將阻塞落后者,而另一個(gè)進(jìn)程將趕上來。
除了這些工具和資源,Acme 還附帶了一組示例智能體,作為各自強(qiáng)化學(xué)習(xí)算法以及強(qiáng)大研究基線的參考實(shí)現(xiàn)。
DeepMind研究人員寫道,「通過提供這些... ... 我們希望 Acme 將有助于提高[強(qiáng)化學(xué)習(xí)]的可再生性地位,并為學(xué)術(shù)研究者提供簡單的組件來創(chuàng)造新的智能體?!埂复送?,我們的baseline應(yīng)該提供額外的衡量標(biāo)準(zhǔn),以衡量該領(lǐng)域的進(jìn)展?!?/p>
GitHub地址:https://github.com/deepmind/acme
論文地址:https://arxiv.org/pdf/2006.00979v1.pdf