【学习笔记1】一站式大语言模型微调框架LLaMA-Factory

学习地址:https://llamafactory.cn/

学习文档:https://llamafactory.readthedocs.io/en/latest/getting_started/installation.html

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


图片

LLaMA-Factory(Large Language Model Factory)是一个开源的、专注于大型语言模型(LLM)微调与部署的框架,由北航团队开发并维护。它通过提供低代码操作界面、丰富的算法支持以及硬件优化技术,显著降低了大模型定制化开发的技术门槛,广泛应用于智能客服、医疗诊断、法律助手等场景。

1. 核心功能与技术亮点

  1. 多模型兼容性
    • 支持主流开源模型:LLaMA(包括LLaMA-2、LLaMA-3)、BLOOM、Mistral、Baichuan、Qwen、ChatGLM等。

    • 扩展性:未来计划支持Gemma、Phi-3等新架构,进一步拓宽模型适配范围。

  2. 微调算法全覆盖
    • 基础微调

      全参数微调(32-bit精度)、冻结微调(16-bit精度)。

    • 高效微调

      LoRA(低秩适配)、QLoRA(4-bit量化+LoRA),显存占用降低至单卡消费级GPU(如RTX 3090)即可训练7B/13B模型。

    • 强化学习

      PPO(近端策略优化)、DPO/ORPO(偏好对齐训练),提升模型与人类需求的契合度。

    • 领域适配

      增量预训练、指令监督微调(SFT),支持医疗、法律等垂直领域数据注入。

  3. 硬件优化与训练加速
    • 量化技术

      基于AQLM/AWQ/GPTQ的2-8比特QLoRA微调,显存消耗减少。

    • 分布式训练

      兼容PyTorch、DeepSpeed、FSDP,支持单机多卡/多机多卡并行计算。

    • 混合精度

      FP16/BF16计算类型适配不同GPU架构(如NVIDIA V100与AMD A10系列)。

  4. 数据集与流程管理
    • 内置数据集

      包含Alpaca、ShareGPT等指令数据集,支持零代码直接调用。

    • 自定义数据集

      用户可上传JSON/CSV格式数据,框架自动处理分块与Token对齐。

    • 标准化流程

      模型选型→数据加载→参数配置(学习率、批次大小)→训练监控(损失曲线)→效果评估(BLEU、ROUGE)。

  5. 实验监控与评估
    • 实时监控

      集成TensorBoard、MLflow等工具,可视化训练指标。

    • 自动评估

      内置ROUGE分数计算,衡量模型输出与标准答案的相似度。

    • 快速迭代

      支持梯度检查点、动态分块技术,缩短调试周期。

2. 环境安装

CUDA 是由 NVIDIA 创建的一个并行计算平台和编程模型,它让开发者可以使用 NVIDIA 的 GPU 进行高性能的并行计算。首先,在 https://developer.nvidia.com/ cuda-gpus 查看您的 GPU 是否支持CUDA。

