在基于LLamaFactory微调完具备思维链的DeepSeek模型之后(详见《深入探究LLamaFactory推理DeepSeek蒸馏模型时无法展示<think>思考过程的问题》),接下来就需要针对微调好的模型或者是原始模型(注意需要有一个本地的模型文件,全量微调就是saves下面的文件夹,如果是LoRA,还需要进行一步导出模型的操作),实现快速高效的模型推理。本文将详细分享如何基于Transformer框架,通过多GPU并行实现DeepSeek模型的非流式批量推理,并解决在实践中遇到的关键技术挑战如输出结果错乱、tokenizer编码参数、tokenizer解码输出、推理效果不一致、开启多卡多进程推理等等。
文章目录
- 单卡并行
- 源码解读
- 实现细节
- 如何通过设置padding_side解决输出结果错乱的问题
- tokenizer编码时的参数设置会如何影响最终效果
- 核心参数及其作用
- 推荐使用场景
- 如何准确提取tokenizer解码时的输出部分
- 如何通过调整transformer库版本解决推理效果不一致的问题
- 多卡并行
- 源码解读
- 实现细节
- 如何在无Dataloader的前提下解决多卡并行的问题
- 如何解决多线程推理结果反而变慢的问题
🎉进入大模型应用与实战专栏 | 🚀查看更多专栏内容