llama.cpp 如果使用不一致的 --ubatch-size 设置了 --embedding,则服务器退出失败,

wmomyfyw  于 4个月前  发布在  其他
关注(0)|答案(5)|浏览(57)

上下文

在使用带有池化的嵌入模型时,将 n_batch 增加到 n_ubatch 以上没有任何优势,因为整个批次必须适应物理批次(即 n_ubatch )。 n_batch 总是等于 >= n_ubatch

  • 请参见 @slaren 在: server: docs: --threads--threads , --ubatch-size , --log-disable #6254 (评论)中的评论

主张

如果设置了 --embedding 并且在 server 示例中 --ubatch-size 不等于 --batch-size ,则退出失败。可能还适用于 #6193 中的 retrieval 示例。此外,可能还需要考虑 bert.context_size 的 KV。

ycl3bljg

ycl3bljg1#

如果在服务器示例中设置了 --embedding 并且 --ubatch-size 不等于 --batch-size,则退出失败。
我认为这样做是可以的。
Aldo 可能需要考虑 KV bert.context_size。
我认为我们应该只在 n_ctx_train > n_batch 时警告用户(就像在 embedding.cpp 中一样)。
如果 n_ctx_train < n_batch,那么我们不关心,因为内存较低的用户可能希望使用较小的 n_batch。只有在 n_tokens > n_batch 时,我们才会抛出错误。

r7s23pms

r7s23pms2#

对于 retrieval 示例,我们将 n_batch 值分配给了 n_ubatch
如果在服务器示例中设置了 --embedding 并且 --ubatch-size 不等于 --batch-size,则退出失败。这可能会对用户造成一些困惑,因为 n_batchn_ubatch 的默认值是不同的(不指定 --batch-size 或 --ubatch-size 的用户将 100% 遇到此故障)。

xoshrz7s

xoshrz7s3#

这是这张票的想法,用户必须为嵌入模型配置良好的值。

nbysray5

nbysray54#

这听起来很对👍,我们只需要确保错误信息能正确引导用户为 --batch-size--ubatch-size 选项提供相同的值。

u0sqgete

u0sqgete5#

在README中添加关于--embeddings参数的信息也会很好。

相关问题