轻质NLP工具Trankit开源,中文处理更准确,超过斯坦福斯坦萨,内存占用不足45%-量子比特
- 时间:
- 浏览:0
最新的轻量多语言NLP工具集Trankit从俄勒冈大学发布了1.0个版本。
基于Transformer的性能超过了之前的热门同类项目斯坦萨。
Trankit最多支持56种语言,除了简体和繁体中文外,还支持文言文。
首先,我们来看一下Trankit和Stanza对语句进行依存语法分析的结果。
在简体中文的词性标注任务中,Trankit对“从”这个单词也处理得很好。
与Stanza一样,Trankit也是基于Pytorch本地Python实现的,对许多Python用户非常友好。
Trankit在多语言NLP多任务中的性能超过了Stanza。
Trankit在GPU的加持下加速更多,作为占用内存更小、重量更轻的NLP工具集更适合普通人。
使用简单易用的Trankit也非常简单,安装只需pip install即可完成。
但是,Trankit使用Tokenizer库,必须安装Rust。
要初始化预训练Pipeline:
打开自动模式后,可以自动检测语言。
使用自定义尺寸数据自己训练Pipeline也很方便。
集成的多语言TransformerTrankit集成了用不同语言单独训练的Pipelines,共享一个多语言预训练Transformer。
然后,为每种语言创建一组适配器(Adapters)来替代传统的预训练模型“微调”方法,并为不同的NLP任务设置权重。
在训练中,共享的预训练变换器是固定的,只更新适配器和任务特定的权重。
在推理过程中,根据输入文本的语言和当前活动组件查找相应的适配器和特定的任务权重。
该机制不仅解决内存问题,而且大大缩短了培训时间。
Trankit团队在实验中比较了其他两种实现方法。
一是收集所有语言的数据来训练巨大的Pipeline。另一种方法是使用Trankit,但要删除适配器。
对于每个NLP任务,Trankit这种“即插即用”的适配器方法是最好的。
团队称,未来他们计划通过研究mBERT和XLM-Robertalarge等不同的提前训练Transformer来改善Trankit。
可以考虑为更多语言提供实体标识,并支持更多的NLP任务。
Github仓库:https://github.com/nlp-uoregon/trankit
在线Demo:http://nlp.uoregon.edu/trankit
相关论文:https://arxiv.org/pdf/2101.03289.pdf