我发现很多开源多模态模型训练是在手工构建的模型上进行的。目前没有统一的系统能够提供一个接口,以便利用HuggingFace中的单模态模型轻松生成多模态模型。因此,我实现了[Cornstarch](https://github.com/cornstarch - org/Cornstarch),它能提供接口来生成你想要的任何多模态模型;不只是视觉语言模型,你还可以用任意数量的编码器实现多模态模型,每个模型都在HuggingFace transformers中。我相信这对想要构建新多模态模型的研究人员会有帮助。例如,如果你想给llama添加编码器(mllama中使用的不同编码器),可以像下面这样做:vision_encoder = SiglipVisionModel.from_pretrained(“google/siglip - so400m - patch14 - 384”);audio_encoder = WhisperEncoder.from_pretrained(“openai/whisper - large - v3”);llm = AutoModelForCausalLM.from_pretrained(“meta - llama/Llama - 3.2 - 3B - Instruct”);mllm = MultimodalModel(encoders = {“vision”: ModalEncoderModule(vision_encoder), “audio”: ModalEncoderModule(audio_encoder)}, language_model = llm);此外,Cornstarch提供多模态模型的分布式训练。我们有[教程](https://cornstarch - org.github.io/parallelization/)以便轻松并行化。对于那些想要训练自定义多模态模型的人,请尝试并分享你的想法!
讨论总结
原帖作者构建了一个名为Cornstarch的框架用于训练自定义多模态模型。评论者们展开了一系列技术层面的讨论,包括模型合并能否达成特定效果、模型训练中的配置和向量形状等问题,也有分享自己构建类似框架经验的,整体氛围积极,大家互相交流技术见解。
主要观点
- 👍 是否可将特定模型合并后通过训练得到视觉模型
- 支持理由:有人询问是否可以用任意的LLM模型和SigLIP ViT模型合并成LLM再训练得到视觉模型,体现出对此技术操作的好奇。
- 反对声音:无
- 🔥 对Cornstarch框架在构建新模型时投影向量形状正确性提出疑问
- 正方观点:评论者对构建新模型(如包含音频嵌入)时投影向量形状正确性表示疑惑。
- 反方观点:无
- 💡 构建的框架支持多个音频编码器
- 解释:Theio666分享自己构建音频大型语言模型框架时提到支持多个音频编码器。
金句与有趣评论
- “😂 Ambitious - Toe7259: So, in this case, could I take any LLM model and a SigLIP ViT model and merge them into the LLM?”
- 亮点:直接提出关于模型合并的基础疑问,开启了相关讨论。
- “🤔 How do we make sure the projection vectors are the right shape?”
- 亮点:针对框架构建新模型时的关键技术点提出疑问。
- “👀 We had built a similar framework when started working on audio llm.”
- 亮点:开启了经验分享的话题。
情感分析
总体情感倾向积极,大家都在积极探讨技术问题,没有明显的分歧点。主要原因是这是一个技术交流的场景,大家都专注于分享知识和解决技术疑惑。
趋势与预测
- 新兴话题:将不同模型进行合并训练得到新模型的相关操作可能会进一步引发讨论。
- 潜在影响:对人工智能领域的模型构建、训练等技术发展可能有推动作用,有助于开发更多功能强大的多模态模型。
详细内容:
标题:自主构建框架训练自定义多模态模型引发的热门讨论
在 Reddit 上,一则关于自主构建框架训练自定义多模态模型的帖子引发了广泛关注。该帖子介绍了作者实现的名为Cornstarch的框架,它提供了生成任意多模态模型的接口,还支持多模态模型的分布式训练,并配有相关教程。此帖获得了众多点赞和大量评论。
主要的讨论方向包括如何将不同的模型进行融合与训练,以及在推理和执行过程中所面临的问题等。比如,有人提问能否将任意 LLM 模型和 SigLIP ViT 模型合并,训练后会得到何种架构用于推理。
讨论焦点与观点分析: 有人提出能否将任意 LLM 模型和 SigLIP ViT 模型合并,并对整个分词器和聊天模板的设置工作感到疑惑,还询问了关于 7B 模型和 SigLIP 推荐配置的问题。有用户提供了训练示例的链接https://github.com/cornstarch-org/Cornstarch/blob/main/examples/pretrain_vlm.py,并表示大多数知名的 LLM 模型可行,若有问题可反馈。 有人对最终用于推理的架构感到好奇,比如是否是 MLLM 等。有用户表示目前尚未与 vLLM 等服务框架集成,但可用 HF 转换器库进行推理,下一步计划是集成到知名服务框架以便服务训练好的模型。 还有人对如何确保投影向量形状正确提出疑问,比如在纳入音频嵌入用于新模型时。有用户指出这是因为当前仅支持在其模型配置中包含此类信息的 HF 模型。
有人分享了自己的经历,表示在开始研究音频 llm 时构建了类似框架,采用了不同的方法,支持多个音频编码器,连接器到 llm 是一个单独的显式模块,在数据相关部分花费了大量时间,因为难以让批处理正常工作。 有人提到使用特定方法训练更快,使用 1 - 4 个 a100 进行实验,在训练时实时计算多个编码器会减慢训练速度,所以在训练冻结编码器时使用 2080ti 预先计算特征。
有趣的是,有人认为当前框架不支持分离执行,但未来会添加此功能,让用户根据需求选择更快更便宜的执行方式。
总的来说,这次讨论为想要训练自定义多模态模型的研究者提供了丰富的思路和参考,但在模型融合、推理架构和训练效率等方面仍存在一些待解决的问题和探讨空间。
感谢您的耐心阅读!来选个表情,或者留个评论吧!