LLama Factory大模型微调之TensorBoard配置

LLama Factory大模型微调之TensorBoard配置

一、TensorBoard概述

  1. 定义与功能:TensorBoard是TensorFlow的可视化工具套件,用于理解、调试和优化机器学习模型训练过程。它提供丰富可视化仪表盘,能直观监控微调训练中的各种指标,如损失率和准确率曲线、张量分布、模型图等。
  2. 操作手册:可参考官方文档:https://tensorflowcn.cn/tensorboard/get_started

二、在LLaMA - Factory中配置TensorBoard

  1. 安装依赖包
    • TensorBoard依赖于TensorFlow,建议先安装TensorFlow,安装命令:pip install tensorFlow
    • 单独安装TensorBoard命令:pip install tensorboard,若安装过程提示缺少包,按提示安装即可。
    • 安装完成后,可使用tensorboard --version验证是否安装成功,若输出版本号则安装完成。
  2. 添加训练参数
    • 在LLaMA - Factory中,通过添加--report_to "tensorboard"指定使用TensorBoard。
    • 使用--logging_dir指定日志路径,如--logging_dir single_lora_qwen_log,需注意该路径是启动命令的相对路径,建议使用绝对路径。
    • 将LLaMA - Factory生成的训练命令复制,添加上述两个参数到命令中。同时要注意,若原命令中--report_to参数值为none,需改为tensorboard,且整个命令中不要有重复指令数据,否则会导致输出失败 。
  3. 启动TensorBoard服务
    • 命令格式:tensorboard --logdir="日志文件夹路径" --host 服务器IP --port 端口号,如tensorboard --logdir="single_lora_qwen_log" --host 192.168.110.133 --port 6006,表示监控指定文件夹内容并展示在服务器的6006端口下。
    • 执行命令后,若没有报错,在本地电脑(与服务器互通情况下)访问http://服务器IP:端口号/#scalars,如http://192.168.110.133:6006/#scalars,即可查看模型训练的详细信息。

三、LLaMA - Factory + LORA大模型微调相关知识补充

  1. LORA原理
    • 来源于微软2021年论文《LORA: LOW - RANK ADAPTATION OF LARGE LANGUAGE MODELS》,核心思想是基准模型不变,额外引入参数矩阵(ΔW)做专属内容处理,新矩阵h = Wox + ΔWx (WO为原始权重矩阵,x为输入向量)。
    • LORA与适配器微调(Adapter Tuning)不同,Adapter Tuning在模型本身增加层次,会使模型推理路径变长;LORA保持模型完整性,引入外部参数矩阵与原模型结合输出。
    • LORA可应用于大模型微调,如GPT系列和transformer模型等过参数化模型,通过优化秩分解矩阵间接训练神经网络密集层,节省计算资源。
  2. LLaMA - Factory作用与使用
    • LLaMA - Factory是GitHub上的开源项目,可用于大模型微调,支持命令行界面(CL)、Web示例(Demo)和API调用等多种使用方式,操作简便,具体指南可在官方GitHub页面查看。
    • 在使用时,不同版本可能会有更新,使用前需关注更新点。安装部署过程包括创建Python虚拟环境、下载项目文件、安装依赖包等,对本地软硬件环境有一定要求,如CUDA至少11.6版本,推荐12.2版本 。
  3. 数据集与微调流程
    • 先使用LLaMA - Factory自带数据集进行微调,后续会讲解使用自定义数据集的方法。不同数据集详细情况可在其GitHub官网查看。
    • 微调流程包括框架安装、模型下载、数据集准备、选择参数方法点击微调,微调完成后需合并模型并二次验证。

四、答疑环节

  1. LORA与冻结参数关系:LORA本质不是通过冻结参数调节,而是引入外部权重矩阵,保持原模型完整性,与原模型结合输出;而上节课讲的冻结参数是逐层或等层冻结,在同一模型上进行操作。
  2. LORA与知识库区别:LORA是训练好的参数权重集,可类比为挂上去的知识库,但原理不同。知识库是向量库,实时可更新;LORA是用于微调的参数集。
  3. LLaMA模型与LORA应用:LLaMA模型可以用LORA方法实现微调,支持实体关系三元组提取任务。
  4. 企业微调工具选择:企业中微调可使用LLaMA - Factory开源工具,也可使用其他工具,取决于具体需求。LLaMA - Factory框架默认支持一些微调设置,若有特殊需求,如指定特定模块微调,可能需要借助其他方式。
