引言

本文参考:

推荐视频:

5分钟学会微调大模型Qwen2_哔哩哔哩_bilibili

1.基本使用:

大模型学习-使用colab进行大模型训练_谷歌大模型训练-CSDN博客

2.修改模型:

大模型学习-在colab中训练并更换模型-CSDN博客

一、准备

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

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