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类对应的模型,不然会报错。

相关推荐
励志成为糕手2 分钟前
动态置信度调优实战:YOLOv11多目标追踪精度跃迁方案(附完整代码)
人工智能·计算机视觉·目标跟踪
这里有鱼汤5 分钟前
用卡尔曼滤波器计算个股票相对大盘的相关性——β值
后端·python
m0_5587901415 分钟前
GPU算力平台评测
服务器·人工智能·python·深度学习·神经网络·目标检测·机器学习
2501_9247319924 分钟前
驾驶场景玩手机识别:陌讯行为特征融合算法误检率↓76% 实战解析
开发语言·人工智能·算法·目标检测·智能手机
Kyln.Wu36 分钟前
【python实用小脚本-169】『Python』所见即所得 Markdown 编辑器:写完即出网页预览——告别“写完→保存→刷新”三连
开发语言·python·编辑器
爱掉发的小李41 分钟前
Linux 环境下 Docker 安装与简单使用指南
java·linux·运维·c++·python·docker·php
数据知道1 小时前
机器翻译的分类:规则式、统计式、神经式MT的核心区别
人工智能·分类·机器翻译
siliconstorm.ai1 小时前
AWS 算力瓶颈背后:生成式 AI 的基础设施战争
大数据·人工智能·chatgpt
paid槮1 小时前
机器学习——逻辑回归
人工智能·机器学习·逻辑回归
Debroon1 小时前
大模型幻觉的本质:深度=逻辑层次,宽度=组合限制,深度为n的神经网络最多只能处理n层逻辑推理,宽度为w的网络无法区分超过w+1个复杂对象的组合
人工智能·深度学习·神经网络