功能请求
请在 text_generation.Client.generate
方法中添加一个选项,以便将提示作为 token id 列表提供,而不是字符串。
动机
最近的 LLaMA-2-Chat 模型的官方实现在每个聊天对话的回合之前使用独立的分词器对 token 进行分词,然后再将 token id 连接起来。我也想在我的应用中这样做。但是,由于 TGI 只接受字符串作为提示,所以无法将结果中的 token 列表发送给 TGI。
我明白在这个特定的情况下,可以在客户端内连接字符串,包括特殊标记的字符串表示。但有时 tokenize(a + b) != tokenize(a) + tokenize(b)
,所以这可能不是完全正确的。而且我已经看到至少有一个其他模型在这方面有明确的说明,作者建议连接 token id 而不是字符串(尽管我现在找不到那个模型)。
在 huggingface transformers 和 vLLM 中,也已经支持提供 token id 列表而不是字符串。
你的贡献
很遗憾,我对 Rust 不熟悉,无法为此功能提供 PR。
7条答案
按热度按时间2jcobegt1#
这样做肯定有一些好处。
缺点:
我真的很担心这个功能的增加表面,所以我倾向于拒绝做出这样的改变,除非我们能找到一种非常简单的方法来实现它。
@OlivierDehaene Wdyt?
qhhrdooz2#
我同意这很好,而且分词重构早就该做了。
我们会在第四季度考虑这个问题。
zaq34kh63#
我的另一个功能请求相当有争议,但这至少可以使在客户端上进行分词成为可能,而无需在中间进行有损的往返。现在已经是第四季度了,所以很好奇目前这个功能的状况如何。
ybzsozfc4#
这个问题已经过期,因为它已经打开了30天,没有活动。请移除过期标签或评论,否则将在5天内关闭。
shyt4zoc5#
这个问题永远不会过时,除非添加了这个功能。我不明白为什么这个机器人是必要的-有一些问题可能会随着时间的推移而过期,但这个已经基本上完成了所需的信息。
wgx48brx6#
这个问题已经过期,因为它已经打开了30天,没有活动。请移除过期标签或评论,否则将在5天内关闭。
kx1ctssn7#