【03】LLaMA-Factory微调大模型——多模型部署

为了构建法律领域的垂直应用大模型,记录使用LLaMA-Factory微调大模型的过程,以期UU们可以复刻与应用。上文【02】LLaMA-Factory微调大模型——LLaMA-Factory搭建已在本机成功部署模型微调框架,本文则在本机部署多种基础模型,为后续微调提供准备。

一、基础模型选择

 LLaMA-Factory框架所支持的模型如下表所示,覆盖主流的开源大模型,可按照自身需求进行应用。本文主要部署Qwen2、GLM-4、LLaMA3-8B-Chinese-Chat三个模型进行实验。

模型名 模型大小 Template
Baichuan 2 7B/13B baichuan2
BLOOM/BLOOMZ 560M/1.1B/1.7B/3B/7.1B/176B -
ChatGLM3 6B chatglm3
Command R 35B/104B cohere
DeepSeek (Code/MoE) 7B/16B/67B/236B deepseek
Falcon 7B/11B/40B/180B falcon
Gemma/Gemma 2/CodeGemma 2B/7B/9B/27B gemma
GLM-4 9B glm4
InternLM2 7B/20B intern2
Llama 7B/13B/33B/65B -
Llama 2 7B/13B/70B llama2
Llama 3 8B/70B llama3
LLaVA-1.5 7B/13B vicuna
Mistral/Mixtral 7B/8x7B/8x22B mistral
OLMo 1B/7B -
PaliGemma 3B gemma
Phi-1.5/Phi-2 1.3B/2.7B -
Phi-3 4B/7B/14B phi
Qwen/Qwen1.5/Qwen2 (Code/MoE) 0.5B/1.5B/4B/7B/14B/32B/72B/110B qwen
StarCoder 2 3B/7B/15B -
XVERSE 7B/13B/65B xverse
Yi/Yi-1.5 6B/9B/34B yi
Yi-VL 6B/34B yi_vl
Yuan 2 2B/51B/102B yuan

二、准备阶段

在LLaMA-Factory文件下新建文件夹存放模型文件

更换pypi源为清华镜像进行加速

# 更换 pypi 源加速库的安装【建议】
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

换源成功如下图所示 

【提示】除了清华源以外还可以选择其他多个国内镜像

阿里云: http://mirrors.aliyun.com/pypi/simple/
中国科技大学: https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣: http://pypi.douban.com/simple/
清华大学: https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学: http://pypi.mirrors.ustc.edu.cn/simple/

安装下列代码库(可选)

pip install deepspeed
pip install flash-attn --no-build-isolation

安装flash-attention时会出现报错或者超时情况,如下图所示 

该环节出现问题可参考以下这篇博文进行解决

关于flash-attention安装踩过的坑_flash-attn踩坑-****博客https://blog.****.net/weixin_44044132/article/details/137055014?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~Ctr-1-137055014-blog-136054392.235%5Ev43%5Epc_blog_bottom_relevance_base5&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~Ctr-1-137055014-blog-136054392.235%5Ev43%5Epc_blog_bottom_relevance_base5安装git-lfs,Git Large File Storage(简称Git LFS)是一个用于存储大文件的Git扩展。在传统的Git中,大文件的版本控制会导致存储库变得庞大且访问速度变慢。Git LFS通过将大文件存储在Git存储库之外的特殊服务器上,并在Git存储库中只保留指向这些大文件的指针来解决这个问题。

# 先安装git(如已安装可忽略)
sudo apt-get install git
#安装curl

# 安装apt-get源
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
# 安装git-lfs
sudo apt-get install git-lfs
# 初始化git-lfs
git lfs install

安装过程如下图所示 

安装完成后,对其初始化

三、Qwen-2模型

 Qwen是阿里巴巴集团Qwen团队研发的大语言模型和大型多模态模型系列。目前,大语言模型已升级至Qwen2版本。无论是语言模型还是多模态模型,均在大规模多语言和多模态数据上进行预训练,并通过高质量数据进行后期微调以贴近人类偏好。Qwen具备自然语言理解、文本生成、视觉理解、音频理解、工具使用、角色扮演、作为AI Agent进行互动等多种能力。详情可参考该链接。

