LLaMA - Factory安装部署及微调流程

部署运行你感兴趣的模型镜像

LLaMA - Factory安装部署及微调流程笔记

一、部署前准备

(一)明确依赖环境

  1. 必备依赖

    • Python建议采用3.11版本,该版本在大模型系列中适配性佳,能更好地支持LLaMA - Factory的运行。
    • CUDA可选择12.1或12.2版本。实际使用中,即便下载时Pytorch最高仅对应12.1(显卡最高支持12.2) ,也可正常安装使用。此外,torch、transformers、datasets、accelerate、peft、trl等库也必不可少,各有其最低和推荐版本,安装时务必严格遵循版本要求,否则易出现难以解决的未知问题。
    • 举例来说,若torch版本不符合要求,可能导致模型训练过程中出现计算错误或无法正常调用GPU资源;transformers版本不匹配,可能影响模型的加载和微调功能。
      在这里插入图片描述
  2. 可选依赖

    • deepspeed、bitsandbytes、vllm、flash - attn等属于可选依赖。
      例如deepspeed可减少内存消耗,适用于内存资源有限的情况,但可能会使训练时间拉长。即便不安装这些可选依赖,LLaMA - Factory依然能够完成微调任务。

      在这里插入图片描述

(二)安装NVIDIA显卡驱动

  1. 不同系统的安装方法
    • Ubuntu系统:若本地服务器为Ubuntu系统,可参考《Ch.4在Ubuntu 22.04系统下部署运行ChatGLM3 - 6B模型》中的2.1安装显卡驱动小节,按照其中的详细步骤进行操作。
    • Windows系统:若为Windows操作系统,则需参照《Ch.6在Windows系统下部署运行ChatGLM3 - 6B模型》中的2安装NVIDIA显卡驱动小节来完成安装。
  2. 云服务器的情况:若使用租赁的云服务器,如auto dl等,通常其显卡驱动环境已预设好,无需手动配置。

安装完成后,可通过运行 nvidia - smi 命令来验证是否安装成功(用于实时监控和管理NVIDIA GPU的性能和状态)。若想实现周期性监控,可使用 watch -n 1 nvidia - smi 命令,该命令会每秒刷新一次监控界面,若显示正常且无报错信息,则表明显卡驱动安装成功。
在这里插入图片描述

GPU显示版本号是最高支持 12.2,可以向下兼容。
在这里插入图片描述

(三)安装Anaconda

  1. 依据系统选择教程
    • Ubuntu系统:在Ubuntu系统下,可依据《Ch.4在Ubuntu 22.04系统下部署运行ChatGLM3 - 6B模型》中的2.3安装Anaconda环境小节进行安装,其中包含了详细的安装步骤和注意事项。
    • Windows系统:对于Windows系统,参考《Ch.6在Windows系统下部署运行ChatGLM3 - 6B模型》中的3.2.1方式一:使用Anaconda创建项目依赖环境(推荐)小节,按照指引完成安装。
  2. 安装后的验证操作:安装完成后,通过在命令行输入conda --version来验证Anaconda是否安装成功。若能正常输出版本信息,如conda 24.3.0,则说明Anaconda已成功安装。

二、安装部署步骤

(一)创建虚拟环境

  1. 创建命令:借助Conda包版本工具,为LLaMA - Factory项目创建专门的Python虚拟运行环境。在命令行中输入conda create --name llama_factory python==3.11,该命令会创建一个名为llama_factory的虚拟环境,且指定Python版本为3.11。
  2. 进入虚拟环境:创建完成后,使用conda activate llama_factory命令进入该虚拟环境。此后,所有与LLaMA - Factory相关的安装和操作都将在这个虚拟环境中进行,以避免不同项目之间的依赖冲突。

