LlamaFactory——如何使用魔改后的模型

需求来源:有时我们可能想在llamafactory框架支持的模型上进行一些改动,例如修改forward()方法等,修改方法我们可以通过继承Transformers库中相应的class并重写相应的方法即可,那我们如何使用自己的模型呢?

首先,我们需要定位模型初始化的相关代码,具体路径为:LLaMA-Factory-main/src/llamafactory/model/loader.py

python 复制代码
# 大致在169行的位置
model = load_class.from_pretrained(**init_kwargs)

上述代码实现了模型的初始化,其中load_class是OrderDict的一个子类,功能主要是根据config的类型找到对应模型class,例如Qwen2VLConfig(源码:transformers/models/qwen2_vl/configuration_qwen2_vl.py)对应Qwen2VLForConditionalGeneration(源码:transformers/models/qwen2_vl/modeling_qwen2_vl.py),本质上类似于字典,那我们只需要把相应的值替换为我们自己的模型即可,具体代码如下:

python 复制代码
load_class.register(type(config), YourCustomModelClass, exist_ok=True)
model = load_class.from_pretrained(**init_kwargs)

使用load_class的register()方法,把模型class替换为自己的模型即可,一定注意参数exist_ok要设置为True,才能覆写已有Config类对应的模型,不然会报错。

相关推荐
高洁014 分钟前
工信部教考中心证书
人工智能·深度学习·算法·机器学习·知识图谱
桃西西呀6 分钟前
Harbor 不是 RL 框架:评测 vs 训练,以及它能产出什么
人工智能
一木 之林7 分钟前
Python.六.(一)--1.标准库、常用工具与基础操作(进阶)
python·rpc·dubbo
QYR_119 分钟前
光伏级ETFE薄膜市场2032年预计达5.54亿元,10.6%增速打开轻量化光伏新空间
人工智能
小黄人软件15 分钟前
【证书批量转换】PEM->CER证书批量转换工具.exe 纯 Python实现,无需安装OpenSSL
人工智能·学习
tanglinS17 分钟前
工业陶瓷在半导体设备里都用哪里?氮化铝基板与氮化硅结构件的静电无尘角色
大数据·运维·人工智能·自动化·材质
ZJU_统一阿萨姆23 分钟前
【推理优化】连续批处理:当推理吞吐量遇到天花板
人工智能·语言模型·系统架构
月光船幽幽26 分钟前
铁牌协议卡:节流与重构
python·重构
AI攻城狮小关31 分钟前
Claude Code 接入 DeepSeek 完整教程:3 步配置,告别订阅限额
人工智能·程序人生·api·agent·配置教程
aiot1891893521841 分钟前
2026IOTE国际物联网展,深圳国际会展中心10B52蓝牙AOA行业内卷到头没有?
人工智能·人员定位·室内定位·蓝牙aoa·核芯物联