LLaMA - Factory安装摆设及微调流程笔记
一、摆设前预备
(一)明确依赖环境
- 必备依赖
- Python建议接纳3.11版本,该版本在大模型系列中适配性佳,能更好地支持LLaMA - Factory的运行。
- CUDA可选择12.1或12.2版本。实际使用中,即便下载时Pytorch最高仅对应12.1(显卡最高支持12.2) ,也可正常安装使用。此外,torch、transformers、datasets、accelerate、peft、trl等库也必不可少,各有其最低和推荐版本,安装时务必严格遵循版本要求,否则易出现难以办理的未知问题。
- 举例来说,若torch版本不符合要求,可能导致模型训练过程中出现盘算错误或无法正常调用GPU资源;transformers版本不匹配,可能影响模型的加载和微调功能。
- 可选依赖
- deepspeed、bitsandbytes、vllm、flash - attn等属于可选依赖。
例如deepspeed可减少内存消耗,实用于内存资源有限的环境,但可能会使训练时间拉长。即便不安装这些可选依赖,LLaMA - Factory依然能够完成微调任务。
(二)安装NVIDIA显卡驱动
- 不同体系的安装方法
- Ubuntu体系:若当地服务器为Ubuntu体系,可参考《Ch.4在Ubuntu 22.04体系下摆设运行ChatGLM3 - 6B模型》中的2.1安装显卡驱动末节,按照此中的详细步调举行操作。
- Windows体系:若为Windows操作体系,则需参照《Ch.6在Windows体系下摆设运行ChatGLM3 - 6B模型》中的2安装NVIDIA显卡驱动末节来完成安装。
- 云服务器的环境:若使用租赁的云服务器,如auto dl等,通常其显卡驱动环境已预设好,无需手动配置。
安装完成后,可通过运行 nvidia - smi 命令来验证是否安装成功(用于及时监控和管理NVIDIA GPU的性能和状态)。若想实现周期性监控,可使用 watch -n 1 nvidia - smi 命令,该命令会每秒刷新一次监控界面,若显示正常且无报错信息,则表明显卡驱动安装成功。
GPU显示版本号是最高支持 12.2,可以向下兼容。
(三)安装Anaconda
- 依据体系选择教程
- Ubuntu体系:在Ubuntu体系下,可依据《Ch.4在Ubuntu 22.04体系下摆设运行ChatGLM3 - 6B模型》中的2.3安装Anaconda环境末节举行安装,此中包含了详细的安装步调和留意事项。
- Windows体系:对于Windows体系,参考《Ch.6在Windows体系下摆设运行ChatGLM3 - 6B模型》中的3.2.1方式一:使用Anaconda创建项目依赖环境(推荐)末节,按照指引完成安装。
- 安装后的验证操作:安装完成后,通过在命令行输入conda --version来验证Anaconda是否安装成功。若能正常输出版本信息,如conda 24.3.0,则说明Anaconda已成功安装。
二、安装摆设步调
(一)创建虚拟环境
- 创建命令:借助Conda包版本工具,为LLaMA - Factory项目创建专门的Python虚拟运行环境。在命令行中输入conda create --name llama_factory python==3.11,该命令会创建一个名为llama_factory的虚拟环境,且指定Python版本为3.11。
- 进入虚拟环境:创建完成后,使用conda activate llama_factory命令进入该虚拟环境。此后,所有与LLaMA - Factory相干的安装和操作都将在这个虚拟环境中举行,以避免不同项目之间的依赖辩说。
(二)安装Pytorch
- 选择安装命令:根据电脑显卡驱动的CUDA版本,在Pytorch官网(https://pytorch.org/get - started/previous - versions/ )查找适配的安装命令。
例如,若CUDA版本适配,可使用conda install pytorch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 pytorch-cuda=12.1 -c pytorch -c nvidia命令举行安装。
- 安装验证:安装完成后,通过在命令行实行python -c "import torch; print(torch.cuda.is_available())"来验证是否成功安装GPU版本的PyTorch。若输出为True,则表示GPU版本的PyTorch已安装成功且CUDA环境配置精确;若输出为False,则需要重新检查安装过程,可能是安装命令有误、CUDA版本不匹配或其他环境配置问题。
(三)下载项目文件
- git克隆方式
- 安装git软件包:进入LLaMA - Factory的官方Github(https://github.com/hiyouga/LLaMA - Factory ),推荐使用克隆方式下载项目文件。在克隆之前,需要先安装git软件包,在命令行输入sudo apt install git,等候安装完成。
- 实行克隆命令:安装好git后,实行克隆命令git clone https://github.com/hiyouga/LLaMA-Factory.git,该命令会将项目文件下载至当地当前路径。下载过程中,会显示下载进度信息,如remote: Enumerating objects: 7327, done.等。
- 压缩包下载方式:除了git克隆,也可选择下载ZIP压缩包。在Github页面找到下载ZIP压缩包的按钮,下载完成后,将压缩包上传至服务器。若服务器支持直接拖拽上传,则可直接操作;若不支持,可使用rz等工具举行上传。上传完成后,需要安装unzip软件来解压压缩包,在命令行输入sudo apt install unzip。解压完成后,如果文件名带有-main,为了方便后续使用,建议将其重定名为LLaMA - Factory,例如实行mv LLaMA - Factory - main LLaMA - Factory。
(四)升级pip版本
- 升级缘故原由:在安装项目依赖之前,建议升级pip版本。旧版本的pip可能无法安装一些最新的包,大概在解析依赖关系时出现错误,导致后续安装失败。
- 升级命令:升级pip版本的命令为python -m pip install --upgrade pip,实行该命令后,pip会自动下载并安装最新版本。
(五)安装项目依赖
在LLaMA - Factory项目中,requirements.txt文件涵盖了项目运行所需的所有Python包及其基础版本号。借助这个文件,能便捷地一次性安装项目必需的依赖,具体步调如下:
- 进入项目文件夹
打开命令行工具,通过cd LLaMA - Factory命令进入LLaMA - Factory所在的文件夹。只有处于该文件夹路径下,后续命令才能精确找到对应的文件。
- 安装必需依赖
实行pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/命令。
(此中,-r requirements.txt表示依据requirements.txt文件来安装依赖;-i https://pypi.tuna.tsinghua.edu.cn/simple/ 指定了清华大学的PyPI镜像源,在网络不佳的环境下,使用该镜像源可加快下载速度,减少安装过程中因网络问题导致的失败风险。)
- 安装LLaMA - Factory本身
运行pip install -e ".[torch,metrics]" -i https://pypi.tuna.tsinghua.edu.cn/simple/命令。该命令不仅会安装LLaMA - Factory,还会在体系中天生llamafactory - cli命令。之后就能通过此命令来实行LLaMA - Factory的相干操作,好比模型训练、推理等。而-i参数同样是为了使用国内镜像源,提升安装效率 。
(六)团体校验
- 校验PyTorch安装:在Python环境中实行以下命令来校验PyTorch的安装环境:
- import torch
- torch.cuda.current_device()
- torch.cuda.get_device_name(0)
- torch._version_
复制代码
- import torch:用于导入PyTorch库,若导入失败,说明PyTorch安装存在问题。
- torch.cuda.current_device():返回当前选定的CUDA装备索引,如果能精确返回索引值,表明CUDA装备可被PyTorch识别。
- torch.cuda.get_device_name(0):返回索引为0的CUDA装备名称,若能正常返回装备名称,如'NVIDIA GeForce RTX 3090',则进一步验证了CUDA装备与PyTorch的连接正常。
- torch._version_:返回当前安装的PyTorch版本,可确认安装的PyTorch版本是否符合预期。若以上命令均无报错,则说明PyTorch安装及相干配置精确。
- 校验llamafactory - cli命令:使用llamafactory - cli train -h命令来校验llamafactory - cli命令是否正常工作。该命令会显示训练命令的帮助信息,包含各种训练参数的说明。若实行该命令时报错,提示No module named 'tyro',则需要使用pip install tyro或在conda环境中使用conda install -c conda - forge tyro举行安装。安装完成后,再次实行llamafactory - cli train -h命令举行验证,直至无报错信息。
三、微调Qwen2.5模型
(一)下载模型
- 参考教程与命令:参考建元老师开源大模型讲解系列,使用 pip install modelscope, modelscope download --model Qwen/Qwen2.5-1.5B-Instruct命令下载Qwen2.5 - 1.5B - Instruct模型。该命令会从指定的模型库中下载模型文件。
- 查找与移动模型文件:下载完成后,如果指定路径下没有找到模型文件,可在默认路径/root/.cache/modelscope/hub/中查找。若在该路径下找到模型文件,为了便于管理和避免磁盘空间问题,可使用mv命令将其移动到盼望的路径下。例如,实行mv /root/.cache/modelscope/hub/Qwen /home/util/muyan,将模型文件移动到/home/util/muyan目次下。
(二)验证模型完备性
- 启动对话窗口验证:使用CUDA_VISIBLE_DEVICES=0 llamafactory - cli webchat --model_name_or_path /home/util/muyan/Qwen/Qwen2_5 - 1_5B - Instruct --template qwen命令启动对话窗口来验证模型是否完备。
- CUDA_VISIBLE_DEVICES=0:指定当前程序使用第0张显卡来启动模型的web服务。
- model_name_or_path:该参数可指定huggingface或modelscope上的尺度模型名称,也可以使用当地下载的绝对路径。在本次验证中,使用的是当地下载模型的绝对路径/home/util/muyan/Qwen/Qwen2_5 - 1_5B - Instruct。若使用–model_name,不接纳当地路径指定模型时,模型会默认从 Hugging Face 下载。盼望从魔搭社区下载,则需要设置环境变量等操作。若使用–model_path,则需指定当地下载好的模型的绝对路径,以准确调用当地模型。
- template:指定模型问答时所使用的prompt模板,不同模型需要使用相应的模板。对于Qwen2.5 - 1.5B - Instruct模型,使用qwen模板。模板的选择可参考https://github.com/hiyouga/LLaMA - Factory?tab=readme - ov - file#supported - models,若模板选择错误,可能导致答复结果非常或出现重复天生等问题。
- 访问验证:启动成功后,在浏览器中访问http://服务器地址:7860/,此中“服务器地址”需更换为实际启动LLaMA - Factory的服务器地址。进入页面后,选择zh将语言切换为简体中文,在对话窗口中输入问题,如“你好叨教你是谁?”,若模型能正常答复且无报错信息,则表明模型下载完备且校验通过。
(三)llama_factory常用命令
- version:用于显示LLaMA - Factory的版本信息,方便用户了解当前使用的软件版本。
- train:实行命令行版本的训练任务,在微调模型时会用到,可根据不同的训练需求设置相应的参数。
- chat:举行命令行版本的推理chat,但相比之下,该命令的使用频率不如webchat或webui高,由于后两者提供了更直观的交互界面。
- export:负责模型的归并和导出工作,例如将微调后的模型举行归并,以便后续摆设或使用。
- api:启动API server,为其他应用程序提供接口调用,实现与其他体系的集成。
- eval:使用mmlu等尺度数据集对模型举行评测,评估模型在不同任务上的性能表现。
- webchat:启动前端版本的纯推理chat页面,该页面仅包含对话界面,方便用户与模型举行简单的对话交互。
- webui:启动LlamaBoard前端页面,该页面集成了可视化训练、预测、chat、模型归并等多个子页面,功能更为丰富,是实际使用中较为常用的命令。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |