基于Transformer框架实现微调后Qwen/DeepSeek模型的非流式批量推理

在基于LLamaFactory微调完具备思维链的DeepSeek模型之后(详见《深入探究LLamaFactory推理DeepSeek蒸馏模型时无法展示<think>思考过程的问题》),接下来就需要针对微调好的模型或者是原始模型(注意需要有一个本地的模型文件,全量微调就是saves下面的文件夹,如果是LoRA,还需要进行一步导出模型的操作),实现快速高效的模型推理。本文将详细分享如何基于Transformer框架,通过多GPU并行实现DeepSeek模型的非流式批量推理,并解决在实践中遇到的关键技术挑战如输出结果错乱、tokenizer编码参数、tokenizer解码输出、推理效果不一致、开启多卡多进程推理等等。

文章目录

  • 单卡并行
    • 源码解读
    • 实现细节
      • 如何通过设置padding_side解决输出结果错乱的问题
      • tokenizer编码时的参数设置会如何影响最终效果
        • 核心参数及其作用
        • 推荐使用场景
      • 如何准确提取tokenizer解码时的输出部分
      • 如何通过调整transformer库版本解决推理效果不一致的问题
  • 多卡并行
    • 源码解读
    • 实现细节
      • 如何在无Dataloader的前提下解决多卡并行的问题
      • 如何解决多线程推理结果反而变慢的问题


进入大模型应用与实战专栏 | 查看更多专栏内容


你可能感兴趣的:(transformer,Deepseek,大模型推理,微调)