多模态模型的训练llamafactory也可以训练,但是总的来说,llamafactory对多模态模型的支持还是不太多,ms-swift支持的多模态模型更多,因此有时候去找框架是否够支持相应的模型时会有所困难,所以对这些框架的代码也要稍微熟悉一些。
1.model_type
模型支持在swift/llm/utils/model.py中,目前能够支持的多模态模型还是很多,这对我们做一些实验室相对方便的,直接我记得我sft qwenvl时还有bs不能大于1的bug,不知道目前解决了没有,目前我实验的llava和internvl2都没有bs=1的限制了。目前llama-vision只能在最新的swift的main分支中,还有合并进最新版本,不过问题也不大。
2.swift对数据的支持包括两种
一种是data.jsonl中添加,这和llamafactory一致的
另一种直接加载相应的转换格式的jsonl或者json文件。
3.template_type
swift中的参数基本都是一致的,没有太多需要调的空间,唯一需要调整的也就是model_type和template_type了,swift/llm/utils/template.py,其实这种框架本质上都是依赖hf的transformer和peft等库进行训练的,当然trainer基本都是自家封装的,但是训练这块基本都是相似的transformer的模式,因此其实更多的还是数据转换,一些预处理之类的东西有所区别。
4.参数
swift/llm/utils/argument.py中,主要关注的就是SftArguments了。