英语Microservice怎么翻译?

垃圾简书,垃圾CEO,垃圾某豚,从此绝不再用。

此外,还有许多组织长期以来一直在做我们认为可以作为微服务的东西,当从来没有使用过这个名称。(通常这被称为SOA - 尽管我们已经知道,SOA有许多相互矛盾的形式)

尽管有这些积极的经验,但是我们并不确信微服务是软件架构的未来方向。虽然到目前为止我们的经验以Monolithic架构相比是积极的,但我们意识到,没有足够的时间让我们做出全面的判断。

通常,你的结构决策的真实结果在你完成后几年才会显现出来。我们已经看到了一些项目,一个好的团队,对模块化的强烈愿望,已经建立了一个Monolithic架构,多年来已经衰败。很多人认为,这种衰败不太可能发生在微服务架构上,因为服务的边界是明确的,很难修补。然而,在我们看到足够多的老系统之前,我们无法真正评估微服务架构是如何成熟的。

有一些原因可以解释为什么人们会认为微服务很不成熟。在组件化的任何努力中,成功取决于软件与组件的匹配程度。很难弄清组件边界的确切位置。进化设计意识到正确的获得边界的困难,因此明白简单重构的重要性。但是,当你的组件是远程通信的服务时,重构比在进程内要困难得多。移动代码很难跨越服务边界,任何接口的更改都需要在参与者之间协调,需要添加层次的向后兼容性,并且测试更加复杂。

另一个问题时,如果组件不干净,那么你做的事情就是将复杂性从组件内部转移到组件之间的连接上。这不仅仅是将复杂性转移到一个更不明确,更难以控制的地方。当你看到一个简单的小组件内部时,很容易会认为事情会更好,同时还会忽略服务之间的混乱连接。

最后,还有团队技能的因素。新技术往往被更熟练的团队使用。但是对于一个更熟练来说,一个更有效的技术并不一定能为不太熟练的团队工作。我们已经看到了许多不太熟练的团队构建杂乱的Monolithic架构的案例,但是要知道这种情况发生在微服务上的时候会带来什么。一个差劲的团队总会创造一个糟糕的系统。- 很难判断微服务是否能减少这种情况,或者使其变得更糟。

我们听到的一个合理的观点是,你不应该从一个微服务架构开始。相反的是,可以从一个Monolithic架构开始,一旦Monolithic架构成为一个问题,就使用模块化,并将其分解为微服务。(尽管这个建议并不理想,因为良好的进程内接口通常不是一个好的服务接口)。

所以我们审慎乐观的写这篇文章。到目前为止,我们已经看到了足够多的微服务风格,认为这是一条值得涉足的道路。我们不能确定我们最终会在哪里,但是软件开发的一个挑战是,你只能根据你目前掌握的不完全信息做出决定。

}

楼主发言:2次 发图:0张 | 添加到话题 |

   开始以为是电气专业出身的呢,后来觉得是计算机专业的了

}

去年年底Google神经网络机器翻译出来的时候, 本人有感于突破之快, 把当年的讨论的部分收获写到了 “”里面。

今天有时间和大家一起讨论下下, 深度神经网络机器翻译。

2016年年底, Google公布了神经网络机器翻译(GNMT), 从此宣告, 机器翻译经过27年左右, 正式从1989年的IBM机器翻译模型(PBMT,基于短语的机器翻译),过渡到了神经网络机器翻译模型。已经极大接近了普通人的翻译了。

而从基于短语的翻译到神经网络翻译, 相对提升可以达到60%以上, 因此一下子引起了欢呼和惊叹。 而这背后的大功臣,就是sequence to sequence (seq2seq)的端到端的模型。

而这个seq2seq模型,除了机器翻译,还极大改变了整个自然语言处理相关应用。 包括基本的NLP功能:Parsing, NER等; 传统的NLP应用:Summarization, QA, Conversation等; 还有多模的世界:图像和文字, 语音和文字等。

基于seq2seq的问答系统

基于seq2seq的概要提取系统

接下来, 我们按如下顺序介绍seq2seq模型:

  1. PBMT 时代的基石和问题
  2. 神经网络语言模型的出现

目前seq2seq的突破,离不开:

b. RNN模型升级: RNN出现了双向RNN,堆栈RNN,和残差RNN。在GNMT里面把这些技术统统用上了。使得RNN模型的学习能力达到空前高度。

c. RNN-LM模型: RNN的使用开启解决长距离依赖的问题, 也引发记忆计算在语言模型的新思考。

d. NNLM模型突破:NNLM模型的发展使得非线性的投影和Softmax的近似计算得到突破。

e. 端到端的编解码模型:端到端的早期突破使得多模融合成为可能。

二. PBMT 时代的基石和问题

首先基于短语的机器翻译,从IBM模型一路发展而来, 已经相当成熟。 并且开源系统也很多,极大促进了机器翻译的研究和应用。

最重要的是完成机器翻译的功能模块的分解: 双语对齐, 语言模型,翻译模型, 解码器, 测试。

这个使得, 神经网络语言模型诞生后,可以进行独立测试, 逐步发展替代。

其中n-gram语言模型,基于全概率公式和马尔可夫假设,

