一、说明简介
DeepSeek Janus-Pro是一款先进的多模态理解和生成模型,旨在实现高质量的文本-图像生成与多模态理解。它是由DeepSeek团队研发的,是之前Janus模型的升级版,能够同时处理文本和图像,即可以理解图片内容,也能生成图像。
技术特点
- 双路径视觉编码设计:Janus-Pro采用双路径视觉编码设计,理解路径使用SigLIP-L编码器提取图像的高层语义特征,适用于问答、分类等任务;生成路径采用VQ tokenizer将图像转换为离散token序列,关注细节纹理,支持文本到图像生成。
- 统一Transformer架构:两种任务的特征序列通过统一的Transformer处理,实现知识融合与任务协同,同时简化模型结构1。
- 多模态对齐:使用真实文生图数据替代ImageNet,提升训练效率与生成质量。
- 扩展训练数据:新增图像字幕、表格图表等复杂场景数据,增强模型泛化能力。
性能表现
在MMBench基准测试中,Janus-Pro得分79.2,超越LLaVA、MetaMorph等模型;在GenEval测试中得分0.80,优于DALL-E 3(0.67)和Stable Diffusion 3(0.74),尤其在细节与审美质量上表现突出。
应用场景
Janus-Pro可以精准识别地标(如杭州西湖三潭印月)并解析文化内涵,生成符合复杂指令的图像(如特定风格插画或场景设计)。此外,它还能对图片进行描述、识别地标景点、识别图像中的文字,并对图片中的知识进行介绍。
Janus Github主页: https://github.com/deepseek-ai/Janus
二、 Janus 模型运行硬件要求
任务类型 |
Janus-Pro-1B |
Janus-Pro-7B |
图像识别 |
5G( 3060) |
15G(4080) |
图片生成 |
14G(4080) |
40G( 3090/4090*2) |
本文采用的系统是 下图免费基础型,只能图像识别7b模型,图片生成1b模型,据说1B模型效果不好,好在我们只是学习过程,好坏暂时不论
三、 janus模型下载和项目部署
1、下载源码
cd /workplace
git clone https://github.com/deepseek-ai/Janus.git
#难道关税大战,github也要干掉了,有点怀疑啊,慢的要死,我是直接上传,clone不成功
cd Janus
(base) root@VM-0-80-ubuntu:/workspace# cd Janus
(base) root@VM-0-80-ubuntu:/workspace/Janus# ls
LICENSE-CODE generation_inference.py janus_pro_tech_report.pdf
LICENSE-MODEL images pyproject.toml
Makefile inference.py requirements.txt
README.md interactivechat.py
demo janus
2、安装虚拟环境和依赖
conda create -n janus python=3.10
conda init
source ~/.bashrc
conda activate janus
cd /workspace/Janus
# 注意后面的点
pip install -e .
pip install flash-attn
#安装jupyter
conda install ipykernel
conda install ipywidgets
python -m ipykernel install --user --name janus --display-name "Python (janus)"
选择janus环境
3、下载预训练模型
这里我们考虑在项目主目录下创建models文件夹,用于保存Janus-Pro-1B和7B模型权重。考虑到国 内网络环境,这里推荐直接在Modelscope上进行模型权重下载。
- 安装modelscope
pip install modelscope
- 创建模型文件夹
mkdir -p Janus-Pro-1B
mkdir -p Janus-Pro-7B
-
下载Janus-Pro-1B模型权重
# 下载1B模型
modelscope download --model deepseek-ai/Janus-Pro-1B --local_dir ./Janus-Pro-1B
-
下载Janus-Pro-7B模型权重
# 下载7B模型
modelscope download --model deepseek-ai/Janus-Pro-7B --local_dir ./Janus-Pro-7B
四、Jannus本地调用流程
1、Janus-Pro-7B模型
/workspace/Janus/Janus-Pro-7B.ipynb
创建Janus-Pro-7B.ipynb
import torch
from transformers import AutoMo