【LLaMA-Factory】【Windows】:在windows操作系统配置大模型微调框架LLaMA-Factory

目录

序言

[1 代码下载](#1 代码下载)

[2 模型下载](#2 模型下载)

一、模型的作用

二、为何需要下拉模型

[3 conda 环境安装](#3 conda 环境安装)

一、环境隔离与管理

二、简化安装与配置

三、提升性能与兼容性

[4 安装依赖包](#4 安装依赖包)

[5 安装cuda 121版本](#5 安装cuda 121版本)

[6 安装pytorch](#6 安装pytorch)

一、PyTorch与LLaMA-Factory的兼容性

二、PyTorch的GPU加速能力

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

四、安装PyTorch的步骤

[7 模型测试](#7 模型测试)

Ⅰ启动webui

[Ⅱ 模型加载](#Ⅱ 模型加载)

[Ⅲ 模型使用](#Ⅲ 模型使用)

[8 模型微调:中文增强](#8 模型微调:中文增强)

Ⅰ数据集

[Ⅱ 配置](#Ⅱ 配置)

[Ⅲ 训练结果](#Ⅲ 训练结果)


序言

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

PyTorch

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

应用:开发者利用PyTorch定义模型结构、损失函数和优化器,并通过PyTorch提供的API进行模型的前向传播、损失计算、反向传播和参数更新。

CUDA

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

应用:通过CUDA,LLaMA-Factory能够利用GPU的并行计算能力,显著加快模型的训练和推理速度。此外,CUDA还提供了丰富的数学库和内存管理功能,进一步优化了模型的性能。

Python

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

应用:开发者使用Python编写脚本,调用PyTorch和CUDA提供的API,实现模型的构建、训练和推理。此外,Python还提供了丰富的库和工具,如NumPy、Pandas等,进一步简化了数据处理和模型评估的流程。

相应模型

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

应用:开发者从Hugging Face等平台下载所需的预训练模型,并在LLaMA-Factory框架中进行微调。微调过程中,开发者可以根据具体任务调整模型的参数和配置,以优化模型的性能。微调后的模型可以用于各种自然语言处理任务,如文本生成、问答系统、情感分析等。

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

1 代码下载

https://github.com/hiyouga/LLaMA-Factory

下载后解压到对应文件夹

2 模型下载

下面两种方式二选一 推荐使用第二种方式

我下载了两个模型一个是Qwen 一个是Meta-Llama-3-8B-Instruc

2.1 git下载

git clone 魔搭社区

有几个很大的文件拉取不下来,直接下载

2.2 命令行下载

也可以选择其他模型

作为一个初学者我这里有一个以后,就是在我看来LLaMA-Factory 已经是一个大模型语言训练框架了,为什么还要拉取模型呢?

LLaMA-Factory是一个低代码的大规模语言模型(LLM)训练框架,主要面向研究人员和开发者,旨在简化大型语言模型的微调、评估和部署过程。在下载LLaMA-Factory代码后,下拉模型是至关重要的一步,这个模型的作用主要体现在以下几个方面:

一、模型的作用

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

二、为何需要下拉模型

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

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

3 conda 环境安装

至于为什么安装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环境是一个明智的选择。

初始化

激活环境

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

4 安装依赖包

在 llama_fama_factory环境下 进入LLaMA项目,

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

5 安装cuda 121版本

https://developer.nvidia.com/cuda-12-1-1-download-archive

'

增加环境变量(这一步可能安装包给你做了,你可以看一下,如果已经有环境变量了,就不要更改了)

重启电脑

输入 nvcc -V

显示如下则安装成功

6 安装pytorch

https://download.pytorch.org/whl/torch_stable.html

注意后面121是你的cuda版本,312是你的python版本,win是操作系统

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

pip install tensorboard

至于为什么使用pytorch?

在本地配置LLaMA-Factory时,安装PyTorch是一个关键步骤,原因主要有以下几点:

一、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

使用vccode打开LLaMA-Factory项目

切换到我们配置好的环境下

conda activate llama_factory

设置环境变量

set USE_MODELSCOPE_HUB=1

启动ui界面

python src/webui.py

界面

Ⅱ 模型加载

导入模型

选择对应的模型名字和自己模型的地址如下图

加载模型

Ⅲ 模型使用

选择chat模式

问题:若干只鸡和兔子关在同一个笼子里,从上边数,有35个头,从下边数,有94只脚,问,鸡和兔子各有几只

结果 如下 会比较慢

8 模型微调:中文增强

Ⅰ数据集

自带的数据集,不需要准备

Ⅱ 配置

选择跟测试相同的模型

选择lora微调

模式为训练模式

数据集选择为alpaca_gpt4_zh

数据集的样式如下

更改设置,改为512,主要是咱们的硬件扛不住

点击开始训练

启动之后如果连接超时数据集拉取不下来,就上社区自己拉取

魔搭社区

将json 文件放入到项目的data目录下

修改dataset_info.json文件

如下图

数据集名字为dataset_info.json的名字,然后开始训练

Ⅲ 训练结果

因为个人电脑显卡扛不住,我运行之后溢出了。

下面说明一下模型合并,我是autoDL线上组的显卡跑的

详细导出参数:

MAX shard size

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

Export quantization bit

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

Export quantization dataset

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

Export device

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

Export dir

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

HF Hub ID

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

导出的模型如下图:

卸载模型,换为我们自己的模型

模型测试,以框中的问答为预期

结果:

显然,标准模式是可以的

同义词替换也是可以的,训练集中并没有"你能做啥?",只有"你能做什么?"

相关推荐
MJ绘画中文版3 分钟前
灵动AI:艺术与科技的融合
人工智能·ai·ai视频
zyhomepage8 分钟前
科技的成就(六十四)
开发语言·人工智能·科技·算法·内容运营
想做白天梦27 分钟前
多级反馈队列
java·windows·算法
挽安学长42 分钟前
油猴脚本-GPT问题导航侧边栏增强版
人工智能·chatgpt
戴着眼镜看不清1 小时前
国内对接使用GPT解决方案——API中转
人工智能·gpt·claude·通义千问·api中转
YRr YRr1 小时前
深度学习:正则化(Regularization)详细解释
人工智能·深度学习
YRr YRr1 小时前
长短期记忆网络(LSTM)如何在连续的时间步骤中处理信息
人工智能·rnn·lstm
铁盒薄荷糖1 小时前
【Pytorch】Pytorch的安装
人工智能·pytorch·python
五月君1 小时前
微软结合 JS + AI 搞了个全新脚本语言:带你感受下代码和自然语言的融合!
javascript·人工智能·aigc
yyfhq1 小时前
rescorediff
python·深度学习·机器学习