回复
炸裂!Deepseek-Janus-Pro能识别图片地址、看图讲故事
一、Janus-Pro能做5种任务
1.1 图片描述
1.2 地点识别
1.3 背景推理
1.4 OCR文字识别
1.5 文图生成
二、Janus-Pro原理
- Janus-Pro的核心设计原则采用自回归框架,通过解耦视觉编码,解决多模态理解和生成任务之间的冲突。
- 通过独立的编码方法将原始输入转换为特征,然后由统一的自回归变换器进行处理。
- 对于多模态理解任务,使用SigLIP编码器从图像中提取高维语义特征,并将其展平为一维序列,通过理解适配器将图像特征映射到语言模型的输入空间。
- 对于视觉生成任务,使用VQ标记器将图像转换为离散ID,将ID序列展平为一维后,通过生成适配器-将每个ID对应的码本嵌入映射到语言模型的输入空间。
- 然后将这些特征序列拼接形成多模态特征序列,输入到语言模型中进行处理。
- 例如,在多模态理解任务中,模型可以准确识别图像中的物体、场景和事件,并生成相应的描述。
- 在视觉生成任务中,模型可以根据给定的文本提示生成高质量的图像。
- 例如,给定提示
一个在阳光下盛开的向日葵,上面有一只蜜蜂
,Janus-Pro能够生成一幅展示向日葵和蜜蜂的图像,其中蜜蜂的翅膀在阳光下闪闪发光,细节丰富且具有美感。
三、模型架构
- Janus-Pro 是一个统一的理解和生成 MLLM,它解耦了视觉编码,以实现多模态理解和生成。
- Janus-Pro 基于 DeepSeek-LLM-1.5b-base/DeepSeek-LLM-7b-base 构建。
- 对于多模态理解,它使用 SigLIP-Large-Patch16-384 作为视觉编码器,支持 384 x 384 图像输入,生成编码器的码本大小为16384,图像下采样因子为16。
- 理解适配器和生成适配器均为两层MLP。
- 对于图像生成,Janus-Pro 使用此处的分词器,下采样率为 16。
四、训练技巧
Janus-Pro的训练过程分为三个阶段。
- 在第一阶段,主要训练适配器和图像头部。
- 通过增加训练步数,使模型能够在固定语言模型参数的情况下,通过ImageNet数据集有效建模像素依赖关系,生成合理图像。
- 在第二阶段,预训练文本到图像。
- Janus-Pro去掉了ImageNet数据,增加了约9000万样本,包括图像字幕数据集(如YFCC)以及用于表格、图表和文档理解的数据(如Docmatix),使用普通文本到图像数据进行训练,提高了训练效率。
- 在第三阶段,监督微调。
- Janus-Pro调整了不同类型数据的比例,将多模态数据、纯文本数据和文本到图像数据的比例从7:3:10调整为5:1:4,从而在保持强大视觉生成能力的同时,提升了多模态理解性能。
- 在多模态理解数据中,将图像的长边调整到384像素,短边用背景颜色填充至384像素。
- 在视觉生成数据中,将图像的短边调整到384像素,长边裁剪至384像素。
- 通过序列打包技术提高训练效率,并在单个训练步骤中按照指定比例混合所有数据类型。
https://github.com/deepseek-ai/Janus
https://hf-mirror.com/deepseek-ai/Janus-Pro-7B
https://bgithub.xyz/deepseek-i/Janus/blob/main/janus_pro_tech_report.pdf
本文转载自 CourseAI,作者: CourseAI
赞
收藏
回复
相关推荐