(二)安装Pytorch

  1. 选择安装命令:根据电脑显卡驱动的CUDA版本,在Pytorch官网(https://pytorch.org/get - started/previous - versions/ )查找适配的安装命令。

    例如,若CUDA版本适配,可使用conda install pytorch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 pytorch-cuda=12.1 -c pytorch -c nvidia命令进行安装。

  2. 安装验证:安装完成后,通过在命令行执行python -c "import torch; print(torch.cuda.is_available())"来验证是否成功安装GPU版本的PyTorch。若输出为True,则表示GPU版本的PyTorch已安装成功且CUDA环境配置正确;若输出为False,则需要重新检查安装过程,可能是安装命令有误、CUDA版本不匹配或其他环境配置问题。

(三)下载项目文件

  1. git克隆方式
    • 安装git软件包:进入LLaMA - Factory的官方Github(https://github.com/hiyouga/LLaMA - Factory ),推荐使用克隆方式下载项目文件。在克隆之前,需要先安装git软件包,在命令行输入sudo apt install git,等待安装完成。
    • 执行克隆命令:安装好git后,执行克隆命令git clone https://github.com/hiyouga/LLaMA-Factory.git,该命令会将项目文件下载至本地当前路径。下载过程中,会显示下载进度信息,如remote: Enumerating objects: 7327, done.等。
  2. 压缩包下载方式:除了git克隆,也可选择下载ZIP压缩包。在Github页面找到下载ZIP压缩包的按钮,下载完成后,将压缩包上传至服务器。若服务器支持直接拖拽上传,则可直接操作;若不支持,可使用rz等工具进行上传。上传完成后,需要安装unzip软件来解压压缩包,在命令行输入sudo apt install unzip。解压完成后,如果文件名带有-main,为了方便后续使用,建议将其重命名为LLaMA - Factory,例如执行mv LLaMA - Factory - main LLaMA - Factory

(四)升级pip版本

  1. 升级原因:在安装项目依赖之前,建议升级pip版本。旧版本的pip可能无法安装一些最新的包,或者在解析依赖关系时出现错误,导致后续安装失败。
  2. 升级命令:升级pip版本的命令为python -m pip install --upgrade pip,执行该命令后,pip会自动下载并安装最新版本。

(五)安装项目依赖

在LLaMA - Factory项目中,requirements.txt文件涵盖了项目运行所需的所有Python包及其基础版本号。借助这个文件,能便捷地一次性安装项目必需的依赖,具体步骤如下:

  1. 进入项目文件夹

    打开命令行工具,通过cd LLaMA - Factory命令进入LLaMA - Factory所在的文件夹。只有处于该文件夹路径下,后续命令才能正确找到对应的文件。

  2. 安装必需依赖

    执行pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/命令。

    (其中,-r requirements.txt表示依据requirements.txt文件来安装依赖;-i https://pypi.tuna.tsinghua.edu.cn/simple/ 指定了清华大学的PyPI镜像源,在网络不佳的情况下,使用该镜像源可加快下载速度,减少安装过程中因网络问题导致的失败风险。)

  3. 安装LLaMA - Factory本身

    运行pip install -e ".[torch,metrics]" -i https://pypi.tuna.tsinghua.edu.cn/simple/命令。该命令不仅会安装LLaMA - Factory,还会在系统中生成llamafactory - cli命令。之后就能通过此命令来执行LLaMA - Factory的相关操作,比如模型训练、推理等。而-i参数同样是为了使用国内镜像源,提升安装效率 。

(六)整体校验

  1. 校验PyTorch安装:在Python环境中执行以下命令来校验PyTorch的安装情况:
import torch
torch.cuda.current_device()
torch.cuda.get_device_name(0)
torch._version_
  • import torch:用于导入PyTorch库,若导入失败,说明PyTorch安装存在问题。
  • torch.cuda.current_device():返回当前选定的CUDA设备索引,如果能正确返回索引值,表明CUDA设备可被PyTorch识别。
  • torch.cuda.get_device_name(0):返回索引为0的CUDA设备名称,若能正常返回设备名称,如'NVIDIA GeForce RTX 3090',则进一步验证了CUDA设备与PyTorch的连接正常。
  • torch._version_:返回当前安装的PyTorch版本,可确认安装的PyTorch版本是否符合预期。若以上命令均无报错,则说明PyTorch安装及相关配置正确。
  1. 校验llamafactory - cli命令:使用llamafactory - cli train -h命令来校验llamafactory - cli命令是否正常工作。该命令会显示训练命令的帮助信息,包含各种训练参数的说明。若执行该命令时报错,提示No module named 'tyro',则需要使用pip install tyro或在conda环境中使用conda install -c conda - forge tyro进行安装。安装完成后,再次执行llamafactory - cli train -h命令进行验证,直至无报错信息。

三、微调Qwen2.5模型

(一)下载模型

  1. 参考教程与命令:参考建元老师开源大模型讲解系列,使用 pip install modelscopemodelscope download --model Qwen/Qwen2.5-1.5B-Instruct命令下载Qwen2.5 - 1.5B - Instruct模型。该命令会从指定的模型库中下载模型文件。
  2. 查找与移动模型文件:下载完成后,如果指定路径下没有找到模型文件,可在默认路径/root/.cache/modelscope/hub/中查找。若在该路径下找到模型文件,为了便于管理和避免磁盘空间问题,可使用mv命令将其移动到期望的路径下。例如,执行mv /root/.cache/modelscope/hub/Qwen /home/util/muyan,将模型文件移动到/home/util/muyan目录下。

(二)验证模型完整性

在这里插入图片描述

  1. 启动对话窗口验证:使用CUDA_VISIBLE_DEVICES=0 llamafactory - cli webchat --model_name_or_path /home/util/muyan/Qwen/Qwen2_5 - 1_5B - Instruct --template qwen命令启动对话窗口来验证模型是否完整。
    • CUDA_VISIBLE_DEVICES=0:指定当前程序使用第0张显卡来启动模型的web服务。
    • model_name_or_path:该参数可指定huggingface或modelscope上的标准模型名称,也可以使用本地下载的绝对路径。在本次验证中,使用的是本地下载模型的绝对路径/home/util/muyan/Qwen/Qwen2_5 - 1_5B - Instruct。若使用–model_name,不采用本地路径指定模型时,模型会默认从 Hugging Face 下载。希望从魔搭社区下载,则需要设置环境变量等操作。若使用–model_path,则需指定本地下载好的模型的绝对路径,以准确调用本地模型。
    • template:指定模型问答时所使用的prompt模板,不同模型需要使用相应的模板。对于Qwen2.5 - 1.5B - Instruct模型,使用qwen模板。模板的选择可参考https://github.com/hiyouga/LLaMA - Factory?tab=readme - ov - file#supported - models,若模板选择错误,可能导致回答结果异常或出现重复生成等问题。
  2. 访问验证:启动成功后,在浏览器中访问http://服务器地址:7860/,其中“服务器地址”需替换为实际启动LLaMA - Factory的服务器地址。进入页面后,选择zh将语言切换为简体中文,在对话窗口中输入问题,如“你好请问你是谁?”,若模型能正常回答且无报错信息,则表明模型下载完整且校验通过。
    在这里插入图片描述

(三)llama_factory常用命令

  1. version:用于显示LLaMA - Factory的版本信息,方便用户了解当前使用的软件版本。
  2. train:执行命令行版本的训练任务,在微调模型时会用到,可根据不同的训练需求设置相应的参数。
  3. chat:进行命令行版本的推理chat,但相比之下,该命令的使用频率不如webchatwebui高,因为后两者提供了更直观的交互界面。
  4. export:负责模型的合并和导出工作,例如将微调后的模型进行合并,以便后续部署或使用。
  5. api:启动API server,为其他应用程序提供接口调用,实现与其他系统的集成。
  6. eval:使用mmlu等标准数据集对模型进行评测,评估模型在不同任务上的性能表现。
  7. webchat:启动前端版本的纯推理chat页面,该页面仅包含对话界面,方便用户与模型进行简单的对话交互。
  8. webui:启动LlamaBoard前端页面,该页面集成了可视化训练、预测、chat、模型合并等多个子页面,功能更为丰富,是实际使用中较为常用的命令。

您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

### 如何部署 LLaMA-Factory 模型或服务 #### 安装依赖环境 为了成功部署 LLaMA-Factory,首先需要准备合适的开发环境并安装必要的依赖项。以下是具体的配置过程: 通过 `git` 命令克隆仓库到本地环境中[^1]: ```bash git clone https://github.com/hiyouga/LLaMA-Factory.git ``` 创建一个新的 Conda 虚拟环境以隔离 Python 的运行时版本,并激活该虚拟环境[^2]: ```bash conda create -n llama_factory python=3.10 conda activate llama_factory ``` 进入项目目录后,安装所需的 Python 库以及额外的度量工具包[^2]: ```bash cd LLaMA-Factory pip install -r requirements.txt pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -e .[metrics] ``` #### 下载预训练模型 在完成环境搭建之后,下载目标的大规模语言模型 (LLM),这是后续微调的基础。具体操作可以参考官方文档中的说明[^1]。 #### 数据集与参数设置 对于微调阶段而言,准备好用于调整的数据集合合理设定超参至关重要。这一步骤通常分为以下几个部分: - **数据获取**: 获取高质量标注语料作为输入源。 - **参数定义**: 明确学习率、批次大小等影响收敛性的关键因素。 - **执行脚本初始化**: 编写或者修改现有的 shell/python 文件来控制流程走向。 当一切就绪以后就可以正式开启训练环节了,在此期间可能还需要监控损失变化趋势以便及时发现问题所在[^1]。 #### 测试优化后的成果质量 经过充分迭代改进得到最终版权重文件之后,可以通过内置接口验证其实际表现效果如何;另外如果希望进一步提升推理效率的话,则考虑引入专门设计用来加速在线预测场景下的框架比如vllm等等[^1]。 最后别忘了整理好整个项目的结构布局并将重要命令封装成易于重复使用的批处理程序方便日后维护管理[^1]。 ```python # 示例:导出模型为 HuggingFace 格式 from transformers import AutoTokenizer, AutoModelForCausalLM model_path = "./path/to/fine-tuned-model" tokenizer = AutoTokenizer.from_pretrained(model_path) model = AutoModelForCausalLM.from_pretrained(model_path) output_dir = "./exported_model/" tokenizer.save_pretrained(output_dir) model.save_pretrained(output_dir) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值