社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

DeepMind发文详解Transformer机器学习架构,可帮助行业人士从零构建算法模型

DeepTech深科技 • 2 年前 • 333 次点击  


机器学习架构 Transformer 自 2017 年被谷歌推出后,在自然语言处理(NLP,Natural Language Processing)和计算机视觉领域得到广泛应用且获得巨大成功,一定程度上对此前的递归神经网络(RNN,Recurrent Neural Network)形成了替代。

5 年以来,行业人士针对 Transformer 开发出了众多变体,但人们对其描述通常都是图形化或口头形式的。尽管它们很受欢迎,但几乎没有人为任何变体发布过伪代码。

在计算机科学中,伪代码是对算法或其他系统如何实现的重点描述,用于人类阅读而不是机器阅读,比传统的编程语言代码更易理解,类似于自然语言,可读性好。

伪代码的语法没有具体标准,因为它并不是用于可执行程序。伪代码的主要意义在于使算法被各种编程语言更容易地表示。

不过,不知什么原因,深度学习领域的从业者好像并不想为自己的模型写伪代码。

近日,与谷歌同为 Alphabet 子公司的 DeepMind,将 Transformer 架构进行了详细解读,并将相关论文以《Transformers 架构的形式化算法》(Formal Algorithms for Transformers)为题提交在 arXiv 上。

据了解,Transformer 非常擅长 NLP 或建模序列数据,常用于的两种任务类型是序列建模和序列到序列的预测。许多预训练模型,如 GPT-2、GPT-3、BERT、 XLNet 和 RoBERTa,证明了 Transformer 执行各种 NLP 相关任务的能力,并可应用于机器翻译、文档生成、生物序列分析、视频理解等方面。

本次的研究论文旨在成为 Transformer 独立的、数学上精确的算法概述,并对 Transformer 的定义、训练方法、用途和关键架构组件、较有名的模型做了说明。

论文开篇有一段引言,DeepMind 写道:“曾有同事给一位著名的复杂性理论家寄过一篇非常好的论文。但理论家却表示,在论文中找不到一个定理,不知道这篇论文是关于什么的。”


(来源:DeepMind


该公司提到,这个真实故事很好地表达了他们在浏览许多深度学习论文时的感觉:无法准确地找出算法建议。


在过去的几年里,深度学习取得了极大进步,每年发表的关于该方面的论文可达数千篇。

但这些论文往往缺乏科学的精确性和细节,其中很多只是介绍了他们的模型相较之前有何变化,甚至有的论文只包含几行散文式的描述,最多有一些图表,而没有对模型的精确解释,完全没有伪代码。

也有人会说,大多数深度学习模型都是一些核心架构的微小变化,因此,一个增加了对变化的描述的参考应该就足够了。

但模型的核心算法应该附带调用它们的包装器算法,例如(前)训练、微调、提示、推理、部署。对于行业人士,这些论文也许已经十分精简,但理论家一般要更细致的介绍说明。

无论如何,如果这些事情没有被较好地说明,算法模型仍然很难被人所理解。

正确地解释这些模型是如何被训练和使用的也同样重要,因为有时甚至不清楚所描述的模型的输入和输出是什么。当然,有经验的人通常能够正确地猜测,但这显然不是一个能够科学应用的方法。

值得一提的是,开放源代码很有效,但这并不能很好地替代伪代码的作用。在基本将算法完整描述的情况下,源代码往往要几千行,而一个包含所有重要内容的伪代码通常还不到一个页面。但很少有深度学习从业者能在设计算法的同时写出伪代码。

有人也对伪代码的必要性提出疑问,它有什么用处,真的有人需要伪代码吗?

在深度学习中,提供伪代码可以用于许多用途。相比动辄上千行的实际代码,伪代码能让研究者更简单地开发新模型。


研究人员在论文中提到:“伪代码能够对需要完整和精确公式的理论研究者、从零实现 Transformer 的实验者和使用形式 Transformer 算法扩充论文或书籍的人提供非常大的帮助。”

理论家需要紧凑、完整和精确的描述来进行推理,并最终证明算法的性质。他们通常不愿意或无法对实际代码进行反向工程,或去猜测单词、图表的具体含义。

综上所述DeepMind 的研究人员因此正式描述了 Transformer 架构、典型任务、标记化(文本的表示方式)、训练和推理的所有方面。

在论文中,DeepMind 还表示,当在消化了论文中的内容后,人们可进一步地更深刻理解 Transformer,并在此基础上,能够为有关 Transformer 领域的文献做出贡献,且能基于伪代码从零创建 Transformer 模型。



参考资料:
https://arxiv.org/abs/2207.09238



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/138044
 
333 次点击