在colab中微调-合并-量化-导入本地一条龙——在colab进行lora微调1
引言
本文参考:
推荐视频:
1.基本使用:
大模型学习-使用colab进行大模型训练_谷歌大模型训练-CSDN博客
2.修改模型:
一、准备
1.上传文件
前提,在我的云端硬盘创建文件夹colab,然后分别上传两个压缩文件,分别是
夸克网盘链接分享:https://pan.quark.cn/s/4111e1cf658a
通过百度网盘分享的文件:微调前文件
链接:https://pan.baidu.com/s/13j-nKPR7WsOccYglLUTi1g?pwd=6666
提取码:6666
just_train.zip:用于微调的环境
Qwen2.5-1.5B-Instruct.zip:微调时用于切换的模型

2.配置colab
新建colab,修改笔记本设置,然后连接

二、解压上传
1.解压
挂载云盘
import os
from google.colab import drive
drive.mount('/content/drive')
进入colab目录
%cd /content/drive/MyDrive/colab
解压just_train.zip:大概12分钟左右
!unzip just_train.zip
解压替换模型到model:一分半左右
!unzip Qwen2.5-1.5B-Instruct.zip -d just_train/model
2.清理空间
分别执行下面三个命令:删除压缩文件、原模型文件。最好返回网盘看一下,有时候网盘反应非常慢,需要再手动删除、清理空间
import os
# 删除train_data.json 文件
os.remove("just_train.zip")
# 删除原模型文件
!rm -r /content/drive/MyDrive/colab/just_train/model/Qwen2-0.5B-Instruct
import os
# 删除Qwen2.5-1.5B-Instruct.zip 文件
os.remove("Qwen2.5-1.5B-Instruct.zip")
3.修改数据集
数据集格式参考
制作一个简单的问答数据集——在colab进行lora微调3-CSDN博客
进入just_train并验证
%cd just_train
!pwd
上传数据集
from google.colab import files
uploaded = files.upload()
删除默认的数据集
import os
# 删除train_data.json 文件
os.remove("train_data.json")
将上传数据集命名为默认数据集名
import os
# 重命名文件
os.rename("总训练集.json", "train_data.json")
三、微调
1.修改训练文件
在文件中找到train.py,双击打开

修改模型

修改训练参数

添加量化代码:注意,这一步非必须,如果不想量化请不要添加
model.save_pretrained_gguf("model", tokenizer,)

2.开始微调
执行命令,开始微调-合并-量化:大约两个半小时
!./train.sh
★如果添加了量化代码,微调后会自动合并,然后自动下载llama.cpp进行量化,请继续按照步骤四进行
★如果没有添加,微调后请保存Lora_model文件夹:先运行下面的代码,然后在文件中找到这个压缩文件,右键下载即可,最后请移步在colab通过lora_model(权重)运行微调后的模型并部署到本地-CSDN博客
import shutil
# 设置文件夹路径和压缩文件输出路径
folder_path = '/content/drive/MyDrive/colab/just_train/lora_model'
output_path = '/content/drive/MyDrive/colab/just_train/lora_model.zip'
# 压缩文件夹
shutil.make_archive(output_path.replace('.zip', ''), 'zip', folder_path)
四、在本地运行
1.下载gguf文件
完成后根据返回的路径,找到gguf文件,右键下载即可

2.导入ollama
下载完成后,移动到自己保存模型的位置,在同一个目录下新建txt文件,写入下面的内容,修改模型名字,保存退出,重命名为Modelfile,注意,没有后缀
Modelfile方案1:
FROM ./Model_Last-1.5B-F32.gguf
TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>{{ end }}<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
"""
PARAMETER stop "<|im_start|>"
PARAMETER stop "<|im_end|>"
Modelfile方案2,感觉效果要好一点:
FROM ./Model_Last-1.5B-F32.gguf
# 设置上下文窗口的大小为2048
PARAMETER num_ctx 2048
# 模型使用合并后的模型路径进行推理
SYSTEM """You are a helpful assistant. Answer questions based on the provided information."""
TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
"""
在该目录的空白位置,右键-在终端中打开,输入下面的代码,回车。完成后查看
# 注意修改模型名字model-name
ollama create model-name -f Modelfile
Ollama list

3.运行模型
ollama run GenshinQA:latest
更多推荐
所有评论(0)