mlc-llm [Question] Single forward pass through ChatModule

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

通用问题

一个较旧的例子显示,您曾经可以在ChatModule上运行_forward_tokens()来获取logits。API已经发生了变化,那么现在我应该如何做呢?
谢谢!
@CharlieFRuan

o4tp2gmn

o4tp2gmn1#

感谢您的反馈,这周末我会查看一下。一个低级别的前向/采样API可能仍然有帮助;DebugChat可能是一个合适的地方放置它。

wtlkbnrh

wtlkbnrh2#

感谢Charlie!有关这个的最新情况有什么更新吗?

elcex8rz

elcex8rz3#

你好@caenopy,目前我们有 debug_chat.py ,这可能与你的需求相关。https://github.com/mlc-ai/mlc-llm/blob/main/python/mlc_llm/testing/debug_chat.py 。具体来说,运行前向传播并获取logits的代码位于
mlc-llm/python/mlc_llm/testing/debug_chat.py
第310行到第323行 a231ae1
| self.add_sequence_func(kv_caches, 0) |
| self.begin_forward_func(kv_caches, ShapeTuple([0]), seq_len_shape) |
| logits, kv_caches=self.prefill_func(embedding, kv_caches, self.params) |
| self.end_forward_func(kv_caches) |
| returnlogits, kv_caches |
| |
| def_decode(self, token: int, kv_caches: Object): |
| embedding, _=self._embed( |
| tvm.nd.array(np.array([token]).astype("int32"), device=self.device) |
| ) |
| self.begin_forward_func(kv_caches, ShapeTuple([0]), ShapeTuple([1])) |
| logits, kv_caches=self.decode_func(embedding, kv_caches, self.params) |
| self.end_forward_func(kv_caches) |
| returnlogits |
可能你需要根据你的具体需求对 debug_chat.py 进行一些定制,但请务必查看一下。谢谢!

ippsafx7

ippsafx74#

感谢@MasterJH5574!这应该满足我的需求。当我尝试使用音乐模型的DebugChat方法时,遇到了另一个问题。我打开了另一个问题来解决这个问题,因为它似乎部分是特定于模型的。

相关问题