1.保证当前 Linux 版本支持CUDA. 在命令行中输入 uname -m && cat /etc/*release,应当看到类似的输出

x86_64
DISTRIB_ID=Ubuntu 
DISTRIB_RELEASE=22.04

    2.检查是否安装了 gcc . 在命令行中输入 gcc --version ,应当看到类似的输出:

      gcc (Ubuntu 11.4.0-1ubuntu1~22.0411.4.0

      3.在以下网址下载所需的 CUDA,这里推荐12.2版本。 https://developer.nvidia.com/cuda-gpus 注意需要根据上述输出选择正确版本,如果您之前安装过 CUDA(例如为12.1版本),需要先使用 sudo /usr/local/cuda-12.1/bin/cuda-uninstaller 卸载。如果该命令无法运行,可以直接:

        sudorm-r/usr/local/cuda-12.1sudo apt clean && sudo apt auto clean

        卸载完成后运行以下命令并根据提示继续安装:

          wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run sudo sh cuda_12.2.0_535.54.03_linux.run

          ../_images/image-20240610221819901.png

          3. LLaMA-Factory 安装

          运行以下指令以安装 LLaMA-Factory 及其依赖:

            git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.gitcd LLaMA-Factorypip install -e ".[torch,metrics]"

            如果出现环境冲突,请尝试使用 pip install --no-deps -e . 解决

            4. LLaMA-Factory 校验

            完成安装后,可以通过使用 llamafactory-cli version 来快速校验安装是否成功。如果您能成功看到类似下面的界面,就说明安装成功了。

            ../_images/image-20240611002529453.png

            5.其它环境包

            图片

            <think>嗯,用户想了解如何部署和微调Llama-Factory支持的多模态大语言模型。首先,我需要回忆一下Llama-Factory的相关信息。根据引用[1],Llama-Factory是一个由北航开源的低代码大模型训练框架,专注于微调大型语言模型。引用[2]提到在部署多模型时,需要选择合适的基础模型,比如Llama-3、Qwen等。那多模态的话,可能需要支持图像、文本等多模态输入的模型。 首先,部署部分。用户可能需要先安装必要的依赖,比如Python环境、PyTorch、CUDA等。然后克隆仓库,安装依赖库,可能需要多模态相关的库,比如transformers、torchvision等。接着,模型准备,下载多模态基础模型,比如Qwen-VL或者LLaVA,并将它们放在指定目录下。然后配置环境变量,可能需要设置模型路径和数据路径。 然后是微调部分。多模态微调需要特定的数据集,比如包含图像和文本对的数据。数据预处理可能需要转换成框架支持的格式,比如JSON,包含图像路径和文本描述。接着选择微调方法,比如LoRA,这样可以在低资源下高效训练。配置训练参数,学习率、批次大小、epoch数等。启动训练脚本,可能需要指定配置文件。最后是模型测试,加载微调后的模型进行推理,验证多模态能力。 用户可能还会遇到问题,比如环境配置错误、显存不足、数据格式不对。需要建议他们检查CUDA版本、减少批次大小,或者调整LoRA的秩参数。另外,多模态模型通常需要更多显存,可能需要使用4-bit量化或者梯度检查点技术。 相关问题部分,应该涵盖部署准备、多模态模型选择、数据处理、参数优化、评估方法以及应用场景。这样用户能全面了解流程中的各个步骤和可能的问题。</think>以下是根据LLaMA-Factory官方文档整理的部署和微调多模态大语言模型指南: ### 一、环境部署 1. **基础环境准备** - 安装Python 3.8+和CUDA 11.7+ - 克隆仓库:`git clone https://github.com/hiyouga/LLaMA-Factory.git` - 安装依赖:`pip install -r requirements.txt` - 多模态扩展:安装`torchvision`和`transformers`的多模态支持组件[^1] 2. **多模态模型下载** - 支持的模型:Qwen-VL、LLaVA、MiniGPT-4等 - 示例下载命令: ```bash huggingface-cli download qwen/Qwen-VL-Chat --local-dir models/qwen_vl ``` ### 二、微调流程 1. **数据准备** - 格式要求:JSON文件包含`image`(图片路径)和`conversations`字段 - 示例结构: ```json { "id": "multi_modal_sample", "image": "data/images/cat.jpg", "conversations": [ {"from": "human", "value": "描述这张图片"}, {"from": "gpt", "value": "一只橘猫在窗台上晒太阳"} ] } ``` 2. **启动微调** ```bash python src/train_bash.py \ --model_name_or_path models/qwen_vl \ --dataset multimodal_dataset \ --stage sft \ --template qwen \ --lora_target c_attn \ --per_device_train_batch_size 2 \ --gradient_accumulation_steps 4 \ --lr 2e-5 \ --num_train_epochs 3 \ --fp16 ``` ### 三、关键技术点 1. **多模态适配器** - 使用线性投影层将图像特征映射到文本嵌入空间 - 公式实现:$$ h_{\text{visual}} = W_p \cdot \text{CNN}(I) $$ 其中$W_p$为可训练投影矩阵,$I$为输入图像 2. **混合训练策略** - 第一阶段冻结视觉编码器,只训练文本解码器 - 第二阶段联合微调视觉-语言连接层 ### 四、常见问题解决 | 问题现象 | 解决方案 | |---------|----------| | OOM显存不足 | 启用4-bit量化:`--quantization_bit 4` | | 图像加载失败 | 检查路径权限,确认PIL库版本 | | 多模态对齐不良 | 增加投影层维度:`--visual_encoder_hidden_dim 1024` |
            评论
            添加红包

            请填写红包祝福语或标题

            红包个数最小为10个

            红包金额最低5元

            当前余额3.43前往充值 >
            需支付:10.00
            成就一亿技术人!
            领取后你会自动成为博主和红包主的粉丝 规则
            hope_wisdom
            发出的红包

            打赏作者

            Jeremy_lf

            你的鼓励是我的动力

            ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
            扫码支付:¥1
            获取中
            扫码支付

            您的余额不足,请更换扫码支付或充值

            打赏作者

            实付
            使用余额支付
            点击重新获取
            扫码支付
            钱包余额 0

            抵扣说明:

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

            余额充值