首页 > 其他分享 >【01】LLaMA-Factory微调大模型——基础环境配置

【01】LLaMA-Factory微调大模型——基础环境配置

时间:2024-07-16 14:28:45浏览次数:17  
标签:01 模型 微调 Factory CUDA LLaMA 安装

为了构建法律领域的垂直应用大模型,从本文起记录使用LLaMA-Factory微调大模型的过程,以期UU们可以复刻与应用。大语言模型统一高效微调框架(LLaMA-Factory)的详解介绍可见:LLaMA-Factory/README_zh.md at main · hiyouga/LLaMA-Factory · GitHub

LLaMA-Factory框架旨在简化大型语言模型的微调过程,提供了一套完整的工具和接口,使得用户能够轻松地对预训练的模型进行定制化的训练和调整,以适应特定的应用场景。

LLaMA-Factory的优点:

  • 多种模型:LLaMA、LLaVA、Mistral、Mixtral-MoE、Qwen、Yi、Gemma、Baichuan、ChatGLM、Phi 等等。
  • 集成方法:(增量)预训练、(多模态)指令监督微调、奖励模型训练、PPO 训练、DPO 训练、KTO 训练、ORPO 训练等等。
  • 多种精度:16 比特全参数微调、冻结微调、LoRA 微调和基于 AQLM/AWQ/GPTQ/LLM.int8/HQQ/EETQ 的 2/3/4/5/6/8 比特 QLoRA 微调。
  • 先进算法:GaLore、BAdam、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA+、LoftQ、PiSSA 和 Agent 微调。
  • 实用技巧:FlashAttention-2、Unsloth、RoPE scaling、NEFTune 和 rsLoRA。
  • 实验监控:LlamaBoard、TensorBoard、Wandb、MLflow 等等。
  • 极速推理:基于 vLLM 的 OpenAI 风格 API、浏览器界面和命令行接口。

一、Python环境搭建

本文及后续所使用的操作系统均为: Ubuntu 22.04.4 LTS;显卡为:NVIDIA A40-48GB GPU。

大模型的开发依赖于Python语言,为了实现有效的版本控制,避免环境错乱,需搭建conda环境。Anaconda是一个用于科学计算的Python发行版本。它包含了一系列常用的数据科学工具和库,自带Conda的包管理系统可以帮助用户快速安装和管理Python包和依赖项,而无需担心版本冲突和依赖关系。它还可以创建与不同项目相关的虚拟环境,使得不同项目之间的依赖项隔离开来。

Anaconda下载地址:【根据使用的操作系统选择】

Index of / (anaconda.com)icon-default.png?t=N7T8https://repo.anaconda.com/archive/

此后,使用Xftp将安装包上传至服务器。Xftp是文件传输软件,用于在本地计算机和远程服务器之间安全地传输文件。通过用户界面,可快捷浏览和管理远程服务器上的文件和文件夹。同时支持多种文件传输协议,包括SFTP、FTP和SCP。

安装Anaconda【安装过程中一直enter】

此处选择yes 

此处yes完成安装

 而后需激活conda,使用如下命令【其中<用户名>需替换为自己的】

 source /home/<用户名>/anaconda3/bin/activate

激活之后,查看python的版本,如果可以显示,则表明安装成功

python -V

 二、安装CUDA

CUDA(Compute Unified Device Architecture)是由NVIDIA推出的一种并行计算平台和应用程序编程接口。它允许开发人员使用CUDA C/C++语言来利用NVIDIA的GPU进行高性能计算。在大模型训练中CUDA不可或缺。

首先查看是否安装CUDA以及显卡支持的CUDA最高的版本信息

nvcc --version

nvidia-smi

【注意】Ubuntu提示使用sudo apt install nvidia-cuda-toolkit 去安装CUDA库。但采用此命令默认安装的是CUDA11.5,建议不使用该命令安装。

如图所示,本机支持的CUDA 最高version为12.2,此后访问NVIDIA官方,输入系统信息,获取安装指令。

CUDA Toolkit 12.2 Downloads | NVIDIA Developericon-default.png?t=N7T8https://developer.nvidia.com/cuda-12-2-0-download-archive

按照上图中的命令逐步安装,安装过程耗时较短。

安装完成后,查看版本信息命令若打印如下信息即证明安装成功。

nvcc -V

默认的CUDA11.5难以匹配后续的大模型部署与训练,若已经安装,相应的卸载可参考此篇博文。

Ubuntu22.04本地部署qwen模型、jupyterlab开发环境、LoRA微调全流程_ubuntu部署 大模型微调平台-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_42118737/article/details/139023770?spm=1001.2014.3001.5502

三、安装CUDNN

CUDNN(CUDA Deep Neural Network Library)是由NVIDIA开发的针对深度学习任务的加速库。它是基于CUDA架构的深度神经网络加速库,提供了高性能的GPU加速的深度神经网络的实现。CUDNN主要目标是加速深度学习任务的训练和推理。它提供了一系列的GPU加速算法和优化策略。CUDNN的下载链接为:

https://developer.nvidia.com/rdp/cudnn-downloadicon-default.png?t=N7T8https://developer.nvidia.com/rdp/cudnn-download

 选择与CUDA版本匹配的CUDNN,推荐使用cuDNN 9.2.1。

而后按照安装命令完成,最后一步依据自身的CUDA版本选择对应的指令。

四、虚拟环境搭建与PyTorch安装

