突破模型训练瓶颈:LLaMA-Factory 使用指南

LLaMA-Factory 简介

LLaMA-Factory 是一个强大的深度学习模型训练和微调平台,支持多种先进的语言模型,如 LLaMA、LLaVA、Mistral、ChatGLM 等。该工具不仅支持传统的语言模型训练,还集成了多种前沿技术和算法,旨在帮助开发者高效构建和优化模型。

主要特性
  • 多样化模型支持:可以训练的模型包括 Baichuan、BLOOM、ChatGLM3、Llama 以及更多主流和新兴模型,覆盖从小型到超大规模的多种选择。
  • 集成方法:支持持续预训练、多模态监督微调、奖励建模等多种训练方法,为模型的提升提供灵活选择。
  • 可扩展资源:提供 16-bit 完全微调、冻结微调、LoRA 等多种调优方式,兼容 QLoRA 的多种比特位选项。
  • 先进算法:实现了 GaLore、BAdaM、LongLoRA 等优化算法,提升训练效率和效果。
  • 实用技巧:集成 FlashAttention-2、Liger Kernel 等技术,显著加速训练过程。
  • 实验监控:通过 LlamaBoard、TensorBoard、Wandb 和 MLflow 等工具,实时监控实验进展。
  • 快速推理:提供 OpenAI 风格的 API、Gradio UI 和 CLI,结合 vLLM worker 提高推理速度。

安装 LLaMA-Factory

要安装 LLaMA-Factory,请按照以下步骤操作:

  1. 克隆源码:使用 Git 克隆 LLaMA-Factory 的最新版本。
  2. 创建 Conda 环境:创建一个新的 Conda 环境,以确保项目依赖不会与其他项目冲突。
  3. 激活环境:激活刚创建的 Conda 环境。
  4. 进入项目目录:切换到 LLaMA-Factory 项目的目录。
  5. 安装依赖:安装项目所需的依赖项,包括 PyTorch 和其他必要的库。
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
conda create -n llama_factory python=3.10
conda activate llama_factory
cd LLaMA-Factory
pip install -e ".[torch,metrics,qwen]" -i https://mirrors.aliyun.com/pypi/simple/


#清华大学镜像:https://pypi.tuna.tsinghua.edu.cn/simple
#阿里云镜像:https://mirrors.aliyun.com/pypi/simple/
可用的额外依赖项

LLaMA-Factory 还支持多种额外依赖项,以扩展其功能和性能:

  • torch:PyTorch库,用于深度学习和张量计算。
  • torch-npu:华为Ascend NPU的PyTorch扩展,优化深度学习训练。
  • metrics:用于评估模型性能的库。
  • deepspeed:用于大规模模型训练的优化库。
  • liger-kernel:高性能计算内核,用于加速训练过程。
  • bitsandbytes:用于模型量化和内存管理的库。
  • hqq:特定工具,具体用途需确认。
  • eetq:特定模型优化或训练工具,具体信息需查找。
  • gptq:量化GPT模型的工具。
  • awq:特定量化方法或工具,具体信息需确认。
  • aqlm:针对量化语言模型的库。
  • vllm:优化大规模语言模型推理的库。
  • galore:与模型训练、优化或数据处理相关的工具。
  • badam:特定的优化算法或框架,具体信息需查找。
  • adam-mini:Adam优化算法的简化版本。
  • qwen:特定模型或优化工具。
  • modelscope:提供预训练模型和框架的库。
  • openmind:与开源深度学习框架或工具集相关。
  • quality:用于评估模型质量的工具或库。
防火墙配置与启动微调

在使用 LLaMA-Factory 进行微调时,确保防火墙开放 7860 端口,以便访问 GUI 界面。可以使用以下命令进行配置:

# 7860是LLaMA Board GUI的端口,需要开放
sudo firewall-cmd --zone=public --add-port=7860/tcp --permanent
sudo firewall-cmd --reload

# 启动微调
llamafactory-cli webui

 LLaMA-Factory微调模型

