当前位置: 首页 > 知识库问答 >
问题:

seq2seq模型中应使用的目标词汇表的大小是否有限制?

柳鸿博
2023-03-14

在机器翻译seq2seq模型(使用RNN/GRU/LSTM)中,我们提供源语言中的句子,并训练模型将其映射到另一种语言(例如英语到德语)中的单词序列。

这个想法是,解码器部分生成一个分类向量(具有目标单词词汇表的大小),并在该向量上应用一个softmax,然后是一个argmax以获取最可能单词的索引。

我的问题是:考虑到以下因素,目标词词汇量应该有多大,有没有上限

  1. 性能仍然合理(对于较大的矢量,softmax将花费更多时间)

共有1个答案

谭繁
2023-03-14

词汇量的主要技术限制是GPU内存。单词嵌入和输出投影是模型中最大的参数。词汇量太大,您将被迫使用小训练批次,这将大大减慢训练速度。

此外,并不一定是这样,词汇量越大,性能越好。自然语言中的单词是根据Zipf定律分布的,这意味着单词的频率随着频率等级呈指数级下降。随着词汇量的增加,你添加了在语言中越来越不常见的单词。只有当单词出现在训练数据中时,单词嵌入才会得到更新。在词汇量非常大的情况下,不太频繁的单词的嵌入最终会训练不足,模型无论如何都无法正确处理它们。

机器翻译模型通常使用30k-50k令牌的词汇表。然而,这些不是单词,而是所谓的子单词。使用统计启发式方法对文本进行分割,使大多数常用词保持原样,频率较低的词被分割成子词,最终分割成单个字符。

 类似资料:
  • 问题内容: 我的Node.js应用程序的一部分涉及从用户接收字符串作为输入并将其存储在JSON文件中。JSON本身显然对此没有限制,但是Node可以处理成JSON的文本量是否有上限? 请注意,我 并未 在实际插入中使用MongoDB或任何其他技术-这是本机字符串化,并使用将其保存到.json文件。 问题答案: V8(JavaScript引擎节点在建),直到 非常 最近有一个关于1.9 GB的堆大小

  • 问题内容: 我正在尝试使用jQuery Ajax将页面中的数据数组发送到MVC Action。这是我的jQuery代码: 让我解释一下。我有一个动态生成的HTML表,我需要将此数据存储到数据库中。在jQuery中,我遍历表有一个循环,我将数组中每一行的数据存储起来。然后,我使用Ajax将这些数据传递到MVC Action中。 这是我的问题开始的地方…我已经意识到有时会按预期进行,但是有时我会从Aj

  • 问题内容: 我正在使用Drupal,我注意到如果聚合了我的CSS文件,那么CSS不一定会正常工作。我知道IE7中存在问题,但IE9中的CSS文件大小是否有限制? 问题答案: 有3个限制: 一个工作表最多可以包含4095个选择器,请参阅 http://demos.telerik.com/testcases/4095issues.html 一张纸最多可以导入31张纸,请参见http://demos.t

  • 问题内容: 进程的大小是否有限制?它是否仅取决于机器的性能?我想知道这一点,以限制对函数的递归调用的深度。 谢谢。 问题答案: 堆栈通常受资源限制的限制。您可以使用以下命令查看安装的默认设置: (这表明我的是8MB,这是巨大的)。 如果删除或增加该限制,您仍将无法使用计算机中的所有RAM作为堆栈- 堆栈从进程地址空间顶部附近的一点向下增长,并在某个时刻它将运行到您的代码,堆或已加载的库中。

  • 问题内容: 我正在使用Java查询Solr服务器以获取结果,这些结果的ID在我感兴趣的一组已知ID中。 我想获得这些我感兴趣的结果的最佳方法是创建一个长查询字符串,看起来像这样: 我在发出请求之前生成了String,并且我最终想要发出的请求中包含1500个以上的ID。我正在使用HTTP POST这样进行查询: 如果将查询限制为仅前1000个id,它将成功执行,并且可以按预期返回结果。但是,如果我增

  • 问题内容: 我有一个字符串定义为 字串xx 我可以分配的字符数有限制吗? 2)我正在将用户输入分配给此字符串xx。70%的人只说一个字。有时他们会说一个大句子,所以想知道可以吗?还是有更好的Java做法? 问题答案: 您可能已经搜索过一个常见问题,但无论如何我都会再次回答。 我可以分配的字符数有限制吗? 它的Integer.MAX_VALUE或2 ^ 31-1或大约20亿。在达到此大小之前,您更有