在人工智能领域,大语言模型(Large Language Model,LLM)的兴起和广泛应用,为自然语言处理(NLP)带来了前所未有的变革。Qwen1.5大语言模型作为其中的佼佼者,不仅拥有强大的语言生成和理解能力,而且能够通过微调(fine-tuning)来适应各种特定场景和任务。本文将带领大家深入实战,探索如何对Qwen大语言模型进行微调,以满足实际应用的需求。
前排提示,文末有大模型AGI-CSDN独家资料包哦!
一、了解Qwen1.5大语言模型
Qwen1.5模型是Qwen的升级版,也是Qwen2的测试版。它与Qwen类似,是只有一个decoder解码器的 transformer 模型,具有SwiGLU激活、RoPE、multi-head attention多头注意力。
- Qwen1.5有7个模型尺寸:0.5B, 1.8B, 4B, 7B, 14B, 72B 模型,还外加 14B (A2.7B) MoE 模型。
- chat 聊天模型的质量得到明显提高
- 在 base 模型和 chat 模型支持多语言的能力(中文,英文等)
- 支持 32768 tokens 的上下文长度
- 所有模型启用System prompts,可以进行角色扮演
- 不再需要 trust_remote_code
二、微调GPU资源评估和环境准备
这里我使用 Llama-Factory 训练框架来对 Qwen1.5 来进行微调,微调的方法可以使用 LoRA 或 QLoRA,可以大大节省GPU资源。具体的 Llama-Factory 环境搭建方法可以看官方链接:https://github.com/hiyouga/LLaMA-Factory
三、准备微调数据集和预训练模型
(1)数据集准备
微调数据集是微调过程中的关键。我们需要根据具体任务的需求,收集并整理相关的数据。这些数据应该包含输入和对应的输出,以便模型在训练过程中学习如何从输入中生成期望的输出。这里我使用一些公开的数据集来进行微调。
更多的数据集请看链接:GitHub - hiyouga/LLaMA-Factory: Unify Efficient Fine-Tuning of 100+ LLMs
(2)Pre-training 模型准备
直接在 huggingface 下载,下载地址:Qwen
如果自己网络无法访问 huggingface ,也可以使用 HF-Mirror - Huggingface 镜像站 来进行下载也可以。
四、模型微调训练
(1)运行打开web ui 界面
按照 LLaMA-Factory 里面的教程搭建好环境之后就可以开始对模型进行微调了,执行以下命令来启动web ui 界面来进行微调:
cd LLaMA-Factory
export CUDA_VISIBLE_DEVICES=0 # use gpu0
python src/train_web.py # or python -m llmtuner.webui.interface
如果想修改 网页服务的地址和端口号,直接在 src/train_web.py 修改就可以了。这里也可以代码中的 share 设置为True ,就可以把本地网络的web ui 界面作为一个 public 链接分享出去。
from llmtuner import create_ui
def main():
create_ui().queue().launch(server_name="127.0.0.1", server_port=6006, share=True, inbrowser=True)
if __name__ == "__main__":
main()
(2)配置训练参数
然后根据的要求来进行配置,我的配置如下:
模型名称: Qwen1.5-7B-Chat
模型路径: 填写自己本地下载的模型的路径,或者 Hugging Face 路径
微调方法: 可以选用 lora, freeze, full 等
量化等级: 选择 none,不进行量化,也可以启用 4/8 bit 模型量化(即 QLoRA)
提示模板: qwen
训练阶段: Supervised Fine-Tuning,也可以选 Reward Modeling, PPO, DPO, Pre-training等
数据路径: 数据所在文件夹,默认为项目中的 data 文件夹
数据集: 提取了 data 文件夹中的 *.json 文件,可直接选择。选择完成之后点一下**“预览数据集”**确认自己的数据是否正确。
其他的参数比如 学习率、训练轮数(epoch)、批处理大小、学习率调节器 等都是深度学习训练常见的参数,可以根据自己的情况选择就好。这里我使用默认的参数。
LoRA 参数设置中,可以修改 lora 秩的大小,缩放系数,权重随机丢弃的概率等参数,这里我保持默认。
所有的参数都配置好之后,点一下 “预览命令”,确认命令没有问题之后,就可以点击 “开始” 进行训练了。训练的过程中可以看到 loss的变化曲线、训练耗时等。
五、模型微调效果测试
微调完成后,我们需要对微调后的模型进行评估,以了解其在实际任务中的性能表现。也可以在web ui 界面直接进行对话体验。
在 “模型路径” 中输入原始模型路径,然后在 “适配器路径” 中选择自己微调得到的 adapter 路径,然后点击 “加载模型”,就可以开始对话聊天了。
通过终端窗口,可以看到模型成功加载
对话聊天:
读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓
👉AI大模型学习路线汇总👈
大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉大模型实战案例👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉大模型视频和PDF合集👈
观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