使用原生llama3模型和使用Chinese-LLaMA-Alpaca-3模型推理的差异和问题
yaoyonstudio opened this issue · 4 comments
提交前必须检查以下项目
- 请确保使用的是仓库最新代码(git pull)
- 已阅读项目文档和FAQ章节并且已在Issue中对问题进行了搜索,没有找到相似问题和解决方案。
- 第三方插件问题:例如llama.cpp、text-generation-webui等,建议优先去对应的项目中查找解决方案。
问题类型
模型推理
基础模型
Llama-3-Chinese-8B-Instruct(指令模型)
操作系统
macOS
详细描述问题
我在MacOS中,使用MLX框架分别加载原生的Meta-Llama-3-8B-Instruct模型和llama-3-chinese-8b-instruct-v2模型,使用相同的prompt和参数(包括max_tokens等),模型推理出现以下差异和问题:
-
使用llama-3-chinese-8b-instruct-v2模型推理速度比原生的Meta-Llama-3-8B-Instruct模型要慢很多,根据几次测试的情况评估,约慢3倍左右(使用verbose=True的推理生成速度及最终生成的时间综合主观评估)。
-
使用llama-3-chinese-8b-instruct-v2模型推理会出现一直生成文本不停止的情况,而且最后生成的文本是重复的。而使用原生的Meta-Llama-3-8B-Instruct模型,则不会出现这种情况。我不确定我的判断是否准确,但我的第一感觉是,llama-3-chinese-8b-instruct-v2模型推理时会去“对齐”(或者是“强制适配”)我设置的max_tokens。
使用llama-3-chinese-8b-instruct-v2模型推理截图:
使用原生的Meta-Llama-3-8B-Instruct模型推理截图:
不清楚这种在同平台同框架同参数下模型推理的差异是否正常?第二个问题文本生成不停止的情况是否与模型有关?
依赖情况(代码类问题务必提供)
# 请在此处粘贴依赖情况(请粘贴在本代码块里)
运行日志或截图
# 请在此处粘贴运行日志(请粘贴在本代码块里)
- 推理慢的问题不清楚,模型结构、超参都是一样的,在其他框架下测也没有显著速度差异;
- 重复生成的问题多半是EOS token的问题,不太清楚你用的这个框架是否正确设置了模板和EOS token。同样,在其他框架,比如我们提供的inferece_hf.py或者llama.cpp/ollama下没出现这个问题。
经过排查,我发现llama-3-chinese-8b-instruct-v2模型和原生Meta-Llama-3-8B-Instruct的special_tokens_map.json文件不一致。
llama-3-chinese-8b-instruct-v2模型既然以原生的Meta-Llama-3-8B-Instruct模型为基座,为什么不保持一致。
我在推理时,要手动设置tokenizer的配置,增加eos token的设置,就不会产生上面第2个问题。
但是推理慢的问题依旧有,我后面使用时继续观察。
官方分别在16天、19天前更新过config,我们的v2模型是5/8发布的,自然是没能用到新的config。
你自行替换就行了,不必这么大的怨念 :)
误会了,只是说明情况,并无怨念。
谢谢你们的付出。