在学习DeepSeek-R1-Distill-Qwen-1.5B模型推理相关内容后,我对模型推理的全流程有了一定的了解。 模型推理流程主要分为权重加载、启动推理、效果比较与调优、性能测试和性能优化这五个步骤,如同一条完整的流水线。权重加载是“唤醒模型”的关键,要先加载基础模型,再装上LoRA适配器这个微调习得的“小插件”,这样模型才能具备微调后的能力。启动推理则是让模型“干活”,通过设置generate_kwargs参数,明确输入、生成字数、选词方式等“规矩”,再用线程启动model.generate来生成内容。 效果比较与调优和性能测试及优化是推理过程中不可或缺的环节,且与LoRA微调阶段的调优有本质区别。LoRA微调是让模型“学会特定能力”,调优的是模型参数;而推理阶段的效果调优是让模型“用好本事”,通过调整temperature、top_p、repetition_penalty等推理参数优化输出,比如解决长文本重复问题;性能优化则是提升模型运行效率,让其“干活更快更稳”。 性能优化方面,有多种实用方法。禁用多线程能小幅提升速度,将平均token推理时长从0.727秒降至0.674秒;而jit即时编译效果更显著,通过拆分解码逻辑、使用静态缓存等,可使每个token的推理时间从约1.1秒降至0.32秒,不过首token因全图编译耗时较长,在生成token数量较多时优化效果更明显。 此外,基于Gradio的代码实现让我直观感受到模型的对话功能,代码中加载模型、处理输入输出、设置流式展示等步骤清晰明了。同时,了解到昇思MindSpore+香橙派开发板在模型开发中面临的算子支持、内存优化等挑战及对应解决方案,也为实际应用提供了参考。