问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

在Windows系统上配置LLaMA-Factory框架:从环境搭建到模型微调

创作时间:
作者:
@小白创作中心

在Windows系统上配置LLaMA-Factory框架:从环境搭建到模型微调

引用
CSDN
1.
https://blog.csdn.net/qq_53690996/article/details/143186637

LLaMA-Factory是一个低代码的大规模语言模型(LLM)训练框架,主要面向研究人员和开发者,旨在简化大型语言模型的微调、评估和部署过程。本文将详细介绍如何在Windows操作系统上配置LLaMA-Factory框架,包括环境搭建、模型下载、依赖安装以及模型测试和微调等步骤。

序言

在LLaMA-Factory框架中,环境配置包括PyTorch、CUDA、Python以及相应模型的安装,各自扮演了至关重要的角色。以下是对这些组件在LLaMA-Factory框架中作用的详细阐述:

  • PyTorch:PyTorch是一个开源的机器学习库,它基于Python,并提供了丰富的工具和接口,使得开发者能够方便地构建和训练神经网络模型。在LLaMA-Factory框架中,PyTorch是核心的计算引擎,负责执行模型的训练和推理任务。

  • CUDA:CUDA是NVIDIA推出的一种并行计算平台和编程接口,它允许开发者利用NVIDIA的GPU进行高性能计算。在LLaMA-Factory框架中,CUDA是加速模型训练和推理的关键技术。

  • Python:Python是一种高级编程语言,具有简单易学、语法清晰、功能强大等特点。在LLaMA-Factory框架中,Python是主要的编程语言,用于编写模型训练、推理和部署的代码。

  • 相应模型:在LLaMA-Factory框架中,模型是训练和推理的核心对象。这些模型通常是预训练的,具有强大的语言理解和生成能力。通过微调这些模型,开发者可以使其适应特定的应用场景。

综上所述,PyTorch、CUDA、Python以及相应模型在LLaMA-Factory框架中各自扮演了重要的角色,共同支持了模型的高效训练和推理。这些组件的协同工作使得LLaMA-Factory框架能够为用户提供强大且灵活的大模型定制和开发能力。

1 代码下载

要开始使用LLaMA-Factory,首先需要从GitHub上下载其源代码。以下是代码下载的步骤:

  1. 打开终端或命令行界面。
  2. 使用以下命令克隆LLaMA-Factory的仓库:
git clone https://github.com/hiyouga/LLaMA-Factory.git
  1. 克隆完成后,将代码解压到你希望存放的文件夹中。

2 模型下载

在配置LLaMA-Factory时,需要下载相应的预训练模型。以下是模型下载的两种方式:

2.1 Git下载

你可以使用Git直接从魔搭社区下载模型。但是,这种方法可能会遇到一些大文件无法拉取的问题。

2.2 命令行下载

推荐使用命令行下载模型。你可以选择Qwen、Meta-Llama-3-8B-Instruc等模型。以下是下载命令示例:

wget https://example.com/path/to/model

作为一个初学者,你可能会有一个疑问:为什么在已经是一个大模型语言训练框架的情况下,还需要拉取模型呢?

一、模型的作用

  1. 预训练基础
  • 下载的模型通常是已经经过大规模数据预训练的,具备了一定的语言理解和生成能力。
  • 这些预训练模型可以作为微调的基础,通过针对特定任务或领域的数据进行微调,进一步提升模型的性能。
  1. 定制化需求
  • 不同的应用场景和任务可能需要不同的语言模型。
  • 通过下拉并选择适合的预训练模型,开发者可以根据实际需求进行定制化训练,以满足特定任务或领域的需求。
  1. 提升效率
  • 使用预训练模型进行微调相比从头开始训练新模型,可以大大节省时间和计算资源。
  • 预训练模型已经学习到了大量的语言知识和模式,微调过程只需要在这些基础上进行微调即可,从而提高了训练效率。

二、为何需要下拉模型

  1. 模型多样性
  • LLaMA-Factory支持多种大型语言模型,包括但不限于LLaMA、BLOOM、Mistral等。
  • 通过下拉选择,开发者可以根据实际需求选择最适合的模型进行微调。
  1. 便捷性
  • LLaMA-Factory提供了简洁明了的操作界面和丰富的文档支持。
  • 下拉模型的操作简单方便,开发者可以轻松上手并快速实现模型的微调与优化。
  1. 更新与维护
  • 随着技术的不断进步和模型的持续更新,下拉模型可以确保开发者使用的是最新版本的模型。
  • 这有助于开发者保持与最新技术的同步,并充分利用新技术带来的性能提升和优势。

