CTranslate2 停用词(序列)

uyhoqukh  于 2个月前  发布在  其他
关注(0)|答案(2)|浏览(35)

支持将停用词作为一系列标记添加。例如,在Python代码生成中,将以下标记添加为停用词是相当常见的:

stop_words = [
  "\ndef",
  "\nclass",
  "\n\n"
]
pexxcrt2

pexxcrt21#

这对我来说很有用。另外,指令调优模型经常使用停顿序列而不是停止标记。
为了澄清一下,这是在词汇表中的有效标记序列上进行的。
听起来像是一个困难的问题,需要解码模型中的标记。

示例

vocab.json = [..., "\n\n", "\n", "class", ..]
stop_words = ['\n\ndef'] 
input = "# hello world \n\ndef"

是2个 ["\n\n", "class"] 还是3个 ["\n", "\n" "class"] 标记。

13z8s7eq

13z8s7eq2#

这可以通过回调函数实现贪婪搜索,感谢@wsxiaoys的工作。只需在检测到停止序列时从回调中返回True!
也许我们可以添加一个预定义的回调来实现这一点。我更喜欢这种解决方案,而不是将停止序列完全集成到解码代码中。

相关问题