目录
[1 代码下载](#1 代码下载)
[2 模型下载](#2 模型下载)
[3 conda 环境安装](#3 conda 环境安装)
[4 安装依赖包](#4 安装依赖包)
[5 安装cuda 121版本](#5 安装cuda 121版本)
[6 安装pytorch](#6 安装pytorch)
[7 模型测试](#7 模型测试)
[Ⅱ 模型加载](#Ⅱ 模型加载)
[Ⅲ 模型使用](#Ⅲ 模型使用)
[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代码后,下拉模型是至关重要的一步,这个模型的作用主要体现在以下几个方面:
一、模型的作用
- 预训练基础:
-
- 下拉的模型通常是已经经过大规模数据预训练的,具备了一定的语言理解和生成能力。
- 这些预训练模型可以作为微调的基础,通过针对特定任务或领域的数据进行微调,进一步提升模型的性能。
- 定制化需求:
-
- 不同的应用场景和任务可能需要不同的语言模型。
- 通过下拉并选择适合的预训练模型,开发者可以根据实际需求进行定制化训练,以满足特定任务或领域的需求。
- 提升效率:
-
- 使用预训练模型进行微调相比从头开始训练新模型,可以大大节省时间和计算资源。
- 预训练模型已经学习到了大量的语言知识和模式,微调过程只需要在这些基础上进行微调即可,从而提高了训练效率。
二、为何需要下拉模型
- 模型多样性:
-
- LLaMA-Factory支持多种大型语言模型,包括但不限于LLaMA、BLOOM、Mistral等。
- 通过下拉选择,开发者可以根据实际需求选择最适合的模型进行微调。
- 便捷性:
-
- LLaMA-Factory提供了简洁明了的操作界面和丰富的文档支持。
- 下拉模型的操作简单方便,开发者可以轻松上手并快速实现模型的微调与优化。
- 更新与维护:
-
- 随着技术的不断进步和模型的持续更新,下拉模型可以确保开发者使用的是最新版本的模型。
- 这有助于开发者保持与最新技术的同步,并充分利用新技术带来的性能提升和优势。
综上所述,下拉模型在LLaMA-Factory中扮演着至关重要的角色。它不仅提供了预训练的基础,还满足了定制化需求,并提高了训练效率。同时,通过下拉选择模型,开发者可以轻松上手并快速实现模型的微调与优化。
3 conda 环境安装
至于为什么安装conda?如下
在本地配置LLaMA-Factory时,选择配置conda环境主要基于以下几个原因:
一、环境隔离与管理
- 环境隔离:
-
- conda环境允许用户为不同的项目或任务创建独立的虚拟环境。这样,每个项目都可以有自己的Python版本、依赖库和配置,而不会相互干扰。
- 在配置LLaMA-Factory时,使用conda环境可以确保该项目的依赖与其他项目或系统级的Python环境隔离,从而避免潜在的冲突。
- 依赖管理:
-
- conda是一个强大的包管理器,它可以轻松地安装、更新和卸载Python包及其依赖项。
- 使用conda环境,用户可以轻松地管理LLaMA-Factory所需的依赖库,如PyTorch、Gradio等,而无需担心这些库与其他项目或系统级Python环境的兼容性问题。
二、简化安装与配置
- 一键安装:
-
- conda提供了丰富的预编译包(conda packages),这些包已经过测试和验证,可以确保在用户的系统上稳定运行。
- 通过conda环境,用户可以一键安装LLaMA-Factory及其所有依赖项,而无需手动下载和编译源代码,从而大大简化了安装过程。
- 自动配置:
-
- conda环境可以自动处理许多配置问题,如环境变量设置、库路径等。
- 这使得用户无需手动配置这些复杂的设置,即可轻松运行LLaMA-Factory。
三、提升性能与兼容性
- 性能优化:
-
- conda环境允许用户为不同的项目选择最优的Python版本和依赖库版本,从而可能提升项目的性能。
- 此外,conda还提供了许多性能优化工具,如conda-forge等,可以帮助用户进一步优化项目的性能。
- 兼容性保障:
-
- 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通常包括以下几个步骤:
- 检查CUDA版本:首先,需要确定系统中安装的CUDA版本,以确保选择与之兼容的PyTorch版本。
- 下载并安装PyTorch:根据CUDA版本,从PyTorch官网获取相应的安装命令,并在终端中执行该命令以安装PyTorch。
- 验证安装:安装完成后,可以通过运行简单的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上,以便与其他人共享和使用。
导出的模型如下图:
卸载模型,换为我们自己的模型
模型测试,以框中的问答为预期
结果:
显然,标准模式是可以的
同义词替换也是可以的,训练集中并没有"你能做啥?",只有"你能做什么?"