新聞中心
本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。

最新輕量級多語言NLP工具集Trankit發(fā)布1.0版本,來自俄勒岡大學(xué)。
基于Transformer,性能已超越之前的熱門同類項目斯坦福Stanza。
Trankit支持多達56種語言,除了簡體和繁體中文以外,還支持文言文。
先來看一組Trankit與Stanza對文言文進行依存句法分析的結(jié)果。
可以看到,Stanza錯誤的將“有朋自遠方來”中的“有”和“來”兩個動詞判斷成并列關(guān)系。
在簡體中文的詞性標(biāo)注任務(wù)上,Trankit對“自從”一詞處理也更好。
與Stanza一樣,Trankit也是基于Pytorch用原生Python實現(xiàn),對廣大Python用戶非常友好。
Trankit在多語言NLP多項任務(wù)上的性能超越Stanza。
在英語分詞上的得分比Stanza高9.36%。在中文依存句法分析的UAS和LAS指標(biāo)上分別高出14.50%和15.0%。
Trankit在GPU加持下加速更多,且占用內(nèi)存更小,作為一個輕量級NLP工具集更適合普通人使用。
簡單易用
Trankit的使用也非常簡單,安裝只要pip install就完事了。
- pip install trankit
不過需要注意的是,Trankit使用了Tokenizer庫,需要先安裝Rust。
初始化一個預(yù)訓(xùn)練Pipeline:
- from trankit import Pipeline
- # initialize a multilingual pipeline
- p = Pipeline(lang='english', gpu=True, cache_dir='./cache')
開啟auto模式,可以自動檢測語言:
- from trankit import Pipeline
- p = Pipeline('auto')
- # Tokenizing an English input
- en_output = p.tokenize('''I figured I would put it out there anyways.''')
- # POS, Morphological tagging and Dependency parsing a French input
- fr_output = p.posdep('''On pourra toujours parler à propos d'Averroès de "décentrement du Sujet".''')
使用自定義標(biāo)注數(shù)據(jù)自己訓(xùn)練Pipeline也很方便:
- from trankit import TPipeline
- tp = TPipeline(training_config={
- 'task': 'tokenize',
- 'save_dir': './saved_model',
- 'train_txt_fpath': './train.txt',
- 'train_conllu_fpath': './train.conllu',
- 'dev_txt_fpath': './dev.txt',
- 'dev_conllu_fpath': './dev.conllu'
- }
- )
- trainer.train()
統(tǒng)一的多語言Transformer
Trankit將各種語言分別訓(xùn)練的Pipelines整合到一起共享一個多語言預(yù)訓(xùn)練Transformer。
然后為每種語言創(chuàng)建了一組適配器(Adapters)作為傳統(tǒng)的預(yù)訓(xùn)練模型“微調(diào)(Fine-tuning)”方法的替代,并對不同的NLP任務(wù)設(shè)置權(quán)重。
在訓(xùn)練中,共享的預(yù)訓(xùn)練Transformer是固定的,只有適配器和任務(wù)特定權(quán)重被更新。
在推理時,根據(jù)輸入文本的語言和當(dāng)前的活動組件,尋找相應(yīng)的適配器和特定任務(wù)權(quán)重。
這種機制不僅解決了內(nèi)存問題,還大大縮短了訓(xùn)練時間。
Trankit團隊在實驗中對比了另外兩種實現(xiàn)方法。
一種是把所有語言的數(shù)據(jù)集中到一起訓(xùn)練一個巨大的Pipeline。另一種是使用Trankit的方法但把適配器去掉。
在各項NLP任務(wù)中,Trankit這種“即插即用”的適配器方法表現(xiàn)最好。
團隊表示,未來計劃通過研究不同的預(yù)訓(xùn)練Transformer(如mBERT和XLM-Robertalarge)來改進Trankit。
還考慮為更多語言提供實體識別,以及支持更多的NLP任務(wù)。
Github倉庫:
https://github.com/nlp-uoregon/trankit
在線Demo:
http://nlp.uoregon.edu/trankit
相關(guān)論文:
https://arxiv.org/pdf/2101.03289.pdf
網(wǎng)頁題目:輕量級NLP工具開源,中文處理更精準(zhǔn),超越斯坦福Stanza
文章來源:http://www.dlmjj.cn/article/dhhgjch.html


咨詢
建站咨詢