在成功安装 LLaMA-Factory 后,就可以通过 LLaMA Board GUI 进行模型微调。以下是微调的基本过程以及配置说明:

  • 选择模型: 在 GUI 中,选择要微调的模型。LLaMA-Factory 支持多种模型,可以根据需求选择相应的模型。

  • 配置微调参数: 在微调界面中,可以设置多种参数,常见的配置包括:

    • 学习率(Learning Rate):设置模型更新的步长,通常建议从较小的值开始,例如 1e-5,根据实际情况逐步调整。
    • 批次大小(Batch Size):选择每次训练迭代的数据量。较大的批次大小可能需要更多的显存,建议从小值开始,如 816
    • 训练轮次(Epochs):设置微调的轮次,根据数据集大小和模型复杂性选择合适的轮次,通常为 310
    • 优化器(Optimizer):选择用于训练的优化算法,如 Adam、SGD 等。
  • 数据集准备: 上传或指定用于微调的数据集。数据集应经过适当格式化,确保与选定模型的输入要求相匹配。

  • 监控与日志: 在微调过程中,可以通过 GUI 实时监控训练进度,查看损失函数(Loss)、准确率(Accuracy)等指标。可以将训练日志导出,便于后续分析。

  • 保存与导出模型: 微调完成后,用户可以选择将训练好的模型保存到指定目录:

    • 在 GUI 中找到“保存模型”或“导出模型”的选项。
    • 选择保存路径,并命名模型文件。
    • 确认导出设置后,点击“保存”按钮,完成导出。

        确保记录微调的参数,以便在未来进行复现。

  • 模型评估: 微调后,使用测试集对模型进行评估,查看模型性能,并根据需要进行进一步调整。

模型对话验证 

加载训练后的模型进行对话验证:

遇到的问题

问题1OSError: We couldn't connect to 'https://huggingface.co' to load this file
原因:无法连接到 Hugging Face 网站,且找不到缓存文件,导致无法加载模型配置。该网站需要翻墙。
解决方案:使用本地模型替代,运行以下命令克隆模型:

git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git

问题2:在过程中由于服务器只装了NVIDIA 驱动,却未安装CUDA,导致异常出现。
解决方案:运行 nvidia-smi 检查版本,若需要下载 CUDA Toolkit,执行以下命令进行安装:

cuda历史版本下载地址:https://developer.nvidia.com/cuda-toolkit-archive

sudo rpm --install https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda-repo-rhel7-12-4-local-12.4.0_550.54.14-1.x86_64.rpm

# 安装CUDA Toolkit更新仓库并安装CUDA:
sudo yum clean expire-cache
sudo yum install cuda

#设置环境变量,安装完成后,添加CUDA的路径到环境变量中。编辑~/.bashrc或~/.bash_profile文件,添加以下行:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

# 然后使改动生效:
source ~/.bashrc

#重启计算机后,验证CUDA是否安装成功:
nvcc --version

问题3TypeError: GenerationMixin._extract_past_from_model_output() got an unexpected keyword argument 'standardize_cache_format'
原因:所用的模型(如 ChatGLM3-6B)与当前的 Transformers 库版本不兼容。
解决方案:降级 Transformers 库到 4.41.2,运行以下命令: 

pip install transformers==4.41.2 -i https://mirrors.aliyun.com/pypi/simple/

参考官方资源

### 如何部署微调服务器以运行 LLaMA-Factory #### 创建并激活 Conda 虚拟环境 为了确保开发环境中软件包的一致性和兼容性,建议创建一个新的 Python 环境来安装和管理所需的库文件。命令如下所示: ```bash conda create -n llama_factory python=3.10 conda activate llama_factory ``` 这会建立名为 `llama_factory` 的新环境,并将其激活以便后续操作[^1]。 #### 安装必要的依赖项 一旦虚拟环境被激活之后,下一步就是要按照官方文档中的指导完成对项目所需的各种依赖关系的设置工作。通常情况下,这些依赖会被记录在一个叫做 requirements.txt 或 environment.yml 文件里。对于特定版本控制工具而言,则可能还需要额外执行一些初始化步骤。 #### 准备训练数据集 当所有的前期准备工作都完成后,就需要准备好用于训练的数据集合。如果是以增强 GLM-4-9B-Chat 模型处理脑筋急转弯的能力为目标的话,那么就应该收集大量与此主题相关的对话样本作为输入材料[^2]。 #### 更新系统与安装最新版 Ollama 针对基于 CentOS 或 RHEL 发行版的操作系统来说,在正式开始之前最好先更新整个系统的状态至最新稳定版本;同时也要确认已经获取到了最新的 ollama 组件。可以通过下面这条指令实现这一目的: ```bash sudo yum update ollama ``` 另外一种方式则是利用专门提供的 shell script 来简化这个流程[^3]。 #### 使用 LLaMA Board GUI 微调模型 最后一步就是在成功搭建好上述所有组件的基础上启动图形界面应用程序——LLaMA Board GUI ,它能够帮助用户更加直观便捷地调整参数设定从而优化目标神经网络的表现效果。具体可参照《突破模型训练瓶颈LLaMA-Factory 使用指南》一文中给出更详细的介绍[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值