但是问题也出现在这个n-gram模型, 主要的3大问题

1. 通过频率计算概率, 存在数据稀疏,概率为0的情况难以轻易搞定

虽然,众多概率光滑的算法(尤其 Modified Kneser-Ney 算法)纷纷出现, 依然对人为先验设计要求太高。

2. 长距离依赖的问题难以解决(短语N-Gram中N的局限性)

3. 线性模型学习的局限性

如何解决基于频率的概率估算问题, 解决长距离依赖, 解决线性模型的问题在基于短语的机器翻译PBMT框架下难以彻底截距。

其实, 还有两个神器在PBMT时代已经广泛应用了:

在“” 里面,我们就提出了, 概率估计发展, 从基于频率, 到基于经验,再到基于最大熵。 需要的数据越来越少。 而Log-Linear就是基于最大熵的概率模型(细节参考“”) 如果想深入了解的, 简单说来Log-Linear和最大交互熵之间的关系就是著名的Donsker-Varadhan定理:

当把翻译的词拼成句子的时候, 要求整个句子的似然概率最大, 这时候Beam Search是介于贪心和动态规划(譬如 Viterbi Algorithm)之间个一种均衡了效果和计算量的选择。

三. 端到端模型的出现

大家都知道encoder-decoder的功能是重建对应的元素, 如果x和f(x),存在同样的内在分布表达, 那么可以先训练x重建, 再训练f(x), 甚至可以训练多个f(x)。 如果把f(x)看成是翻译, 这就可以基于多模的翻译, 也可以是多语言的翻译。

不仅仅如此, 还引入了分布表达映射的思想, 增强模型的表达能力。

这是早期的基于神经网络的端到端的机器翻译, 但是局限于当时的算法和计算,效果并不突出。

四. 神经网络语言模型NNLM的出现

PBMT时代后期, Log-Linear的出现和应用, 基本上奠定了NNLM神经网络语言模型的基础了。 本质上NNLM就是Log-Linear 保留了Softmax层, 替代了线性映射变成非线性映射tahn。 这样, 引入了非线性映射。

这里使用的是tanh,某种意义就是截断的对称线性的光滑近似。

其实,直接在Log-Linear基础上,引入非线性存在个两个问题

1. 需要的网络参数太多, 训练困难

2. Softmax网络的计算量很大, 而且不稳定, 噪声的影响太大。

对于这两个问题,Bengio建议可以尝试RNN来减少参数, 同时提出了Hierarchy Softmax方式减少计算量,但是依然不够稳定。

虽然NNLM引入了非线性, 也使用softmax计算概率问题(等价于最大熵估算概率), 但是并没有解决长距离依赖问题。

Mikolov追随Bengio的建议, 2010年引入了RNN, 虽然引入RNN有利于简化参数, 但是同时引入了深度网络, 使得训练和收敛变得困难。 为了简化计算, 没有采用tanh计算, 使用了sigmoid函数, 同时采用了分组计算softmax。

RNN的成功引入, 解决了长距离依赖的问题, 而且引入了上下文和记忆的概念。

RNN-LM 背后的翻译能力的挖掘,还需要回归到早期Encoder-Decoder的表达映射。

RNN自身学习能力也在不停的发展, 譬如堆栈RNN,粗细的表达能力也开始分层次。 构建起一个时间和空间的纵横网络。

在语言模型里面, 就要看双向网络了, 正向网络, 好比我的老家溧阳, 那么你遇到溧字,后面只有两个选择溧阳和溧水,但是反过来阳和水前面可以跟的词就多了。 反向网络, 好比New York, 正向看New 后面不一定跟York,但是反过来看York前面一般跟New。

再根据训练收敛的快慢和梯度消失的影响, 引入残差网络的机制, 就得到了残差堆栈RNN。

合并到一起,就是GNMT里面的双向堆栈残差RNN网络了。

除了结构的叠加, 也有人开始改进 RNN本身结构, 譬如增强记忆功能的增强RNN:

如果把这个模型水平展开,就不很像encoder-decoder了, 于是命名成Seq2Seq模型了。

再加上词嵌入的发展和t-SNE可视化的发展, 刚出生的Seq2Seq翻译的效果和影响力已经不是dual-ported RAAM可以比拟的啦。

从此端到端的翻译重新回到历史的舞台!

随着前面简史里面介绍的Attention机制的引入, Seq2Seq的效果一飞冲天。Attention本质上也是一个Softmax的权重计算网络。

但是它很好的构建了注意力权重、上下文向量,注意力向量等模块。

有了这样的模块化, 再加上合理的计算流程, 我们就可以得到基于Attention的候选词计算了。 而Attention机制很好的替代了在PBMT里面的对齐机制。

似乎除了Beam之外,全部可以利用神经网络搞定了。 现在为Seq2Seq量身定做Beam Search也是一个研究热点, 最近基于剪枝的算法又开始出现了,希望找到计算量和效果的新的平衡点.

通过逐层说明的方式,对比了从PBMT到NMT的进化实现, 通过问题解答的方式, 阐明了深度神经网络机器翻译是怎么发展起来的。

}

我要回帖

更多关于 microchip翻译 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信