LLaMA-Factory的软件依赖如下图所示,按照推荐,本文搭建python环境3.11,PyTorch2.3.0的基本环境。

 指定Python版本为3.11,创建名称为LLM的虚拟环境

conda create -n LLM python=3.11

 而后激活LLM虚拟环境

conda activate LLM

PyTorch是由Facebook AI Research Lab开发的一个开源机器学习框架。它是基于Python的科学计算包NumPy和深度学习库Torch的组合,提供了高级的功能和灵活性,使得开发者可以更加方便地构建深度学习模型。下载地址为:

Start Locally | PyTorchicon-default.png?t=N7T8https://pytorch.org/get-started/locally/进入PyTorch官网找到匹配cuda版本的pytorch版本安装命令

 使用pip安装时,可使用清华镜像源加速

pip3 install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成后进入Python环境,使用如下代码进行验证

import torch
print(torch.__version__)
print(torch.cuda.is_available())

验证结果如下图则表明torch已安装成功 

小结

至此大语言模型统一高效微调框架(LLaMA-Factory)的基础环境已在 Ubuntu 22.04.4  LTS操作系统、NVIDIA A40-48GB GPU显卡服务器上搭建成功。基础环境的配置核心在于版本控制和解决依赖冲突,为后续的模型训练提供支撑。

下文【02】LLaMA-Factory微调大模型——LLaMA-Factory搭建,将在本机上部署LLaMA-Factory框架,欢迎您持续关注,如果本文对您有所帮助,感谢您一键三连,多多支持!

标签:01,模型,微调,Factory,CUDA,LLaMA,安装
From: https://blog.csdn.net/H66778899/article/details/140443322

相关文章

  • Llama - 微调
    本文翻译整理自:https://llama.meta.com/docs/how-to-guides/fine-tuning文章目录微调实验跟踪RecipesPEFTLoRAtorchtuneHuggingFacePEFTLoRAQLoRA微调如果你想通过编写代码来学习,强烈建议你查看了解Llama3notebook。这是一个开始对MetaLlama进行最常见......
  • Unsloth 微调 Llama 3
    本文参考:https://colab.research.google.com/drive/135ced7oHytdxu3N2DNe1Z0kqjyYIkDXp改编自:https://blog.csdn.net/qq_38628046/article/details/138906504文章目录一、项目说明安装相关依赖下载模型和数据二、训练1、加载model、tokenizer2、设置LoRA训练参数3......
  • 小程序开发基础01-学习路线
    微信小程序是一种运行在微信生态系统内的轻量级应用程序。它们无需安装、即用即走,为用户提供了便捷的使用体验。对于开发者而言,小程序开发是一种更简洁、高效的方式来触达用户。小程序开发简介编程语言:小程序使用的主要语言是JavaScript,以及配套的WXML(微信的HTML)和WXSS(微信的CS......
  • Flutter学习01-Flutter学习路线
    Flutter是由Google开发的一套开源UI软件开发工具包,能够帮助开发者使用一套代码库创建跨平台的高性能原生应用。Flutter使用Dart编程语言,通过其内置的渲染引擎绘制界面,从而实现了原生性能和优秀的用户体验。Flutter的特点跨平台:支持iOS、Android、Web和桌面平台,不同......
  • 0187-实现换行输出
    环境Time2022-11-13WSL-Ubuntu22.04QEMU6.2.0Rust1.67.0-nightlyVSCode1.73.1前言说明参考:https://os.phil-opp.com/vga-text-mode目标使用VGA输出的时候,在一行已经满的情况下,自动换行输出。易失操作对于输出到屏幕,为了避免编译器优化,需要增加一个副作用。v......
  • 0188-输出宏和错误信息
    环境Time2022-11-13WSL-Ubuntu22.04QEMU6.2.0Rust1.67.0-nightlyVSCode1.73.1前言说明参考:https://os.phil-opp.com/vga-text-mode目标可以使用println!宏向屏幕输出错误,发送错误时,可以打印错误信息。Cargo.toml其中的spin为全局锁需要,lazy_static为静态......
  • 0189-输出 PPM 图片
    环境Time2022-11-14WSL-Ubuntu22.04Rust1.65.0前言说明参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html目标编写一个简单的程序,输出一张.ppm格式的图片并查看。ppm格式ppm是一种用ascii字符来表示图片的方式。具体内容参考:https://zh.......
  • 0190-定义三维向量
    环境Time2022-11-14WSL-Ubuntu22.04Rust1.65.0前言说明参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html目标将之前定义的三种颜色,封装到一个三维的向量中,保持原有的逻辑不变。main.rsusecrate::vector3::Color;modvector3;fnmain(){......
  • ollama 模型国内加速下载,制作自定义Modelfile模型文件
    参考:https://www.zhihu.com/question/640579563/answer/3562899008https://github.com/ollama/ollama/blob/main/docs/modelfile.mdgguf格式介绍:https://www.datalearner.com/blog/10517057188355861、ollama模型国内加速下载ollama主要的模型文件格式是gguf,可以在mo......
  • 墨烯的C语言技术栈-C语言基础-012
    数组要存储1-100的数字,怎么存储?C语言中给数组的定义:一组相同类型元素的集合数组定义intarr[10]={1,2,3,4,5,6,7,8,9,10};//定义一个整型数组,最多放10个元素intmain(){ //0-9都是整数 intarr[10]={10,11,12,13,14,15,16,17,18,19};//arr是数组名 [......