发布时间:2025-03-15 18:30:49编辑:123阅读(22)
通过上一章平台微调大模型,已经了解了模型微调需要的大部分基础概念,也通过硅基流动平台走完了一个完整的微调流程,在这个过程中发现有几个问题:
可以选择的基础模型太少了,没有想要的 DeepSeek 相关模型。
模型训练过程中的 Token 消耗是要自己花钱的,对于有海量数据集的任务可能消耗比较大。
微调任务触发不太可控,在测试的时候创建的微调任务,等了很久还没有被触发,可能是硅基流动最近调用量太大,资源不足的问题,但是总归这个任务还是不太可控的。
为了解决这个问题,最终我们还是要使用代码来微调,这样我们就能灵活选择各种开源模型,无需担心训练过程中的 Token 损耗,灵活的控制微调任务了
进阶:要了解的工具
后续模型微调过程中需要用到的两个核心工具Colab 和 Unsloth。
Colab 是一个基于云端的编程环境,由 Google 提供。它的主要功能和优势包括:免费的 GPU 资源:Colab 提供免费的 GPU,适合进行模型微调。虽然免费资源有一定时间限制,但对于大多数微调任务来说已经足够。易于上手:Colab 提供了一个基于网页的 Jupyter Notebook 环境,用户无需安装任何软件,直接在浏览器中操作。丰富的社区支持:Colab 上有许多现成的代码示例和教程,可以帮助新手快速入门。
简单来说,有了 Colab ,可以让你没有在比较好的硬件资源的情况下,能够在线上微调模型,如果只是学习的话,免费的资源就够了。另外,市面上很多模型微调的 DEMO ,都是通过 Colab 给出的,大家可以非常方便的直接进行调试运行。
Unsloth 是一个开源工具,专门用来加速大语言模型(LLMs)的微调过程。它的主要功能和优势包括:高效微调:Unsloth 的微调速度比传统方法快 2-5 倍,内存占用减少 50%-80%。这意味着你可以用更少的资源完成微调任务。低显存需求:即使是消费级 GPU(如 RTX 3090),也能轻松运行 Unsloth。例如,仅需 7GB 显存就可以训练 1.5B 参数的模型。支持多种模型和量化:Unsloth 支持 Llama、Mistral、Phi、Gemma 等主流模型,并且通过动态 4-bit 量化技术,显著降低显存占用,同时几乎不损失模型精度。开源与免费:Unsloth 提供免费的 Colab Notebook,用户只需添加数据集并运行代码即可完成微调。
简单来说,Unsloth 采用了某些优化技术,可以帮助我们在比较低级的硬件设备资源下更高效的微调模型。在 Unsloth 出现之前,模型微调的成本非常高,普通人根本就别想了,微调一次模型至少需要几万元,几天的时间才能完成。我们看到 Unsloth 官方提供了很多通过 Colab 提供的各种模型的微调案例,我们可以很方便的在 Colab 上直接运行这些案例。
实战:使用unsloth微调模型
python版本 python=3.12
安装unsloth前需要安装:
1 安装NVIDIA视频驱动程序 下载对应的版本安装即可 https://www.nvidia.com/en-us/drivers/
查看当前显卡运行时版本
nvidia-smi
2 安装Visual Studio C++ 下载地址 https://visualstudio.microsoft.com/zh-hans/vs/community/
需要安装的依赖:
NET Framework 4.8 SDK
.NET Framework 4.7.2 targeting pack
C# and Visual Basic Roslyn compilers
MSBuild
MSVC v143 - VS 2022 C++ x64/x86 build tools
C++ 2022 Redistributable Update
C++ CMake tools for Windows
C++/CLI support for v143 build tools (Latest)
MSBuild support for LLVM (clang-cl) toolset
C++ Clang Compiler for Windows (19.1.1)
Windows 11 SDK (10.0.22621.0)
Windows Universal CRT SDK
C++ 2022 Redistributable MSMs
也可以执行命令安装,如下
cmd命令
"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe" modify ^
--installPath "C:\Program Files\Microsoft Visual Studio\2022\Community" ^
--add Microsoft.Net.Component.4.8.SDK ^
--add Microsoft.Net.Component.4.7.2.TargetingPack ^
--add Microsoft.VisualStudio.Component.Roslyn.Compiler ^
--add Microsoft.Component.MSBuild ^
--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 ^
--add Microsoft.VisualStudio.Component.VC.Redist.14.Latest ^
--add Microsoft.VisualStudio.Component.VC.CMake.Project ^
--add Microsoft.VisualStudio.Component.VC.CLI.Support ^
--add Microsoft.VisualStudio.Component.VC.Llvm.Clang ^
--add Microsoft.VisualStudio.ComponentGroup.ClangCL ^
--add Microsoft.VisualStudio.Component.Windows11SDK.22621 ^
--add Microsoft.VisualStudio.Component.Windows10SDK.19041 ^
--add Microsoft.VisualStudio.Component.UniversalCRT.SDK ^
--add Microsoft.VisualStudio.Component.VC.Redist.MSM
3 安装CUDA工具包 下载对应系统版本安装 https://developer.nvidia.com/cuda-toolkit-archive
查看当前安装的CUDA运行时版本
windows环境安装unsloth教程 地址:https://docs.unsloth.ai/get-started/installing-+-updating/windows-installation
上面都安装后,以管理员权限打开cmd, 无报错信息表示成功。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple unsloth
加载预训练模型
看到这里的参数是 model_name,然后选择的是 DeepSeek-R1-Distill-Llama-8B(基于 Llama 的 DeepSeek-R1 蒸馏版本,80 亿参数),然后运行代码我们可以看到模型的拉取日志:
# 导入FastLanguageModel类,用来加载和使用模型 from unsloth import FastLanguageModel # 导入torch工具 ,用于处理模型的数学运算 import torch # 设置模型处理文本的最大长度,相当于给模型设置一个最大容量 max_seq_len = 2048 # 设置数据类型,让模型自动选择最合适的精度 dtype = None # 使用4位量化来节省内存,就像把大箱子压缩成小箱子 load_in_4bit = True model, tokenizer = FastLanguageModel.from_pretrained( model_name = "unsloth/DeepSeek-R1-Distill-Llama-8B", # 指定要加载的模型名称 max_seq_length = max_seq_len, # 使用上面定义的最大长度 dtype = dtype, # 使用前面设置的数据类型 load_in_4bit = load_in_4bit, # 使用4位量化 )
下一篇: 没有了
48229
46986
37892
35179
29695
26363
25303
20317
19989
18445
22°
49°
40°
88°
93°
87°
6075°
6794°
6276°
6245°