加入收藏 | 设为首页 | 会员中心 | 我要投稿 长春站长网 (https://www.0431zz.com.cn/)- 媒体智能、开发者工具、运维、低代码、办公协同!
当前位置: 首页 > 站长资讯 > 评论 > 正文

流量系统如何玩转 JVM

发布时间:2021-02-13 13:20:01 所属栏目:评论 来源:互联网
导读:英特尔已经开始致力于让Rust实现与C相同的功能,微软也或将加入其中。由于Rust缺少C的一些功能,该团队发现Rust将最适用于新近开发的Windows组件。假如微软将部分代码库迁移到Rust,我也不会感到吃惊。 微软已经为Rust搭建了一个标准Windows库,它具备C++版

英特尔已经开始致力于让Rust实现与C相同的功能,微软也或将加入其中。由于Rust缺少C的一些功能,该团队发现Rust将最适用于新近开发的Windows组件。假如微软将部分代码库迁移到Rust,我也不会感到吃惊。

微软已经为Rust搭建了一个标准Windows库,它具备C++版本的所有功能;Linux也在考虑将一些内核迁移到Rust。这两大操作系统之间有可能展开竞争,看谁能最先将Rust代码投入生产。

将Rust整合进Azure服务

DeisLabs是Azure的孵化器项目之一,它致力于为Kubernetes构建工具。近来,它选取Rust来开发新产品Krustlet,允许开发者在Kubernetes中运行多个WebAssembly模块。

Kubernetes原本由Google开发,以Go语言写成。大多数工程师倾向于使用Go来为Kubernetes编写组件,DeisLabs选择Rust可谓惊人之举。

最终,这一决定似乎有所成效。虽然员工的确提到了由于Rust独特的所有权概念,转换为Rust的过程十分困难,但该团队仅用了一个月就回到了全速工作状态,他们发现需要为空值写的测试以及调试的问题都越来越少。

工程师们也对Rust的编译器印象深刻。他们称该编译器能够找到另一个项目中的安全漏洞,而Go的编译器则未能做到这一点。他们总结说,应该有更多的团队考虑在将来的工作中使用Rust,该语言可能比Go更适合Kubernetes的开发。

 

微软自去年开始寻找用以替代的编程语言来解决内存安全问题,寻找终有所得——微软开始尝试使用Rust,并在一些情境下将其集成进代码库中。Rust是一种相对较新的编程语言,具有与C和C++相同的底层性能,并具备现代编程语言应有的功能集。

微软认为Rust颇具潜力,本文就将介绍微软将其用在产品中的方式。

用Rust重写Windows

微软虽然尚未使用Rust全面重写Windows,但正在致力于研究如何使Rust适应其生态系统。据微软估算,在推送给计算机的安全补丁中,有70%都是为了修补内存有关的漏洞,他们认为Rust可以在开发阶段捕获这些漏洞。因此,微软委托一些工程师用Rust重写Windows的部分组件,从而获取开发人员的一些意见。

虽然微软没有公开重写哪些组件,但一名工程师称,他正在针对性地改造部分“Windows的底层系统”,这体现出了微软对Rust的潜力颇具信心。微软不仅计划重写一些小的服务和Windows本地应用程序,还可能重写操作系统的核心组件。

工程师们称涉及Rust的工作“整体前景是乐观的”,但也明确指出Rust不具备C的一些重要功能,不过这些工程师们也认为有必要为Rust开发这些功能。

 

表 1:在 WMT’14 En-Fr 数据集上,机器翻译模型在网络深度、网络参数、MAC 数量和 BLEU 值方面的对比结果。DeLighT 表现最优异,在网络深度较深的情况下,参数量和运算量都更少。

语言建模

该研究在 WikiText-103 数据集上,对 DeLighT 和其他方法的性能进行了对比(如表 2a 所示)。表 2b 则绘制了 DeLighT 和 Transformer-XL [9] 的困惑度随参数量的变化情况。这两个表都表明,DeLighT 优于当前最优的方法(包括 Transformer-XL),而且它使用更小的上下文长度和更少的参数实现了这一点,这表明使用 DeLighT 学得的更深且宽的表示有助于建模强大的上下文关系。

 

缩放 DeLighT 块:DeLighT 块使用 DExTra 学习深且宽的表示,DExTra 的深度和宽度由两个配置参数控制:组变换层数 N 和宽度乘数 m_w(图 2a)。这些配置参数能够在独立于输入 d_m 和输出 d_o 维度的情况下,增加 DeLighT 块内的可学习参数数量。此处,该论文使用逐块缩放来创建具有可变大小的 DeLighT 块网络,在输入附近分配较浅且窄的 DeLighT 块,在输出附近分配更深且宽的 DeLighT 块。

为此,该研究提出两个配置参数:DeLighT 网络中 DExTra 的最小深度 N_min 和最大深度 N_max。然后,使用线性缩放(公式 4)计算每个 DeLighT 块 b 中 DExTra 的深度 N^b 和宽度乘数 m^b_w。通过这种缩放,每个 DeLighT 块 b 都有不同的深度和宽度(图 2a)。

实验结果

该论文在两个常见的序列建模任务(机器翻译和语言建模)上进行了性能比较。

机器翻译

该研究对比了 DeLighT 和当前最优方法(标准 transformer [1]、动态卷积 [21] 和 lite transformer [22])在机器翻译语料库上的性能,如下图 3 所示。图 3c 表明,DeLighT 提供了最优的性能,在参数和计算量较少的情况下性能优于其他模型。


(编辑:长春站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读