Unsloth微调环境搭建与LLaMA 3.1-8B模型微调实践指南

本文将详细介绍如何使用Unsloth框架进行LLaMA 3.1-8B模型的微调,帮助您快速构建微调环境,并了解微调流程的基本步骤。本教程适合初学者,旨在帮助您在短时间内实现自己的专属模型微调。对于更复杂的微调参数和细节设置,将在后续文章中进一步阐述。

文将涵盖以下内容:

1. Unsloth环境搭建: 指导您从零开始搭建Unsloth微调环境。

2. 微调第一个LLaMA模型: 一步步教您如何通过Unsloth框架对LLaMA 3.1-8B进行微调,涵盖关键配置。

Unsloth环境搭建

最初,我在Windows 11环境下安装并运行了Unsloth,虽然安装过程顺利,但在模型微调过程中遇到了各种错误。尽管大部分问题都通过逐一解决了,但一些关键的GPU加速库仍然无法正常运行。这些库要求在Linux系统上才能正常运行并充分发挥其性能。

由于对Linux系统不够熟悉,我尝试通过编译工具在Windows上重新编译这些库,但问题依然未能解决。最终,我选择通过Windows上的WSL(Windows Subsystem for Linux)安装Ubuntu的方式来解决这些兼容性问题。这样既避免了完全切换到Linux的麻烦,又能够使用Linux环境来进行模型微调。

第一步:在WINDOWS上通过WSL安装UBUNTU

如果您使用的是Linux操作系统(建议使用Ubuntu),可以跳过这一部分的内容,直接进入后续步骤。同时,确保您在Linux系统上安装了显卡驱动,以便正常使用GPU进行加速。

如果您在Windows上通过WSL安装Ubuntu,由于WSL是一种虚拟化技术,您无需在WSL的Ubuntu系统中再次安装显卡驱动。只要Windows宿主机上已经正确安装并配置了显卡驱动,WSL内的Ubuntu系统将自动使用这些驱动配置,支持GPU加速。

windows11系统下,进入命令行工具,执行如下指令,即可快速安装完Ubuntu:

wsl -install

从windows中进入Ubuntu系统,同样需要打开命令行,执行如下指令:

wsl -d ubuntu

初次登录,会要求输入一个新的用户名、密码:

后续登录系统,会直接进入,而不必每次都输入用户名和密码:

(base) C:\Users\username>wsl -d ubuntuwsl: 检测到 localhost 代理配置,但未镜像到
 WSL。NAT 模式下的 WSL 不支持 localhost 代理。
(base) root@WANG***-4090:/mnt/c/Users/username#

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈


第二步:升级系统相关组件

安装完ubuntu系统后,需要对相关的组件进行升级:

在这里插入图片描述

第三步:安装Anaconda

建议安装Anaconda,安装相关的python包会非常方便,同时也便于对python环境进行管理。

wget https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh
sudo sh Anaconda3-2024.06-1-Linux-x86_64.sh

建议的安装目录:

/home/userName/anaconda3

安装完成之后需要手动将其加入到环境变量中。需要在~/.bashrc的文件尾部增加如下内容:

export PATH="/home/wangjye/anaconda3/bin:$PATH"

第四步:安装CUDA

这是最容易出错的过程,如果已经安装完驱动了,则需要在WINDOWS宿主机上运行命令 nvidia-smi 来查看硬件支持的CUDA版本,不论是WINDOWS还是LINUX一定要注意查看,不能安装错了。

最大的坑是选择了不被支持的CUDA版本(如CUDA 12.6),导致PyTorch及TensorFlow都无法兼容4090显卡。因此选择低于12.6版本的CUDA。在这里我安装的是稳定版本的12.1。

wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.run
sudo sh cuda_12.1.0_530.30.02_linux.run

安装过程会中断N次,提示少这样那样的文件,少什么文件按提示装什么。

然后再次安装CUDA,直接安装完成。

安装完成之后,如果运行nvcc --version查看是否安装成功,这里提示找不到指令。主要原因是因为CUDA的安装路径没有写入环境变量中,需要对~/.bashrc文件进行编辑,以下内容视不同操作系统的安装路径而不同:

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

再次运行nvcc --version时,提示的结果如下,代表安装完成 :

### 关于 Llama3.1-8B 模型的特性、参数量、训练数据集及架构 #### 模型特性 Llama 3.1 是基于 Meta 开源系列的大规模语言模型之一,其改进版通过引入更先进的技术提升了性能。对于 Llama3.1-8B 版本而言,它属于较小规模的变体,在保持高效推理的同时具备较强的多任务处理能力[^2]。 #### 参数量 Llama3.1-8B 的具体参数量为约 **80亿(8B)** 参数,相较于更大的版本如 Llama3.1-405B 显著减少。这种设计使其更适合资源受限环境下的应用开发,同时也降低了硬件需求门槛[^3]。 #### 训练数据集 虽然具体的训练数据细节未完全公开,但从已知信息可以推测,Llama 系列模型通常采用大量高质量互联网文本作为基础语料库。这些数据经过严格筛选以确保内容安全性和多样性,并覆盖多种主题领域以便更好地泛化到不同应用场景之中。 此外,在后训练阶段 (Post-training),该模型还可能运用到了特定领域的专用数据集来微调某些方面的能力,比如对话理解或代码生成等特殊技能的学习过程可能会涉及额外的人工标注样本用于监督精调(Supervised Fine-Tuning, SFT)。 #### 架构设计 Llama3.1 在架构层面延续了 Transformer 结构的经典范式,但在一些关键技术环节进行了优化调整: 1. **SFT + DPO**: 后训练过程中采用了 Supervised Fine-Tuning 和 Direct Preference Optimization(DPO)相结合的方式,旨在提升模型对复杂指令的理解以及生成更加符合人类偏好的回复质量。 2. **Reward Modeling(RM)**: 利用人机协作产生的优质配对 `<Prompt, Answer>` 对象构建奖励函数模型,进而指导后续策略更新方向的选择逻辑;同时借助此机制实现对抗性采样操作(Rejection Sampling),有效剔除低品质候选解空间内的干扰项。 3. **Quantization Techniques**: 针对实际部署场景中的内存消耗考量因素,官方提供了多种精度级别的量化方案支持选项——例如 FP16 半精度浮点数表示形式或者 INT4/INT8 定点整数近似表达方法等等。其中特别提到的是,“4-bit quantized version requires around 231GB of storage space”,即当选用四比特压缩模式存储权重文件时大约占用硬盘容量约为231G大小级别。 ```python import torch from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama3.1-8b") model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama3.1-8b", device_map="auto") input_text = "Explain the concept behind large language models." inputs = tokenizer(input_text, return_tensors="pt").to(&#39;cuda&#39;) outputs = model.generate(**inputs, max_new_tokens=50) print(tokenizer.decode(outputs[0], skip_special_tokens=True)) ``` 上述代码片段展示了一个简单的加载并运行 Llama3.1-8B 模型的例子,其中包括如何初始化 Tokenizer 和 Model 实例对象,指定 GPU 加速设备映射关系设置等内容。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值