本篇博客了解部署和微调相关知识,本项目具体的部署微调流程可以查看另一位成员的博客
使用恒源云和LMDeploy对大模型进行部署,使用Xturner并用自己的数据集进行微调,这两个过程在成员的博客中写得很详细,本篇博客不再赘述,着眼于这两部分的扩展,学习相关的其他的知识。
部署
大模型的部署方法有很多,Hugging Face的Transformers,基于C++的推理引擎的Llama.cpp,基于llama.cpp库的Llamafile,Ollama,高吞吐量、内存高效的vLLM,这里着重介绍DeepSpee,这是微软精心打造的开源的深度学习优化库,其核心是系统优化和压缩,涵盖了硬件设备、操作系统和框架等多个层面。该优化库还利用模型和数据压缩技术,显著提升了大规模模型的推理和训练效率。DeepSpeed-Inference是DeepSpeed在推理领域的扩展,专为大语言模型设计。它巧妙地运用了模型并行、张量并行和流水线并行等技术,显著提升了推理性能并降低了延迟。
可以发现,每种部署方法都有他的优势所在,也存在他的不足,因此在选择是时要深入了解使用的大模型框架,了解框架的特性和需求,以此选择合适的部署方法,例如,要追求高新能推理,可以选择DeepSpeed;要追求使用的方便,可以选择ollama;要实现在多种硬件环境下的高校推理,可以选择TGI。
部署方法的不断涌现,就是为了适应大模型的快速发展,提高开发效率,保证项目的顺利推进和最终成功。
微调
关于微调,那本项目来说,对本来无法有效处理政治问题的大模型,给其相关的政治题,在此数据集的进行进一步的训练,使其用于定制化的能力,更标准的定义为,大模型微调指的是“喂”给模型更多信息,对模型的特定功能进行 “调教”,即通过输入特定领域的数据集,让其学习这个领域的知识,从而让 大模型能够更好的完成特定领域的NLP任务。
再微调之前需要进行大模型的预训练,预训练的最终目的是让模型学习到语言的统计规律和一般知识,这是一个无监督的学习过程,最终得到一个基座模型。
微调的方法主要分为两类方法,一是借助OpenAI提供的在线微调工具进行微调;二是借助开源微调框架进行微调。
下面介绍RLHF的训练流程:
步骤1:监督微调(SFT) —— 使用精选的人类回答来微调预训练的语言模型以应对各种查询;
步骤2:奖励模型微调 —— 使用一个包含人类对同一查询的多个答案打分的数据集来训练一个独 立的(通常比 SFT 小的)奖励模型(RW);
步骤3:RLHF 训练 —— 利用 Proximal Policy Optimization(PPO)算法,根据 RW 模型的奖励 反馈进一步微调 SFT 模型。
但这个微调过程较为困难,并且最好使用linux系统。
通过本篇博客了解项目之外的部署微调知识,对项目的整体进行有一个更深的了解。