变色龙chameleon模型适配昇腾做训练开发

简介: 变色龙chameleon模型的官方仓库(https://github.com/facebookresearch/chameleon)并未开源训练的源代码,需要做训练代码的开发。

变色龙chameleon模型的官方仓库(https://github.com/facebookresearch/chameleon)并未开源训练的源代码,需要做训练代码的开发。

开发方向

昇腾modellink(已改名MindSpeed-LLM)的代码仓(https://Ascend/MindSpeed-LLM)具备llm的训练能力,但不支持多模态,不适配变色龙模型。根据变色龙的论文,变色龙模型的结构与llama2的结构类似,但在tokenizer方面有所不同,变色龙的tokenizer是支持多模态的,而llama2的tokenizer不支持。于是选择在tokenizer层面适配变色龙模型。

开发过程

  1. 变色龙、modellink仓库克隆,安装依赖,环境搭建。
  2. 跑通llama2训练验证开发环境无异常。
  3. 阅读源码
  1. 阅读变色龙源码,定位tokenizer代码以及调用方式,处理逻辑。
  2. 阅读modellink源码。确定训练执行的流程,以及tokenizer的调用时机与调用点。确定数据预处理流程,以及数据输入格式与处理方法。


  1. 迁移变色龙的tokenizer部分,为适配开发做准备。
  2. 修改脚本调用参数,修改代码使得modellink在对应条件下引入变色龙的tokenizer。
  3. 观察分析输入输出
  1. 断点调试变色龙、modellink的tokenizer,观察tokenizer的输出,以及调用点引用的对象结构。
  2. 观察变色龙、modellink的tokenizer的输入数据,比较异同,分析需要兼容的部分。
  3. 观察训练数据的处理输出与对应tokenizer的输入,分析设计数据处理方案。


  1. 对齐输入输出
  1. 构造1000+条带图片和文本的训练数据,数据格式选用modellink支持的json格式,用作调试。
  2. 根据源码分析,modellink采用handler处理输入的训练数据。自定义新的ChameleonPretrainHandler类继承基类,重写_filter()方法,对齐输入数据与tokenizer的调用点。
  3. 根据数据输入,调整tokenizer对象的调用类结构。


  1. 训练部分引用变色龙的tokenizer,替换原有tokenizer。
  2. 新建工厂函数,调整训练需要的tokenzier格式,传入对应的vocab_size和eod_id参数。
  3. 调试训练,根据训练情况以及具体报错修改代码直至跑通。
相关文章
|
文字识别 前端开发
CodeFuse-VLM 开源,支持多模态多任务预训练/微调
随着huggingface开源社区的不断更新,会有更多的vision encoder 和 LLM 底座发布,这些vision encoder 和 LLM底座都有各自的强项,例如 code-llama 适合生成代码类任务,但是不适合生成中文类的任务,因此用户常常需要根据vision encoder和LLM的特长来搭建自己的多模态大语言模型。针对多模态大语言模型种类繁多的落地场景,我们搭建了CodeFuse-VLM 框架,支持多种视觉模型和语言大模型,使得MFT-VLM可以适应不同种类的任务。
1274 0
|
3月前
|
数据采集 机器学习/深度学习 编解码
小红书 hi lab开源最强多模态大模型dots.vlm1,性能对标闭源 Gemini 2.5 Pro 和 Seed-VL1.5
小红书 hi lab开源最强多模态大模型dots.vlm1,性能对标闭源 Gemini 2.5 Pro 和 Seed-VL1.5
447 0
小红书 hi lab开源最强多模态大模型dots.vlm1,性能对标闭源 Gemini 2.5 Pro 和 Seed-VL1.5
|
10月前
|
弹性计算 安全 数据库
活动实践 | 通过弹性公网 IP 确保服务迁移时公网 IP 不变
该方案通过弹性公网IP(EIP)实现公网IP与不同资源的灵活关联和解绑,支持业务水平扩容和资源迁移。具体步骤包括:创建ECS实例并分配固定公网IP,安装Web服务,创建自定义镜像以快速部署新实例,将原实例的固定公网IP转为EIP,并将其解绑后绑定到新实例上,确保服务迁移后对外IP不变。最后,清理资源以避免不必要的费用。
|
23天前
|
人工智能 自然语言处理 安全
AutoGen框架入门:5个核心概念搭建智能体协作系统
AutoGen是微软开源的多智能体AI框架,支持多个AI智能体与人类协作,通过对话完成复杂任务。各智能体具备不同角色与能力,可调用工具、执行代码,并在群聊中辩论、推理、纠错,实现无需人工干预的自动化协作,适用于复杂问题求解与团队化AI应用开发。
201 13
AutoGen框架入门:5个核心概念搭建智能体协作系统
|
12月前
|
人工智能 自然语言处理 PyTorch
基于openi平台免费华为昇腾910B芯片部署qwen2.5 Instruct 14B大模型
基于OpenI平台和华为昇腾910B芯片,本方案详细介绍了如何免费部署Qwen-2.5 Instruct 14B大模型。涵盖准备工作、模型适配、部署步骤及性能优化等内容,适用于NLP任务部署、本地化适配及实时服务化等多种应用场景。
3402 1
|
12月前
昇腾910A部署Qwen2-7B教程
Qwen2-7BS适配昇腾910A教程。
|
10月前
|
数据采集 PyTorch 算法框架/工具
sam模型迁移昇腾训练loss不收敛问题的解决办法
在将SAM模型迁移到昇腾平台时,遇到了精度问题。具体表现为NPU训练的loss图从一开始就未收敛,而GPU则正常收敛。通过使用Ascend开源仓的msprobe工具进行精度对比,发现NPU丢失了image_embedding的梯度,原因在于torch_npu版本与PyTorch不匹配,导致`repeat_interleave_backward_tensor`函数调用失败。最终通过选择与PyTorch配套的torch_npu版本解决了问题,loss图恢复正常。
|
存储 自然语言处理 API
打破文本边界:如何进行多模态RAG评估
一般的检索增强生成(RAG,Retrieval-Augmented Generation)方法主要依赖于文本数据,常常忽略了图像中的丰富信息。那么应该如何解决呢?本文带你了解一下这个模型。
打破文本边界:如何进行多模态RAG评估
|
SQL 关系型数据库 MySQL
|
人工智能
从《2024年人工智能指数报告》 看AI的最新发展趋势
【斯坦福HAI发布2024年AI指数报告】揭示AI发展10大趋势:AI在特定领域超人但复杂任务仍有挑战;产业界主导AI创新,推出大量模型;训练成本飙升,如GPT-4训练耗资近8千万美元;美国领先,中国持续突破;大模型责任评估缺失;生成式AI投资增长;AI提升工作效率,缩小技能差距;加速科学进步;法规增多;全球对AI既期待又担忧。关注公众号AntDream获取更多详情!
1998 3
从《2024年人工智能指数报告》 看AI的最新发展趋势