Qwen2-7B · 模型库 (modelscope.cn)https://www.modelscope.cn/models/qwen/Qwen2-7B从魔塔社区中克隆模型代码

git clone https://www.modelscope.cn/qwen/Qwen2-7B.git

克隆完成后如下图所示

使用LLaMA-Factory框架微调Qwen可参考以下官方教程

LLaMA-Factory - Qwenhttps://qwen.readthedocs.io/zh-cn/latest/training/SFT/llama_factory.html

查看Qwen2模型本地的绝对路径

pwd

此后,启动LLaMA-Factory的web端,在浏览器中进行访问

llamafactory-cli webui

模型选择Qwen2-7B,路径替换为本地的绝对路径,后在Chat标签下加载模型 

模型加载成功后的web页面及命令行如下图所示

此后便可在页面中进行问答,模型成功加载,可以开始进行聊天

 四、GLM-4模型

GLM-4-9B 是智谱 AI 推出的最新一代预训练模型 GLM-4 系列中的开源版本。 在语义、数学、推理、代码和知识等多方面的数据集测评中,GLM-4-9B 及其人类偏好对齐的版本 GLM-4-9B-Chat 均表现出较高的性能。 除了能进行多轮对话,GLM-4-9B-Chat 还具备网页浏览、代码执行、自定义工具调用(Function Call)和长文本推理(支持最大 128K 上下文)等高级功能。 本代模型增加了多语言支持,支持包括日语,韩语,德语在内的 26 种语言。我们还推出了支持 1M 上下文长度(约 200 万中文字符)的模型。详情可访问模型库。

glm-4-9b · 模型库 (modelscope.cn)https://www.modelscope.cn/models/ZhipuAI/glm-4-9b从魔塔社区中克隆模型代码

完成后如下图所示

在原LLM虚拟环境中直接启动会依赖冲突

因此,创建新的虚拟环境GLM

conda create -n GLM python=3.11

创建好之后,克隆GLM-4的源代码,获取requirements.txt文件

git clone https://github.com/THUDM/GLM-4.git

之后,通过requirements.txt文件来更新依赖

pip install -r requirements.txt

将tramsformers的版本更新至4.41.2

pip install --upgrade transformers=4.41.2

此后,在GLM虚拟环境中启动LLaMA-Factory的web端,在浏览器中进行访问

模型加载成功如下图所示 

五、Llama-3模型

 Llama3-8B-Chinese-Chat是一个针对中文和英文用户的指令调整语言模型,具有各种能力,如角色扮演和工具使用,建立在Meta-Llama-3-8B-Instruct模型之上。详情可见该链接。

GitHub - Shenzhi-Wang/Llama3-Chinese-Chat:这是第一个基于 Meta-Llama-3-8B-Instruct 模型,通过 ORPO 专门针对中文进行微调的中文聊天模型。https://github.com/Shenzhi-Wang/Llama3-Chinese-Chat从魔塔社区中克隆模型代码

git clone https://www.modelscope.cn/LLM-Research/Llama3-8B-Chinese-Chat.git

获取模型的绝对路径 

 启动LLaMA-Factory的web端,在浏览器中进行访问

 路径替换为本地的绝对路径,后在Chat标签下加载模型 

 加载成功如下图所示

 可通过网页端与模型进行简单交互,测试其部署效果

同时,可在后台实时查看显卡开销情况

nvidia-smi

小结

至此Qwen2、GLM-4、LLaMA3-8B-Chinese-Chat三个模型成功在本机完成了搭建,下文【04】LLaMA-Factory微调大模型——数据准备,将分析整理微调所用的数据,为后续的微调模型提供高质量、格式规范的数据支撑。欢迎您持续关注,如果本文对您有所帮助,感谢您一键三连,多多支持!

上一篇:与VR融合的LED显示屏


下一篇:如何使用Python调用颜值评分接口