APP下载

【Julia亮点套件3】台湾开发|Julia圈首款Transformer模型套件:Transformers.jl

消息来源:baojiabao.com 作者: 发布时间:2024-11-25

报价宝综合消息【Julia亮点套件3】台湾开发|Julia圈首款Transformer模型套件:Transformers.jl

 Julia圈首款Transformer模型套件  Transformers.jl

 开发者  台湾NLP研究生郑景文

 热门特色  支援Hugging Face预训练模型格式转换

 未来发展重点  电脑视觉任务实作及更完整的分词工具API

举凡翻译、语音助理、聊天机器人,或是摘要生成、文章创作和情绪分析,都靠自然语言处理(NLP)完成。

其中,最受开发者爱戴的NLP模型,非BERT和GPT-3莫属。它们不只是NLP界的指标模型,更是科技巨头争相研究的对象。

但它们本是同根生,都是基于4年前Google开发的Transformer类神经网络架构改良而成。也因此,在主流的程式语言Python中,Transformer模型开发资源十分充沛,但在Julia这个年轻语言里,并非如此,甚至连专属工具都没有。

2019年,这个局面扭转了,Julia终于有自己的Transformer开发套件,其完整度更受社群好评,成为开发NLP模型的首选工具。这个Transformers.jl套件的贡献者,就出自台湾一位硕士生郑景文手中。

无心插柳柳成荫,以Julia完整实作出最热门NLP模型

谈起最初的起心动念,专攻NLP研究的郑景文笑说,当时只因手上的研究进行不顺利,于是想转换心情,“做点别的事。”

那年2019年,正是Google发布NLP里程碑模型BERT的隔年,也是他加入Julia台湾社群的隔年。郑景文指出,NLP领域研究多聚焦于Transformer,为了让Julia爱好者能以最爱的语言进行Transformer研究,他决定自己动手实作看看。

他选择了最费工也最扎实的方式,来开发这款套件。在资料科学圈,主流模型和工具大多以Python开发,年轻的Julia尚未具备完整的工具链,因此,打造Julia模型套件时,开发者通常得以PyCall.jl套件,来将现有的Python工具介接到Julia套件中。

但这么做,“就丢失了不少Julia本身的良好特性。”所以,郑景文决定不借用任何Python模组,全部用Julia重新实作,比如,NLP流程中有一个重要的分词(Tokenization)步骤,需要使用分词工具将长文章分解为字词单位,才能进行后续的分析。郑景文自己从零打造出Julia原本缺少的分词工具。

Transformer套件提供元件和模型,还能转换格式

经过几个月,Transformers.jl完成开发后,很快就受到关注,被收录到Julia深度学习开发框架Flux中。使用者不只能在Transformers.jl中,找到开发模型所需的元件和开箱即用的预训练模型,还能用来转换格式,尤其是从Hugging Face下载的NLP模型格式。

这个格式转换功能,是郑景文套件设计之初的重点特色之一。Hugging Face是一家专攻NLP技术的美国新创,在NLP圈拥有大型开源平台和社群,宛如GitHub般,常提供热门的高阶预训练模型如Transformer,供NLP爱好者下载、使用。

但,这些热门模型只能在PyTorch、TensorFlow和Jax等深度学习框架上执行,并不支援Julia专用的Flux框架。因此,为了让Julia使用者也能采用这些模型,郑景文就在Transformers.jl中加入了格式转换功能,让开发者在Flux上也能执行。

至此,这个套件具备了Julia开发所需的基本功能,也成为Julia开发Transformer的首选工具。郑景文透露,接下来还要新增更多元素,比如纳入Transformer用于电脑视觉任务的实作,以及更完整的分词工具API。

2021-11-02 07:45:00

相关文章