综上所述,下拉模型在LLaMA-Factory中扮演着至关重要的角色。它不仅提供了预训练的基础,还满足了定制化需求,并提高了训练效率。同时,通过下拉选择模型,开发者可以轻松上手并快速实现模型的微调与优化。

3 conda 环境安装

在本地配置LLaMA-Factory时,选择配置conda环境主要基于以下几个原因:

一、环境隔离与管理

  1. 环境隔离
  • conda环境允许用户为不同的项目或任务创建独立的虚拟环境。这样,每个项目都可以有自己的Python版本、依赖库和配置,而不会相互干扰。
  • 在配置LLaMA-Factory时,使用conda环境可以确保该项目的依赖与其他项目或系统级的Python环境隔离,从而避免潜在的冲突。
  1. 依赖管理
  • conda是一个强大的包管理器,它可以轻松地安装、更新和卸载Python包及其依赖项。
  • 使用conda环境,用户可以轻松地管理LLaMA-Factory所需的依赖库,如PyTorch、Gradio等,而无需担心这些库与其他项目或系统级Python环境的兼容性问题。

二、简化安装与配置

  1. 一键安装
  • conda提供了丰富的预编译包(conda packages),这些包已经过测试和验证,可以确保在用户的系统上稳定运行。
  • 通过conda环境,用户可以一键安装LLaMA-Factory及其所有依赖项,而无需手动下载和编译源代码,从而大大简化了安装过程。
  1. 自动配置
  • conda环境可以自动处理许多配置问题,如环境变量设置、库路径等。
  • 这使得用户无需手动配置这些复杂的设置,即可轻松运行LLaMA-Factory。

三、提升性能与兼容性

  1. 性能优化
  • conda环境允许用户为不同的项目选择最优的Python版本和依赖库版本,从而可能提升项目的性能。
  • 此外,conda还提供了许多性能优化工具,如conda-forge等,可以帮助用户进一步优化项目的性能。
  1. 兼容性保障
  • conda环境可以确保LLaMA-Factory在不同的操作系统和硬件平台上稳定运行。
  • 通过conda环境,用户可以轻松地解决因操作系统或硬件差异而导致的兼容性问题。

综上所述,配置conda环境可以为用户在本地配置LLaMA-Factory时提供诸多便利和优势。它不仅有助于环境隔离与管理、简化安装与配置过程,还可以提升项目的性能和兼容性。因此,在配置LLaMA-Factory时,选择使用conda环境是一个明智的选择。

初始化

conda create -n llama_factory python=3.10

激活环境

conda activate llama_factory

这个时候要重启,不然切换环境不生效。

4 安装依赖包

llama_factory 环境下进入LLaMA项目目录,运行以下命令安装依赖包:

pip install -e .[metrics,modelscope,qwen]

5 安装cuda 12.1版本

要安装CUDA 12.1版本,可以访问以下链接:

安装完成后,需要增加环境变量(这一步可能安装包已经帮你完成,你可以检查一下,如果已经有环境变量了,就不要更改了)。重启电脑后,输入以下命令检查是否安装成功:

nvcc -V

如果显示如下信息,则表示安装成功:

6 安装pytorch

要安装PyTorch,可以访问以下链接:

注意:在下载时需要根据你的CUDA版本和Python版本选择正确的whl文件。例如,如果你的CUDA版本是12.1,Python版本是3.12,操作系统是Windows,可以使用以下命令进行安装:

pip install ".\torch-2.2.1+cu121-cp312-cp312-win_amd64.whl" --user
pip install tensorboard

一、PyTorch与LLaMA-Factory的兼容性

LLaMA-Factory是一个易于使用的LLM(大型语言模型)微调框架,它支持多种模型,如LLaMA、BLOOM、Mistral等。为了高效地进行模型训练和微调,LLaMA-Factory依赖于PyTorch这一深度学习框架。PyTorch提供了丰富的API和工具,使得LLaMA-Factory能够方便地实现模型的加载、训练、推理等功能。

二、PyTorch的GPU加速能力

LLaMA-Factory在进行模型训练和微调时,需要处理大量的数据和计算任务。PyTorch支持CUDA,可以利用NVIDIA的GPU进行高效的并行计算,从而大大加速模型的训练和推理过程。在配置LLaMA-Factory时,安装与CUDA版本兼容的PyTorch是至关重要的,以确保能够充分利用GPU的加速能力。

三、PyTorch的社区支持和生态系统

PyTorch拥有一个庞大的社区和丰富的生态系统,这意味着在使用LLaMA-Factory时,如果遇到问题或需要额外的功能,可以很容易地找到相关的解决方案或库。此外,PyTorch的文档和教程也非常完善,有助于用户更快地熟悉和掌握LLaMA-Factory的使用方法。

