为了构建法律领域的垂直应用大模型,记录使用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微调大模型——数据准备,将分析整理微调所用的数据,为后续的微调模型提供高质量、格式规范的数据支撑。欢迎您持续关注,如果本文对您有所帮助,感谢您一键三连,多多支持!