Sentencepiece with pre-defined vocabulary

bxfogqkk  于 4个月前  发布在  其他
关注(0)|答案(6)|浏览(105)

你能解释一下是否可以在预定义的词汇表上初始化sentencepiece算法吗?如果不可以,那么这将是一个非常有用的选项。

n6lpvg4x

n6lpvg4x1#

你能详细说明你的请求吗?

"initialize"意味着我们使用预定义的词汇表训练spm模型吗?还是只在分割时间中输入预定义的词汇表?

前者在unigram模式下技术上是可能的,但尚未实现。

对于后一个请求,你可以使用set_vocabulary方法来限制词汇表。然而,预定义的词汇表必须是默认词汇表的子集。

如果你真的要覆盖词汇表,你可以重写mode文件目录,但这是高级用法,风险自负。

qzlgjiam

qzlgjiam2#

我有一个类似的问题,可能几乎相同。在一些利用句子片段模型的后续下游处理[ASR,MT等]中,分割词汇通常被纳入模型。然而,如果句子片段模型丢失,就无法再与下游ASR模型进行适应。作为一个具体的例子:

  • 我有一个使用大量数据训练的espnet ASR模型
  • 我意外地覆盖了(删除)了句子片段模型
  • 我还拥有词汇表和工作espnet模型,它包含了来自原始句子片段模型的词汇表列表
  • 我还有所有的文本训练数据-但重新训练产生了一个相似但不完全相同的模型(8002个词片对8000个目标词片)

能够使用现有espnet模型中的确切、固定词汇重新训练句子片段模型将会非常酷且有用,因为这将节省从头开始重新训练ASR模型所需的时间。

b4qexyjb

b4qexyjb3#

我认为,@AdolfVonKleist的示例非常有用。就我理解而言,@vladmosin的问题是:由于sentencepiece从一些词汇开始裁剪,因此可能有用的一个选项是允许将预定义的给定词汇传递给sentencepiece。

dzhpxtsq

dzhpxtsq4#

严格来说,仅从词汇表中是无法复制出相同的结果的。BPE和unigram语言模型为每个标记管理分数。无论如何,这个分数都无法复制。
如果你使用的是unigram语言模型,那么分数基本上与unigram负对数概率相同。不确定如何复制BPE的分割。

oknrviil

oknrviil5#

有人能帮我吗?我应该熟悉哪些技术栈,才能为Azure做出贡献?
我想为了职业发展和更积极地参与开源项目学习更多的东西。

s6fujrry

s6fujrry6#

"initialize"意味着我们使用预定义的词汇表训练spm模型吗?还是在分割时间中仅提供预定义的词汇表?前者在单字模式下从技术上是可行的,但尚未实现。
@taku910 这个功能已经实现了吗?或者有任何关于如何实现这个功能的提示吗?我有兴趣训练一个单字模型,使用预定义的词汇表,即在整个训练过程中都不会扩展或减少词汇量。

相关问题