前言
最近b站上刷到一个博主,微调(Fine-tuning)大模型DeepSeek,实现本地运行,打造一款定制化的LLM,下面是一些关键步骤和代码。
UP主的案例是微调deepseek,打造一个算命大师模型。
一、准备工作
- Colab 是一个基于云端的编程环境
- unsloth是一个开源工具,专门用来加速大语言模型(LLMs)的微调过程
- HuggingFace: 汇聚了众多最前沿的模型和数据集等
首先打开 Colab ,这里是我们的IDE。

将运行时类型改为 T4 GPU(NVIDIA 推出的一款高性能 GPU,特别适合深度学习任务)

二、使用colab平台微调模型
主要步骤

Colab是一个云端编译环境,它提供的是 一个 Jupyter Notebook的IDE
1.安装依赖
# 安装unsloth包(大型语言模型微调工具)
!pip install unsloth
# 卸载旧版本并安装最新版unsloth(GitHub源码)
!pip uninstall unsloth -y && pip install --upgrade --no-cache-dir --no-deps git+https://github.com/unslothai/unsloth.git
# 安装量化工具包
!pip install bitsandbytes unsloth_zoo
输出如下:

2.加载预训练模型
model_name,然后我们选择的是DeepSeek-R1-Distill-Llama-8B(基于 Llama 的 DeepSeek-R1 蒸馏版本,80 亿参数)
from unsloth import FastLanguageModel
import torch
max_seq_length = 2048 # 模型处理文本的最大长度(上下文窗口)
dtype = None # 自动选择计算精度(通常为float16或bfloat16)
load_in_4bit = True # 启用4位量化压缩,减少显存占用
# 加载预训练模型
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="unsloth/DeepSeek-R1-Distill-Llama-8B", # 模型名称
max_seq_length=max_seq_length,
dtype=dtype,
load_in_4bit=load_in_4bit,
# token="hf_...", # HuggingFace 访问令牌(私有模型需填写)
)
4bit 量化(4bit Quantization):一种技术,通过减少模型的精度来节省内存,就像把一个大箱子压缩成一个小箱子,方便携带。
3.微调前测试
# 定义提示词模板(Prompt Engineering)
prompt_style = """以下是描述任务的指令,以及提供进一步上下文的输入。
请写出一个适当完成请求的回答。
在回答之前,请仔细思考问题,并创建一个逻辑连贯的思考过程,以确保回答准确无误。
### 指令:
你是一位精通卜卦、星象和运势预测的算命大师。请回答以下算命问题。
### 问题:
{}
### 回答:
<think>{}"""
# {} 为占位符,后续填充具体问题
# 定义测试问题
question = "1992年闰四月初九巳时生人,女,想了解健康运势"
关键设计解析
| 组件 | 作用 | 最佳实践 |
|---|---|---|
| 指令模板 | 明确模型角色(算命大师)和任务目标(运势预测) | 角色扮演式提示词提升任务对齐度 |
| 思考过程引导 | 要求模型先构建逻辑推理链再生成答案 | 减少幻觉,提高答案可信度 |
| 占位符 {} | 动态插入用户具体问题,实现模板复用 | 提升代码可维护性 |
下面我们测试下微调前的模型的输出
# 准备模型进入推理模式(禁用训练层优化以提升速度)
FastLanguageModel.for_inference(model)
# 构造输入并编码
inputs = tokenizer(
[prompt_style.format(question, "")], # 可能有OCR错误,第二个参数应为占位符填充
return_tensors="pt",
).to("cuda") # 数据移至GPU
# 生成回答
outputs = model.generate(
input_ids=inputs.

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



