自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

那個(gè)在國(guó)際翻譯大賽上奪冠的模型,字節(jié)剛剛給開源了

人工智能 開源 新聞
在 ParaGen 中,火山翻譯開源了 GLAT 模型復(fù)現(xiàn)和 WMT21 的代碼,幫助大家更好地去跟進(jìn)并行生成的研究結(jié)果。

Transformer 等文本生成主流算法的逐詞生成對(duì)適合并行計(jì)算的 GPU 并不友好,會(huì)導(dǎo)致 GPU 利用率低下。并行生成有助于解決這一問題。前不久,字節(jié)跳動(dòng)火山翻譯團(tuán)隊(duì)的并行生成翻譯系統(tǒng) GLAT 拿下了 WMT2021 De-En/En-De 的雙料冠軍。為了幫助大家跟進(jìn)這一成果,火山翻譯開源了一個(gè)名為 ParaGen 的 Pytorch 深度學(xué)習(xí)框架,其中包含 GLAT 模型復(fù)現(xiàn)和 WMT21 的代碼。

代碼地址:https://github.com/bytedance/ParaGen

文本生成是自然語言處理的一個(gè)重要研究方向,具有廣泛的應(yīng)用場(chǎng)景。比如文本摘要、機(jī)器翻譯、文案生成等等。不同于一般的分類、標(biāo)注等任務(wù),文本生成不僅要考慮每個(gè)詞的重要性,提高單詞的預(yù)測(cè)準(zhǔn)確性,也要兼顧詞語之間的搭配,保持整個(gè)文本的流暢度。因此一般的做法是逐詞生成,每產(chǎn)生一個(gè)詞都會(huì)考慮和已有詞的關(guān)系。

經(jīng)過以上步驟進(jìn)行文本生成的這類模型稱為自回歸模型,比如目前主流的生成算法 Transformer。該模型首先對(duì)原始文本進(jìn)行編碼,比如機(jī)器翻譯中的待翻譯文本或者是文本摘要中的原文。然后再?gòu)淖蟮接抑鹪~解碼產(chǎn)生翻譯好的文本或是摘要?;谠撍惴ǖ拈_源軟件有 tensor2tensor、fairseq 等。然而逐詞生成對(duì)適合并行計(jì)算的 GPU 來說并不友好,導(dǎo)致 GPU 利用率低下,句子生成速度慢。因此近年來有很多研究探索如何并行生成文本,降低響應(yīng)延時(shí)。

此前,字節(jié)跳動(dòng)人工智能實(shí)驗(yàn)室 (AI-Lab) 的火山翻譯團(tuán)隊(duì)研發(fā)了并行生成的翻譯系統(tǒng) Glancing Transformer (GLAT)(參見《ACL 2021 | 字節(jié)跳動(dòng) Glancing Transformer:驚鴻一瞥的并行生成模型》?),并且使用它一舉拿下了 WMT2021 De-En/En-De 的雙料冠軍 (參見《并行生成奇點(diǎn)臨近!字節(jié)跳動(dòng) GLAT 斬獲 WMT2021 大語種德英自動(dòng)評(píng)估第一》?),彰顯出了并行生成的強(qiáng)大潛力。ParaGen 正是在這個(gè)背景下應(yīng)運(yùn)而生。團(tuán)隊(duì)的研究者們發(fā)現(xiàn),對(duì)于并行生成來說,單單是模型的改進(jìn)已經(jīng)不能滿足研究的需求,訓(xùn)練方法、解碼算法的改進(jìn)也變得日益重要。而 ParaGen 的開發(fā)正是為了解放并行生成研究的生產(chǎn)力。

在 ParaGen 中,火山翻譯開源了 GLAT 模型復(fù)現(xiàn)和 WMT21 的代碼,幫助大家更好地去跟進(jìn)并行生成的研究結(jié)果。在未來,火山翻譯也將開源更多并行生成相關(guān)的技術(shù),推動(dòng)并行生成技術(shù)的進(jìn)一步發(fā)展,幫助并行生成這一技術(shù)逐漸走向更多的生產(chǎn)應(yīng)用。與此同時(shí),除了并行生成以外,ParaGen 也支持了多元化的自然語言處理任務(wù),包括自回歸翻譯、多語言翻譯、預(yù)訓(xùn)練模型、生成任務(wù)、抽取任務(wù)、分類任務(wù)等,并提供從零復(fù)現(xiàn)的代碼,幫助剛接觸自然語言處理研究的同學(xué)更快進(jìn)入到研究的狀態(tài)。

ParaGen 讓開發(fā)更靈活、更自由、更簡(jiǎn)便

ParaGen 支持了多達(dá) 13 種可自定義模塊,包括數(shù)據(jù)讀入、數(shù)據(jù)預(yù)處理、數(shù)據(jù)采樣、數(shù)據(jù)加載、網(wǎng)絡(luò)模塊、訓(xùn)練模型、推斷模型、優(yōu)化目標(biāo)、搜索算法、優(yōu)化器、數(shù)值規(guī)劃器、訓(xùn)練算法和評(píng)價(jià)目標(biāo),相比于同類的文本生成框架,大大提高了二次開發(fā)的靈活性。而對(duì)于不同的模塊,ParaGen 采用微內(nèi)核的設(shè)計(jì),每個(gè)模塊只提供一些通用基本的實(shí)現(xiàn),彼此之間互相獨(dú)立,比如數(shù)值優(yōu)化器中 InverseSquareRootRateScheduler、網(wǎng)絡(luò)模塊的 positional embedding、數(shù)據(jù)讀入的 JsonDataset 等。也正是得益于這細(xì)致的 13 類模塊拆解,ParaGen 可以更方便地進(jìn)行自定義。例如需要實(shí)現(xiàn) glancing training 的方式,在 ParaGen 里面僅僅只需要重載一個(gè) forward_loss 函數(shù),就可以模塊化的實(shí)現(xiàn)自定義的訓(xùn)練。

