微调后的模型保存与加载

在Hugging Face Transformers库中,微调后的模型保存与加载方式因微调方法(如常规微调或参数高效微调)而异。

一、常规微调模型的保存与加载

1、 保存完整模型
  • 使用 save_pretrained() 方法可将整个模型(包含权重、配置、分词器)保存到指定目录:
    保存模型、分词器、配置
python 复制代码
model.save_pretrained("./my_finetuned_model")
tokenizer.save_pretrained("./my_finetuned_model")
  • 生成以下文件:

    pytorch_model.bin(或 tf_model.h5):模型权重

    config.json:模型结构配置

    tokenizer_config.json:分词器配置

2、加载模型
  • 通过 from_pretrained() 加载已保存的完整模型:
python 复制代码
from transformers import AutoModelForSequenceClassification, AutoTokenizer

model = AutoModelForSequenceClassification.from_pretrained("./my_finetuned_model")
tokenizer = AutoTokenizer.from_pretrained("./my_finetuned_model")
3、将模型转换为 .safetensors 格式保存
python 复制代码
# 指定保存目录并启用安全序列化
save_path = "./saved_model"
model.save_pretrained(save_path, safe_serialization=True)  
  • 执行后会在 saved_model 目录生成以下文件:

    model.safetensors(权重文件)

    config.json(模型配置)

    tokenizer.json(分词器配置,如有)

4、分片保存大模型‌

针对体积较大的模型,可分割为多个 .safetensors 文件:

python 复制代码
# 设置分片尺寸(单位:MB)
model.save_pretrained(save_path, safe_serialization=True, max_shard_size="2GB")  
  • 生成文件名格式为 model-00001-of-00005.safetensors,并附带索引文件 model.safetensors.index.json。

二、参数高效微调(如LoRA)的保存与加载

1、仅保存适配器权重

使用LoRA等参数高效方法时,只需保存增量权重(通常几十MB):

  • 保存LoRA适配器
python 复制代码
model.save_pretrained("./lora_adapter")
  • 生成文件:
    adapter_model.bin(或 .safetensors):适配器权重
    adapter_config.json:适配器配置(含基础模型路径)
2、加载适配器

加载适配器,与原模型合并:

python 复制代码
from transformers import AutoModelForCausalLM
from peft import PeftModel, PeftConfig

# 加载基础模型
base_model = AutoModelForCausalLM.from_pretrained("./base_model")  

# 加载PEFT适配器
peft_config = PeftConfig.from_pretrained("./peft_adapter")
# 将adapter_model.safetensors中的低秩矩阵(如LoRA的A/B矩阵)加载到基础模型的指定位置(如q_proj、v_proj)
'''
PEFT的核心思想是通过冻结基础模型(如Llama-2、Mistral等)的原始参数,仅训练适配器层(如LoRA的低秩矩阵)。保存模型时:

​基础模型权重:保持原始精度(如FP32)或量化状态(如4-bit NF4)
​适配器参数:以独立文件存储(adapter_model.safetensors)
​配置元数据:记录适配器类型、注入位置等(adapter_config.json)
'''
peft_model = PeftModel.from_pretrained(base_model, "./peft_adapter")
3、合并权重
  • 若需独立部署,可将LoRA权重合并到原模型中:
python 复制代码
merged_model = model.merge_and_unload()
merged_model.save_pretrained("./merged_model")  # 保存完整模型(数GB)
  • 加载完整模型
python 复制代码
# 直接加载完整模型
full_model = AutoModelForCausalLM.from_pretrained("./full_model") 

三、使用Trainer API的自动保存

通过 TrainingArguments 设置自动保存策略:

python 复制代码
from transformers import TrainingArguments

args = TrainingArguments(
    output_dir="./results",
    save_strategy="epoch",  # 按epoch保存
    load_best_model_at_end=True  # 训练结束后加载最佳模型
)

训练完成后,最佳模型会保存在 output_dir 中

python 复制代码
trainer = Trainer(model, args, ...)
trainer.train()

四、unsloth 微调后的模型 保存

基于 Unsloth 的微调模型保存具有高度灵活性

1、LoRA 适配器轻量级保存
python 复制代码
model.save_pretrained("./lora_model")  # 仅保存适配器(约100MB)
tokenizer.save_pretrained("./lora_model")

特点:

  • 仅存储微调增量参数,适合迭代开发阶段

  • 需配合原始基础模型加载使用

  • 文件结构:adapter_model.bin + adapter_config.json

2、全量模型合并保存
  • 合并为FP16精度(生产环境推荐)
python 复制代码
model.save_pretrained_merged(
    output_dir="merged_16bit",
    tokenizer=tokenizer,
    save_method="merged_16bit"
)
  • 4位量化版(显存敏感场景)
python 复制代码
model.save_pretrained_merged(
    output_dir="merged_4bit",
    tokenizer=tokenizer,
    save_method="merged_4bit"
)
3、GGUF 高效推理格式导出
  • 标准Q8_0量化(平衡型)
python 复制代码
model.save_pretrained_gguf("gguf_model", tokenizer)
  • 极致压缩Q4_K_M(移动端适用)
python 复制代码
model.save_pretrained_gguf(
    "gguf_model",
    tokenizer,
    quantization_method="q4_k_m"
)
4、多格式混合保存
  • 适配器 + 合并模型 + GGUF
python 复制代码
model.save_pretrained("lora_model")  # 适配器
model.save_pretrained_merged(...)     # 16bit合并
model.save_pretrained_gguf(...)      # GGUF格式
相关推荐
WilliamHu.1 天前
金融分类提示词演示
开发语言·python·大模型·prompt
缘友一世2 天前
LangGraph智能体(天气和新闻助手)开发与部署
语言模型·langchain·大模型·llm·langgraph
WSSWWWSSW2 天前
华为昇腾NPU卡 文生视频[T2V]大模型WAN2.1模型推理使用
人工智能·大模型·音视频·显卡·文生视频·文生音频·文生音乐
青衫客362 天前
LLM—— 基于 MCP 协议(Stdio 模式)的工具调用实践
大模型·llm·mcp
Stara05112 天前
基于Coze平台的自动化情报采集与处理引擎—实现小红书图文到飞书的端到端同步
人工智能·大模型·ocr·飞书·工作流·ai agent·coze
Sherlock Ma2 天前
字节跳动GR-3:可泛化、支持长序列复杂操作任务的机器人操作大模型(技术报告解读)
人工智能·计算机视觉·语言模型·机器人·大模型·aigc·具身智能
青衫客362 天前
LLM—— 基于 MCP 协议(SSE 模式)的工具调用实践
python·大模型·llm
audyxiao0012 天前
2025年6月数据挖掘顶刊TKDE研究热点有哪些?
人工智能·数据挖掘·大模型·热点分析·tkde
汀、人工智能3 天前
AI Compass前沿速览:可灵创意工坊、字节Coze Studio&Coze Loop、通义万相2.2 、智谱GLM-4.5、腾讯混元3D世界模型开源
人工智能·大模型
XiaoLeisj3 天前
【智能协同云图库】智能协同云图库第八弹:基于阿里云百炼大模型—实现 AI 扩图功能
spring boot·阿里云·java-ee·大模型·ai编程·ai 大模型·ai 图片生成