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 分钟前
python 常见数学公式函数使用详解
python
神经星星8 分钟前
入选ICML 2025!哈佛医学院等推出全球首个HIE领域临床思维图谱模型,神经认知结果预测任务上性能提升15%
人工智能·深度学习·机器学习
水寒之11 分钟前
openCV
人工智能·opencv·计算机视觉
m0_6407435631 分钟前
华为OD-2024年E卷-字符串化繁为简[200分] -- python
python·华为od
卜及中35 分钟前
【Python】数据处理工具:Pandas详细指南
开发语言·python·学习·pandas
企销客CRM41 分钟前
CRM管理系统的用户权限设置与管理技巧:构建安全高效的数字化运营体系
大数据·数据库·人工智能·数据分析·企业微信
ClouGence1 小时前
RAG 升级之路:如何让问答机器人真正“智能”起来
人工智能·ai·机器人
Kusunoki_D1 小时前
Python 使用 Requests 模块进行爬虫
爬虫·python
激进小猪10021 小时前
Python算法笔记1_双指针问题
笔记·python·算法
xcs194051 小时前
java 导入数据和数据验证处理方案
java·linux·python