import torch
from paragen.trainers.trainer import Trainer
from paragen.trainers import register_trainer


@register_trainer
class GLATTrainer(Trainer):
    """
    Trainer with glancing strategy
    """
    def _forward_loss(selfsamples):
        glancing_output = self._generator(**samples['net_input'])
        fused_samples = self._fusing(samplesglancing_output)
        logging_states = self._criterion(**fused_samples)
        return loss

不同于既往的過程式開發(fā),ParaGen 更偏向于組裝式開發(fā)。過程式開發(fā)中,框架固定一個(gè)流程代碼,用戶則想辦法將各個(gè)模組填入到流程里面。而 ParaGen 的組裝式開發(fā)則是完全不同。想象你目前正要實(shí)現(xiàn)一個(gè)任務(wù),ParaGen 像是一個(gè)工具箱,你可以根據(jù)自己想要的功能組裝出一個(gè)完整的流程出來,比如可以選擇合適的 Dataset 類來進(jìn)行數(shù)據(jù)讀取、選擇 Sampler 來進(jìn)行 batch 組合、選擇 Metric 來進(jìn)行結(jié)果評(píng)估、甚至定義自己的訓(xùn)練流程等等。而在碰到了沒有實(shí)現(xiàn)的工具時(shí),ParaGen 的工具又可以作為父類使用,通過重載一小部分的函數(shù)來定制自己的專屬工具,以適配更多的任務(wù)。

與此同時(shí),ParaGen 代碼結(jié)構(gòu)拆解的更加細(xì)致,用戶只要花 2-3 小時(shí)閱讀代碼就能了解整個(gè)項(xiàng)目的框架,從而定制自己的任務(wù)。不僅如此,ParaGen 也提供了相應(yīng)的教程,幫助初學(xué)者認(rèn)識(shí)學(xué)習(xí)了解整個(gè) ParaGen 代碼的基本知識(shí)和使用方式。

ParaGen 讓開發(fā)更穩(wěn)定

ParaGen 能夠很好的支持不同方向的同時(shí)開發(fā)。ParaGen 支持可插拔的方式進(jìn)行代碼開發(fā),允許用戶脫離框架進(jìn)行開發(fā)。用戶可以在任何的目錄下開發(fā)自己專屬的模塊,并通過 --lib {my_lib} 命令進(jìn)行導(dǎo)入 ParaGen 執(zhí)行,使得二次開發(fā)代碼獨(dú)立于主代碼,更加有利于二次開發(fā)代碼的維護(hù)和主框架的穩(wěn)定,保證了不同項(xiàng)目開發(fā)的并行性和穩(wěn)定性,不會(huì)引起彼此代碼的沖突。

ParaGen 采用 apache2 開源協(xié)議,該協(xié)議十分寬松,比如允許其他開發(fā)人員二次開發(fā)后閉源等,方便更多的優(yōu)秀開發(fā)人員或者團(tuán)隊(duì)的參與。

作為首款翻譯質(zhì)量超過傳統(tǒng)自回歸模型的并行文本生成軟件,ParaGen 證明了同時(shí)兼顧速度和質(zhì)量的可行性,為后續(xù)研究提供了可復(fù)現(xiàn)的實(shí)現(xiàn)。在應(yīng)用層面,極大地滿足了終端部署的低功耗快速響應(yīng)的性能需求。在后續(xù)的開發(fā)中,ParaGen 一方面會(huì)探索更多并行算法,比如條件隨機(jī)場(chǎng)模型,進(jìn)一步提高性能。另一方面也會(huì)開拓更多的部署環(huán)境,比如移動(dòng)終端,嵌入式系統(tǒng)等等,方便更多實(shí)際場(chǎng)景的應(yīng)用開發(fā)。?

責(zé)任編輯:張燕妮 來源: 機(jī)器之心
相關(guān)推薦

2012-09-06 11:09:35

2009-06-11 09:26:49

TopCoder編程大賽程序員

2020-12-09 15:24:15

安全計(jì)算競(jìng)賽

2020-11-03 12:55:58

AI

2020-09-28 18:04:37

SessionToken服務(wù)端

2019-10-31 10:36:48

互聯(lián)網(wǎng)數(shù)據(jù)技術(shù)

2025-02-28 12:32:42

2017-12-05 09:47:21

AI翻譯人工智能

2024-04-08 14:07:51

Animagine開源

2019-03-15 14:27:36

Facebook 開發(fā)開源

2024-03-12 13:14:40

2020-04-23 10:07:45

工具IDEA阿里巴巴

2019-07-16 08:09:32

開源技術(shù) 趨勢(shì)

2024-09-06 13:00:29

2021-06-02 10:01:20

開源技術(shù) 軟件

2013-10-16 13:36:07

開源大賽
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)