Windows下中文微调Llama3,单卡8G显存只需5分钟,模型可接入GPT4All、Ollama,实现CPU推理聊天,附Colab一键训练脚本。
ฝัง
- เผยแพร่เมื่อ 4 ก.ค. 2024
- Windows下中文微调Llama3,单卡8G显存只需5分钟,模型可接入GPT4、Ollama,实现CPU推理聊天,附Colab一键训练脚本。
Llama3模型申请与本地部署
• Llama 3 模型申请与本地部署的几种方法...
AI大模型搭建本地知识库
• Video
Llama2微调教程
• 🦙使用自己的数据微调Llama 2 最简单方...
Llama2申请与本地部署
• Llama2模型申请与本地部署详细教程
colab一键训练
colab.research.google.com/dri...
unslo本地安装包下载
百度网盘:pan.baidu.com/s/17XehOXC2LMbn...
谷歌网盘:drive.google.com/drive/folder...
视频里训练的lora:drive.google.com/file/d/1REtJ...
Windows本地部署条件
1、Windows10/Windows11
2、英伟达卡8G显存、16G内存,安装CUDA12.1、cuDNN8.9,C盘剩余空间20GB、unsloth安装盘S40GB
3、依赖软件:CUDA12.1+cuDNN8.9、Python11.9、Git、Visual Studio 2022、llvm(可选)
4、HuggingFace账号,上传训练数据集
Windows部署步骤
一、下载安装包
1、安装cuda12.1,配置cuDNN8.9
2、安装Visual Studio 2022
3、解压unsloth
4、安装python11
5、安装git
6、设置llvm系统环境变量(可选)
二、安装unsloth
1、使用python11创建虚拟环境
python311\python.exe -m venv venv
2、激活虚拟环境
call venv\script\activate.bat
3、安装依赖包
pip install torch==2.2.2 --index-url download.pytorch.org/whl/cu121
pip install "unsloth[colab-new] @ git+github.com/unslothai/unsloth....
pip install --no-deps trl peft accelerate bitsandbytes
pip install deepspeed-0.13.1+unknown-py3-none-any.whl
pip install triton-2.1.0-cp311-cp311-win_amd64.whl
pip install xformers==0.0.25.post1
4、测试安装是否成功
nvcc --version
python -m [xformers.info](xformers.info/)
python -m bitsandbytes
5、运行脚本
test-unlora.py 测试微调之前推理
fine-tuning.py 用数据集微调
test-lora.py 测试微调之后推理
save-16bit.py 合并保存模型16位
save-gguf-4bit.py 4位量化gguf格式
三、4位量化需要安装llama.cpp,步骤如下:
1、git clone github.com/ggerganov/llama.cpp
2、按官方文档编译
mkdir build
cd build
cmake .. -DLLAMA_CUBLAS=ON
3、设置Visual Studio 2022中cmake路径到系统环境变量path里
C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin
C:\Program Files\Microsoft Visual Studio\2022\Professional
4、编译llama.cpp
cmake --build . --config Release
5、如果上面这句编译命令无法执行,需要做以下操作:
复制这个路径下的
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\extras\visual_studio_integration\MSBuildExtensions
4个文件,粘贴到以下目录里
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Microsoft\VC\v170\BuildCustomizations
6、编译好以后,把llama.cpp\build\bing
elease目录下的所有文件复制到llama.cpp目录下
7、重新运行fine-tuning.py微调保存为
00:00 介绍
00:44 第一部分colab微调
02:18 训练数据集
03:26 微调设置与训练
06:21 微调后用GPT4All推理
07:21 第二部分本地微调
08:46 本地部署训练程序
13:28 本地微调
14:42 本地量化4位模型 - วิทยาศาสตร์และเทคโนโลยี
弱智吧数据集
huggingface.co/datasets/kigner/ruozhiba-llama3-tt/tree/main
多谢UP主 非常专业 就是感觉 一看就会会 上手就费
微调确实需要LLM基础知识,不过colab上运行还是很简单的,准备好数据一键运行
@@AIDiscovery2045 感觉主要是配环境踩坑卡住搜答案的过程~这种自己微调量化的模型UP主有发现什么好商业化的用途么?
@@bladethirst1 2B还是有些市场的
感谢分享
very good!
讚
👍👍👍
請問Intel ARC A770 16GB不能使用你的模型進行推理嗎?
请问,老师您有讨论群吗,我遇到了问题,很棘手
网络导师您好,请问后期会不会出一个相对基础的教程?目前所有的教程都太high-level了,并没有很详细的“知其所以然”,仅仅是”知其然“。
可以去一些大学或相关机构的网站找AI相关的开放课程,要学习不短时间才可能知其所以然
up主想问一下你有考虑用Mac来训练吗,mac M系列的内存是unified的
unsloth库原生支持Linux,mac下还没测试过,但应该比windows下更简单
@@AIDiscovery2045 试一下吧,发出个教程
感謝分享教學 真的看得好就其實就有點不簡單 要實操更廢腦
不過看起來要把資料上傳到hugfacce上感覺有點不保險耶,除非用的是以開源的訓練集
另外請問colab訓練出來的model,16GB是會吃掉那個磁碟的容量? google雲端的嗎? 謝謝
model都在colab上,手动才能同步google drive
@@AIDiscovery2045 謝謝 所以model會有個暫存檔路徑?
請問您用的colab是付費版本,還是免費的
一定要把資料上傳到網站上嗎?
@@user-mv9ul9tz1c 我用的付费版。但演示时选的显卡是免费账号也能选到的T4;是的,目前训练数据要上传到hugging face
@@AIDiscovery2045 上傳到hugging face的資料會被公開嗎? 會有洩漏風險嗎?
@@user-mv9ul9tz1c 有
pip install xformers 時,由於xformers現在的版本已經到0.0.26版本了,跟原本裝好2.2.2版本的torch衝突
造成它會自動把已經裝好的torch更新,變成沒有連接到cuda版本(cu121)的torch
建議安裝xformers時,要指定版本為 pip install xformers == 0.0.25.post1
是的,colab的脚本已经改过了。
Installing collected packages: torch, xformers
Attempting uninstall: torch
Found existing installation: torch 2.2.2+cu121
Uninstalling torch-2.2.2+cu121:
Successfully uninstalled torch-2.2.2+cu121
Successfully installed torch-2.3.0 xformers-0.0.26.post1
哈哈, 早点看到这回覆, 就不用花了30分鐘來排解了....
你好,up主,可以换成那些用大量中文数据训练好的模型作为基础来二次训练吗? base模型感觉对中文太弱了
这个还没详细测试过;不过用官方库(github.com/meta-llama/llama-recipes )
肯定是可以的,只要硬件资源够。
硬件不给力玩不起,上期节目本地maxKB有用,不过,知识库没处理好还是怎么的,老出乱码,甚至英文,用的llama3没微调,切换到qianwen7b老是失败,在ollama下运行却是正常运行千问的。整体而言,能用而已,还好麻烦,什么时候可以像stablediffusion一样搞个安装包自己下模型那样就方便了,maxkb要docker比较麻烦,不能全程离线打包转移到别的设备,就只能自己电脑玩玩了,8G内存显卡能用的本地大模型都还有点傻。估计要能简单好用,还得几个月,希望到时能看到你的视频。普通硬件就跑别人跑好的模型,省电安心,希望一年内有8G显存也能好好工作的本地牛逼大模型
不是有点傻,是很傻,如何让模型在聊天中成长就好了
问一下你的那个“百度弱智吧”的JSON文件是不是没有共享出来?
在unsloth的zip包里
笑出聲 睿智AI
请问一下,能否加载本地的数据集fine tune啊?
from datasets import load_dataset, Dataset
local_file_path = './ruozhiba_qa.json'
dataset = Dataset.from_json(local_file_path, split='train')
改成这样就可以
提供補充,還需要這三個環境變數才能正常微調訓練(我是用powershell,用cmd的自己轉換一下):
$env:PATH = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin;" + $env:PATH
$env:PATH = "C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.39.33519\bin\Hostx64\x64;" + $env:PATH
$env:CC = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin
vcc.exe"
感謝
你成功了吗?我路径全部设置对了,但是还是报错,“cl: 命令行 warning D9002 :忽略未知选项“-O3””都是这种c编译器不接受linux代码的报错,我visual studio已经重装几次了,怀疑是不是triton编译的问题,所有的库设置成教程中的版本了还是不行
成功
@@yuxiangchen1373 我是報錯 找不到 編譯器 加完CC就好了 還有 pytorch 要用 2.3.0
你好,请教一下:微调后测试回答非常好,使用f16合并模型,再转换成f16位的gguf格式。最后以Ollama加载,回答差强人意,这是怎么回事呢?如何解决呢?
不量化,直接保存f16,ollama好像并不支持q4_k_m
編譯的 warning C4819 有辦法消除嗎?
能教一下huggingface下载的gguf文件怎么使用吗,我用ollama加载后乱回答问题
ollama有些加载不了,可以看下官方说明支持哪些格式
3:18 你是怎么做到按 Ctrl+v 界面显示的啊
请问保存成GGUF的时候报错怎么办? RuntimeError "Unsloth: first_conversion can only be one of ['f16', 'bf16', 'f32', 'q8_0'] and not {first_conversion}."
RuntimeError: Unsloth: first_conversion can only be one of ['f16', 'bf16', 'f32', 'q8_0'] and not f16.
可能需要手动转换了;这个错误提示:第一次保存为f16时应该就没成功
训练完后回答开始重复了,这种是什么情况?是不是对同个数据集多次训练能提升模型?
### Input:
儿童听力障碍不可逆的听力损失怎么治疗
### Response:
1. 通过听力训练和辅助听力设备来改善听力。 2. 通过语言训练和辅助语言设备来改善语言能力。 3. 通过听觉康复来改善听觉功能。 4. 通过听觉康复来改善听觉功能。 5. 通过听觉康复来改善听觉功能。 6. 通过听觉康复来改善听觉功能。 7. 通过听觉康复来改善听觉功能。
把输出token改小一点
关注,谢谢分享,我准备了一个数据集测试了一下,发现它回答能够引用数据集,但是全是在胡说,好像把数据集混淆了 ,然后乱答,这是怎么回事呢? 我的数据集涉及专业问题,基本都是 what is issue01 ? What is issue02 ?这种。
我是在本地部署,请问为什么在执行完test-unlora.py命令后,.cache\huggingface\hub\models--unsloth--llama-3-8b-bnb-4bit\blobs 下是空的,没有模型
可能在snapshots目录下
能直接用博主你的模型吗?直接下载你调好的模型,放到GPT4ALL里用
视频下方说明里共享链接
按照博主分享的步骤操作的,可在激活虚拟环境的时候显示系统找不到指定路径是什么原因
使用绝对路径;另外提醒一下,本期视频并不是面向零技术基础的朋友,建议您可以先用colab直接体验,有个感性认识
我在colab 微调之后 转换成gguf 然后在m1 mac 跑,问中文说英文,一问三不知,你有头绪吗
如果在colab上训练后能正确对话,那可能就是gpt4all的问题。
本地訓練AI Model比起On line 訓練,微調😮😮,比較不會洩漏個資😂😂,收到許多SPAM😊
博主,可以把电脑系统环境变量配置发出来吗
不要用conda安装;环境变量添加cuda、visual studio 2022、llvm,还有共享网盘里有个readme文档,里面有几个路径
您好!可否给出anaconda下建立虚拟环境的安装过程?谢谢了
如果是linux下,按官方步骤就可以用conda安装;windows下conda安装不了,目前只有视频演示的这种办法
你好想請問,訓練好的模型,是否可以跟下一個微調的模型合併
不能,只能把一次微调后的LoRA+原始模型合并
@@AIDiscovery2045 好的 非常感謝
请问一下,到了gpt4all里面回答的异常简单,远远不如测试时的情况好,这是为什么啊?
跟GPU和llama.cpp都有关系,我测试过程中也量化了好几次,有的回答简单,有的回答啰嗦,还有的中英文混杂的,跟SD炼丹一样,有随机性
看了两遍,还是太繁琐!
是有点复杂,不过这是用8G显存,在原生windows下(不借助WSL2)微调llama3 8B的唯一方法😃
您好.我在colab中 from unsloth import FastLanguageModel 报错,AttributeError: module 'torch._functorch.eager_transforms' has no attribute 'grad_and_value'.请问该怎么处理。
Reply
伸手党弱问,有训练好的模型下载吗
视频下方详细说明里有google drive
請問要continual pre-training的話也可以用unsloth做嗎?
unsloth主要是SFT和DPO微调,全参训练可以参考官方库llama-recipes
这种方法可以微调除了llama3以外的其他模型吗?
可以但不是全部,目前unsloth微调库支持热度 较高的模型有llama、Gemma 、Mistral,还有微软的Phi-3等
研究下xtuner?这个好像不用4位量化版本就可以在低显存的机器上微调
是的,微调模型已经是量化好了。但我演示的是不使用wsl2,直接在windows上运行
請問可以微調成繁體中文嗎 如果可以我需要調整哪個部分
训练的数据集用繁體就可以了
您好!我跟着您的脚本一直到微调后的测试都是没有问题的。但是我merge成gguf然后倒入到GPT4all后就开始胡言乱语了。请问是什么原因呢?
两种可能:精度转换损失,或者GPT4all的系统提示模型有问题。可以手动加载测试
Up主好,我调整了整个c盘的使用权限,但还是报错PermissionError: [WinError 5] 拒绝访问。有什么好的解决方案吗
以管理员运行命令窗口
設備太舊用不了, 2060super不知道應該裝哪個torch跟cuda toolkit...
显存8GB就可以,低了不行。xformers 0.0.25.post1 , torch2.2.2 , cuda toolkit 12.1 +cuDNN 8.9
@@AIDiscovery2045 謝謝 我再試試看
Failed to find C compiler. Please specify via CC environment variable,找不到C是要重装么?
安装visual studio 2022,钩选 [使用c++桌面开发],如果还提示C comiler 就手动添加这个路径到系统环境变量里 C:\Program Files\Microsoft Visual Studio\2022\Professional
加CC就好 nvcc.exe路徑
我在执行到colab上量化模型的那一步时报错RuntimeError: Unsloth: llama.cpp GGUF seems to be too buggy to install.
File a report to llama.cpp's main repo since this is not an Unsloth issue.请问up这个问题应该怎么解决呢,感谢您
选T4 GPU,或者用视频下方的colab笔记本
@@AIDiscovery2045 选择的是T4GPU,再次尝试还是报错
8G 能调?有点小
您好.我在colab中 第二步載入階段報錯 ,看似在第一步from unsloth import FastLanguageModel 出問題 想問要怎麼處理
已修改,现在可以了
@@AIDiscovery2045 我剛剛嘗試了一下,在執行第九階段 會出錯,這邊是他的提示訊息
RuntimeError: Unsloth: Quant method = [q] not supported. Choose from below:
再麻煩幫忙看一下
@@apple86128 已经改过了,现在可以转gguf了
python版本必须使用教程中的那个吗,可以用conda建一个版本一样的吗,我用教程中的方法没有成功
conda更安装不了。如果本地不成功,建议用colab试试。反复测试过,只要硬件条件满足,按教程是可以本地部署微调的
@@AIDiscovery2045 8b成功了,unsloth框架70b-4bit能够微调吗,需要多大的显卡内存,
@@user-ot8ww7vh8s 70b没测试过,预估4090应该可以的
@@AIDiscovery2045 我这有两张3090显存有49左右
@@AIDiscovery2045 可以出一个70b的教程吗博主
微調後結果是滿意的
但經過量化後 使用ollama run Q4_K_M gguf 開始胡亂回答
請問可能是什麼原因
f16--->int4量化损失
希望能出个linux的教程❤
用windows 都是非开发者出身的,网上几乎都是windows,连用mac的都没出几个。没办法,开发者又可能不善于做自媒体
微调出现这个就卡主了raise RuntimeError("Failed to find C compiler. Please specify via CC environment variable.")
RuntimeError: Failed to find C compiler. Please specify via CC environment variable.
0%| | 0/60 [00:01
我也是
我也是在 python fine-tuning.py 出現這個錯誤 raise RuntimeError("Failed to find C compiler. Please specify via CC environment variable.")
RuntimeError: Failed to find C compiler. Please specify via CC environment variable.
我也是
设置环境变量 CC = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1\bin
vcc.exe 可以解决这个问题
llama.cpp 好像不能用Master的 python llama.cpp/convert.py 会找不到convert.py文件,这个应该怎么改?
那只能克隆上一个版本分支了
亲,我想训练一个Excel VBA编程的大模型,请问我该从何做起呢?谢谢!
等llama3 code版
或者可以用llama 2
th-cam.com/video/Eu_QFythNjQ/w-d-xo.html
@@AIDiscovery2045 他们好像都只是支持派森或者C语言哦,不知道vba掂不掂
可以把模型文件上传到网盘吗up
第一次执行test下下来的那个
请问能否微调成nsfw?
有现成的无限制版本,可以搜索一下
triton 文件可以单独发一下吗, 谢谢啦
google drive里有
@@AIDiscovery2045 感谢回复, 在triton 编译时候遇到了问题, E:\miniconda3\envs\unsloth\Lib\site-packages\triton\common\..\third_party\cuda\include\cuda.h(55): fatal error C1083: 无法打开包括文件: “stdlib.h”: No such file or directory 不知道是不是哪个环境变量没有设置正确.
搞定了 要设置 CC变量到nvcc 我用了VC的编译器...
@@haanzheng llvm
@@haanzheng 請問要怎麼設定CC到nvcc?我也有同樣的問題
pip install xformers==0.0.25.post1 这个要指定,不然装到最新的有问题
是的,colab脚本里改过了,视频说明里忘记改了
我在本地进行测试一切正常,当我进行微调时,出现了创建线程无访问权限的问题,以下是问题报错日志:
File "D:\Llama3\unsloth\Python311\Lib\subprocess.py", line 1538, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [WinError 5] 拒绝访问。
0%| | 0/60 [00:01
以管理员打开命令窗口运行试试
@@AIDiscovery2045 我已经使用了管理员打开cmd,仍然报这个问题,使用pycharm依然如此
這是路徑問題 看下面留言的 path要加 CC環境變量要設
@@gogochicken2 谢谢你,已经成功了,确实是环境变量的问题
@@problem-vz8zb 你好,请问下你是怎么解决的,加了哪个环境变量就好了?
safetensors 如何加载 啊?
ollama lm studio都可以,官方库也能加载
llama factory跟这个比怎么样?
它底层好像用的也是unsloth
raise RuntimeError("Failed to find C compiler. Please specify via CC environment variable.") RuntimeError: Failed to find C compiler. Please specify via CC environment variable.2080Win10报错这个,怎么解决
这是找不到GCC编译器,两种解决办法,一是添加VS 2022路径到系统环境变量;或者下载llvm压缩包,解压后把bin路径添加到系统环境变量了。
@@AIDiscovery2045 才试了有报另一种错,
@@user-ot8ww7vh8s 要用视频里同样的版本,不然triton安装不了。
@@AIDiscovery2045 triton安装成功了的
@@AIDiscovery2045 怎么显示安装成功了的呀
微调出现这个就卡主了, FileNotFoundError: [WinError 2] The system cannot find the file specified 不知是那里出了问题。。
看下解压后的目录结构,不熟悉可以跟视频里建一样的目录
中文目录或文件名?
止步于4g显卡
4G卡可以试试微软的Phi-3,能在手机上运行
为什么我啥也没干就限额了
可以把共享的内容加星标到自己的google drive里,然后下载就能突破下载限额了
出个ubuntu版本的呗
linux下参照unsloth官方步骤,比windows下更容易部署
@@AIDiscovery2045 谢谢哥
按照教程一步一步,咋还报错
colab上还是本地部署?
量化4位太蠢了啊 之前的问题都答非所问
是的,损失太大了。如果又快又聪明,那老黄的卡都卖不出去了^_^
哈喽,测试命令最后一项显示不成功,bitsandbytes。the installed version of bitsandbytes was compiled without GPU support……
win10/win11 N卡,cuda12.1 visual studio 2022,python版本这些建议一致,其他版本没详细测试
@@AIDiscovery2045 win10 n卡4070ti 16g 安装都是用的百度盘里的。python 装过2.3的,删了按视频里装的2.2.2
@@simonwu6992 unsloth压缩包里有pip list.txt文件,那是我测试环境下最终的依赖包列表,可以跟你本地的对比下
linux能微调吗?需不需要科学上网?😁
可以,unsloth原生支持linux,直接git官方库即可;需要科学上网
@@AIDiscovery2045 多谢🙏