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

相关推荐
kyriewen6 小时前
GPT-6 发布当晚,三大 AI 集体宕机 4 小时——我扒完时间线,发现最该慌的不是宕机
人工智能·程序员·ai编程
GrepowTattu6 小时前
从2026世界机器人大会看机器人补能:为什么智能充电正在成为重要一环
人工智能·机器人
IT_陈寒6 小时前
React Hooks闭包陷阱差点让我加班到凌晨
前端·人工智能·后端
揽秀亭长6 小时前
视频转文字工具对比:从字幕生成到文本整理
人工智能·音视频
工业甲酰苯胺6 小时前
AI低代码破局:制造业数智转型落地实战
大数据·人工智能·低代码·制造
CaseyWei6 小时前
Harness 架构 Multi‑Agent(多智能体)完整深度解析
人工智能·ai·架构·harness
白山编程大哥7 小时前
Java 集合算法:从排序、查找到底层原理的实战指南
java·python·算法
eaglewgs7 小时前
关于AI书写测试用例,谈一下我的思考
人工智能·测试开发·ai·测试用例·agent·测试经验·agent测试开发
熊野君7 小时前
第 4 章 技术产品经理核心能力模型
大数据·人工智能·产品经理
问天_观心7 小时前
大模型微调学习(一)
开发语言·人工智能·学习·语言模型·github