为了构建法律领域的垂直应用大模型,记录使用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踩坑-CSDN博客https://blog.csdn.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微调大模型——数据准备,将分析整理微调所用的数据,为后续的微调模型提供高质量、格式规范的数据支撑。欢迎您持续关注,如果本文对您有所帮助,感谢您一键三连,多多支持!
总结
这篇文章详细介绍了如何在本地使用LLaMA-Factory框架进行法律领域垂直应用大模型的搭建与基础模型部署过程,旨在提供可复现的步骤和方法,帮助用户构建自己的法律领域模型。以下是文章的关键内容总结:1. **基础模型选择**:介绍了LLaMA-Factory框架支持的多种主流开源大模型,包括Qwen2、GLM-4、LLaMA3-8B-Chinese-Chat等,并确定本文主要部署这三个模型进行实验。
2. **准备阶段**:
- 在LLaMA-Factory文件下新建文件夹存放模型文件。
- 更换pypi源为清华镜像或其他国内镜像源,以加速库的安装。
- 安装必要的代码库,如deepspeed和flash-attn(注意flash-attn可能存在的安装问题及其解决方案)。
- 安装git-lfs(Git Large File Storage),用于管理Git存储库中的大文件。
3. **模型部署**:
- **Qwen2模型**:从模型库克隆Qwen2代码,使用LLaMA-Factory框架的web端加载并运行模型,进行基础问答测试。
- **GLM-4模型**:克隆GLM-4的源代码,创建并激活新的虚拟环境,更新依赖项,并在GLM虚拟环境中启动LLaMA-Factory的web端,加载模型进行测试。
- **LLaMA3-8B-Chinese-Chat模型**:从魔塔社区中克隆模型代码,获取模型绝对路径后,在LLaMA-Factory的web端加载和运行模型,进行测试与交互。
4. **模型加载与测试**:描述了如何在LLaMA-Factory的web界面中选择并加载模型,通过浏览器进行访问,并在部署完成后通过问答测试模型的功能及效果。
5. **监控与调试**:在模型运行过程中,可使用nvidia-smi命令查看显卡开销,确保资源有效利用并监控模型运行状态。
6. **后续计划**:提示读者本文为构建法律领域垂直应用大模型的系列文章之一,后续将进行数据准备工作,为后续模型微调提供高质量数据。
通过这篇文章,读者可了解到从选择模型、安装依赖、模型部署到测试与监控的完整流程,为构建自己领域的AI模型提供实践指导和参考。