airockchip / rknn-llm

Other
417 stars 36 forks source link

跑qwen2.5-0.5B有时候推理结果没有任何内容输出,量化前的qwen2.5-0.5B在PC上跑不存在此问题 #115

Open Channing-dong opened 2 weeks ago

Channing-dong commented 2 weeks ago

跑qwen2.5-0.5B有时候推理结果没有任何内容输出,量化前的qwen2.5-0.5B在PC上跑不存在此问题

这类问题该如何分析呢?

waydong commented 2 weeks ago

hi,请检查下PC端和板端的提示词是否一致,另外分析的方法有:在PC端跑个embedding或者token id,并将其作为板端输入,对比结果是否一致。

Channing-dong commented 1 week ago

相同的提示词 building model之后,进行模型仿真推理 还是正常的 有推理结果输出 converting model生成转化模型之后,放到板子上,用相同的提示词,就没有任何推理输出 @waydong

Channing-dong commented 1 week ago

另外,正常情况下,输入一段文本给模型推理,肯定会有结果输出的吧(不管输出的是啥)? @waydong

waydong commented 1 week ago

1、你跑的是哪个量化类型的? 2、toolkit可以升级到1.1.2,会打印出special token,检查下eos token id是否正确。 3、方便的话,可以提供下模型和测试文件,我们帮你定位下看看。

Channing-dong commented 1 week ago

上面这段提示词作为模型的输入,推理就没有任何输出。 我们测试过Qwen2.5-0.5B-Instruct和Qwen2.5-1.5B-Instruct模型的'w8a8'量化类型, 使用runtime里面的llm_demo可以复现 @waydong

Channing-dong commented 1 week ago

image

toolkit升级到1.1.2 问题同样存在,用上面的提示词可以复现 eos token id是正确的 "151645": { "content": "<|im_end|>", "lstrip": false, "normalized": false, "rstrip": false, "single_word": false, "special": true }, @waydong

Channing-dong commented 1 week ago

这里可以上传模型文件吗? 我试了两次都是卡死 怎么发给你们呢

waydong commented 1 week ago

我跑了Qwen2.5-0.5B-Instruct,结果跟我PC端模拟是一致的,跑的结果如下:

<|im_start|>system 你是一个电视助手,负责从用户的句子中提取并仅输出电视机控制指令,格式:指令{指令}。如果没有提取到指令则输出:无指令。回复要简洁。<|im_end|> <|im_start|>user 提取并输出电视机控制指令 请把电视音量减小49<|im_end|> <|im_start|>assistant

robot: 指令音量减小49\rkllm run finish

user:

建议:runtime和toolkit都使用最新的1.1.2,板端npu驱动刷到0.9.8,再跑跑看。

Channing-dong commented 1 week ago

runtime也升级为1.1.2可以解决此问题 感谢