<think>好的,用户想了解如何设置Llama-Factory进行模型微调以及相关的参数配置和部署指南。首先,我需要回忆一下之前提供的引用内容,特别是引用1、2、3中的相关信息。 引用1提到了安装步骤,用户可能需要先完成环境配置。引用2介绍了LLaMA-Factory的整体功能和可视化界面,这可能在参数配置时有用。引用3提到了ROUGE分数等评估指标,可能在微调后的评估阶段需要用到。 接下来,我应该分步骤来组织回答。首先是安装和环境配置,这部分引用1的git clone和pip安装步骤可以直接引用。然后是关于数据集准备,可能需要指导用户如何准备自定义数据,或者使用内置的数据集。参数配置部分需要详细说明关键参数,比如模型路径、学习率、训练轮数等,这些可能需要参考LLaMA-Factory的文档或常见配置微调启动部分需要给出命令行示例和可视化界面的使用方法,引用2提到可视化界面,应该强调这一点。部署和评估部分,引用3中的评估指标如ROUGE分数需要包含进去,同时可能涉及模型导出和推理步骤。 用户可能对参数的具体作用不太清楚,需要解释每个参数的意义和调整建议。例如,学习率过大可能导致不收敛,过小则训练慢。此外,用户可能关心如何监控训练过程,比如使用TensorBoard,这也是需要提到的。 在部署方面,用户可能需要知道如何将微调后的模型应用到实际场景,比如使用HuggingFace的Pipeline进行推理。同时,评估部分需要说明如何计算ROUGE等指标,确保模型性能达标。 最后,相关问题的生成要围绕用户可能进一步的问题,比如优化训练速度、处理显存不足、评估指标含义等,这些都需要基于之前的引用内容来设计。 需要确保回答结构清晰,步骤明确,参数解释到位,并且引用正确的参考资料。同时,使用中文,符合格式要求,避免使用Markdown,用自然的分段和项目符号。检查是否有遗漏的步骤或参数,确保用户能够按照指南顺利操作。</think>### LLaMA-Factory微调参数配置与部署指南 #### 一、环境准备 1. 克隆仓库并安装依赖(需Python ≥3.8环境) ```bash git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip install -e ".[torch,metrics]" ``` 此步骤包含PyTorch和评估指标库的完整安装[^1] #### 二、关键参数配置 在`src/llmtuner/hparams`目录下的配置文件中设置: ```python { "model_name_or_path": "meta-llama/Llama-2-7b-hf", # 预训练模型路径 "learning_rate": 2e-5, # 推荐范围1e-5到5e-5 "num_train_epochs": 3, # 典型微调轮次 "per_device_train_batch_size": 4, # 根据显存调整 "gradient_accumulation_steps": 8, # 有效增大batch_size "max_source_length": 512, # 输入文本最大长度 "lora_r": 8, # LoRA低秩矩阵维度 "lora_alpha": 32, # LoRA缩放系数 "logging_steps": 50 # 训练日志间隔 } ``` *注:使用LoRA技术时建议保持`lora_alpha = 4*lora_r`的比例关系* #### 三、微调启动方式 1. **命令行模式**: ```bash python src/train_bash.py \ --stage sft \ --do_train \ --dataset alpaca_en \ --finetuning_type lora \ --output_dir outputs ``` 2. **可视化界面**(推荐新手): ```bash python src/webui.py ``` 通过Web界面选择模型/数据集,参数配置实时可视化[^2] #### 四、部署与评估 1. 模型导出(LoRA适配器合并) ```python from llmtuner import export_model export_model(adapter_path="outputs/checkpoint-1000") ``` 2. 推理部署示例: ```python from transformers import pipeline generator = pipeline("text-generation", model="merged_model") print(generator("如何做蛋炒饭?")[0]["generated_text"]) ``` 3. 评估指标监控(训练日志包含): - ROUGE-L:衡量生成文本与参考文本的语义匹配度 - 推理速度:`predict_samples_per_second`反映实时性能 - 显存占用:通过`nvidia-smi`监控[^3] #### 五、参数调优建议 1. 显存不足时: - 降低`per_device_train_batch_size` - 增大`gradient_accumulation_steps` - 启用`fp16`混合精度训练 2. 提升训练效果: - 逐步增加`max_source_length`(不超过模型最大长度) - 尝试不同的`lora_r`值(8/16/32) - 调整`learning_rate`配合学习率调度器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值