四、安装PyTorch的步骤

在本地配置LLaMA-Factory时,安装PyTorch通常包括以下几个步骤:

  1. 检查CUDA版本:首先,需要确定系统中安装的CUDA版本,以确保选择与之兼容的PyTorch版本。
  2. 下载并安装PyTorch:根据CUDA版本,从PyTorch官网获取相应的安装命令,并在终端中执行该命令以安装PyTorch。
  3. 验证安装:安装完成后,可以通过运行简单的PyTorch代码来验证安装是否成功。例如,可以检查PyTorch是否能够正确识别和利用GPU资源。

综上所述,安装PyTorch是在本地配置LLaMA-Factory时的一个必要步骤,它确保了LLaMA-Factory能够高效地利用GPU资源进行模型训练和微调,并提供了丰富的社区支持和生态系统。

7 模型测试

Ⅰ启动webui

  1. 使用VS Code打开LLaMA-Factory项目。
  2. 切换到配置好的conda环境中:
conda activate llama_factory
  1. 设置环境变量:
set USE_MODELSCOPE_HUB=1
  1. 启动UI界面:
python src/webui.py

Ⅱ 模型加载

  1. 导入模型
  2. 选择对应的模型名字和自己模型的地址
  3. 加载模型

Ⅲ 模型使用

  1. 选择chat模式
  2. 输入问题:
若干只鸡和兔子关在同一个笼子里,从上边数,有35个头,从下边数,有94只脚,问,鸡和兔子各有几只
  1. 查看结果:

8 模型微调:中文增强

Ⅰ数据集

LLaMA-Factory自带了一些数据集,不需要额外准备。

Ⅱ 配置

  1. 选择与测试相同的模型
  2. 选择LoRA微调
  3. 模式为训练模式
  4. 数据集选择为alpaca_gpt4_zh
  5. 数据集的样式如下:

  1. 更改设置,将序列长度改为512,主要是因为个人硬件可能无法承受更大的序列长度。

Ⅲ 训练结果

由于个人电脑显卡性能限制,训练过程中可能会出现显存溢出的情况。如果遇到这种情况,可以考虑使用云服务或更高配置的硬件进行训练。

模型导出参数说明

在训练完成后,导出模型时需要关注以下几个关键参数:

  1. MAX shard size:这个参数定义了模型分片(shard)的最大大小。在导出大型模型时,由于内存或存储限制,模型可能需要被分割成多个较小的部分(即分片)进行存储和处理。通过设置MAX shard size,用户可以控制每个分片的大小,以确保它们能够适配到目标存储或计算环境中。

  2. Export quantization bit:此参数用于指定模型导出时量化的位数。量化是一种减少模型大小和加速推理速度的技术,它通过将模型参数从较高的精度(如32位浮点数)降低到较低的精度(如8位整数)来实现。通过设置Export quantization bit,用户可以控制量化的粒度,从而影响模型的压缩率和性能。

  3. Export quantization dataset:这个参数指定了一个数据集,用于在导出模型时执行量化操作。在量化过程中,模型会使用这个数据集进行校准,以确保量化后的模型在推理时具有足够的准确性。选择适当的量化数据集对于获得良好的量化效果至关重要。

  4. Export device:此参数指定了模型导出时所使用的设备。在分布式或并行计算环境中,模型可以在不同的设备上(如CPU、GPU或TPU)进行导出。通过设置Export device,用户可以指定在哪个设备上执行导出操作,以充分利用可用的计算资源。

  5. Export dir:这个参数定义了模型导出时的目标目录。在导出模型时,用户需要指定一个存储位置来保存导出的模型文件。通过设置Export dir,用户可以控制模型文件的存储路径和文件名,以便于后续的管理和使用。

  6. HF Hub ID:此参数与Hugging Face Hub相关,它指定了一个唯一的标识符(ID),用于将导出的模型上传到Hugging Face Hub上。Hugging Face Hub是一个流行的机器学习模型库,用户可以在其中共享和下载模型。通过设置HF Hub ID,用户可以轻松地将自己的模型上传到Hugging Face Hub上,以便与其他人共享和使用。

导出的模型

模型测试

  1. 卸载模型,换为我们自己的模型
  2. 模型测试,以框中的问答为预期

测试结果表明:

  • 标准模式是可以的
  • 同义词替换也是可以的,训练集中并没有“你能做啥?”,只有“你能做什么?”

这说明经过微调的模型在处理类似问题时具有较好的泛化能力。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号