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

相关推荐
霍格沃兹测试开发学社测试人社区1 小时前
新手指南:通过 Playwright MCP Server 为 AI Agent 实现浏览器自动化能力
运维·人工智能·自动化
JJJJ_iii1 小时前
【机器学习01】监督学习、无监督学习、线性回归、代价函数
人工智能·笔记·python·学习·机器学习·jupyter·线性回归
qq_416276423 小时前
LOFAR物理频谱特征提取及实现
人工智能
Python图像识别4 小时前
71_基于深度学习的布料瑕疵检测识别系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)
python·深度学习·yolo
余俊晖4 小时前
如何构造一个文档解析的多模态大模型?MinerU2.5架构、数据、训练方法
人工智能·文档解析
千码君20165 小时前
React Native:从react的解构看编程众多语言中的解构
java·javascript·python·react native·react.js·解包·解构
淮北4945 小时前
windows安装minicoda
windows·python·conda
Akamai中国5 小时前
Linebreak赋能实时化企业转型:专业系统集成商携手Akamai以实时智能革新企业运营
人工智能·云计算·云服务
LiJieNiub6 小时前
读懂目标检测:从基础概念到主流算法
人工智能·计算机视觉·目标跟踪
哥布林学者7 小时前
吴恩达深度学习课程一:神经网络和深度学习 第三周:浅层神经网络(二)
深度学习·ai