
# Janus:多模态理解与生成的前沿探索
在人工智能领域,多模态理解与生成一直是研究的热点和难点。DeepSeek 团队在 GitHub 上开源的 **Janus** 项目,为这一领域带来了新的突破和可能性。该项目包含多个子模型,如 **Janus-Pro** 和 **JanusFlow**,致力于统一多模态理解与生成任务,展现了强大的功能和广泛的应用前景。
## 网站介绍
**Janus** 是 DeepSeek 团队开发的一系列多模态模型,旨在通过创新的架构和优化的训练策略,实现多模态理解与生成的统一。该项目的核心包括三个主要模型:
– **Janus-Pro**:作为 **Janus** 的升级版本,通过优化训练策略、扩展训练数据和扩大模型规模,显著提升了多模态理解能力和文本到图像的生成能力。
– **Janus**:采用创新的解耦视觉编码框架,将视觉编码路径分离,同时使用统一的 Transformer 架构进行处理,解决了以往方法中视觉编码器在理解与生成任务中的冲突。
– **JanusFlow**:结合自回归语言模型和最新的修正流(Rectified Flow)技术,实现了多模态理解与生成的高效融合,展现出与任务专用模型相当甚至更优的性能。
## 如何使用
### 环境准备
使用 **Janus** 系列模型需要具备 `Python >= 3.8` 的运行环境,并安装必要的依赖包。可以通过以下命令安装:
“`bash
pip install -e .
“`
### 模型下载
项目提供了多个模型版本,用户可以通过 Hugging Face 平台下载:
– **Janus-1.3B**
– **JanusFlow-1.3B**
– **Janus-Pro-1B**
– **Janus-Pro-7B**
### 示例代码
#### 多模态理解
以下是使用 **Janus-Pro** 进行多模态理解的示例代码:
“`python
import torch
from transformers import AutoModelForCausalLM
from janus.models import MultiModalityCausalLM, VLChatProcessor
from janus.utils.io import load_pil_images
# 指定模型路径
model_path = “deepseek-ai/Janus-Pro-7B”
vl_chat_processor = VLChatProcessor.from_pretrained(model_path)
tokenizer = vl_chat_processor.tokenizer
# 加载模型
vl_gpt = AutoModelForCausalLM.from_pretrained(model_path, trust_remote_code=True)
vl_gpt = vl_gpt.to(torch.bfloat16).cuda().eval()
# 准备对话内容
conversation = [
{
“role”: “<|User|>”,
“content”: “<image_placeholder>\nWhat is in the image?”,
“images”: [“path_to_image.jpg”],
},
{“role”: “<|Assistant|>”, “content”: “”}
]
# 加载图像并准备输入
pil_images = load_pil_images(conversation)
prepare_inputs = vl_chat_processor(conversations=conversation, images=pil_images, force_batchify=True).to(vl_gpt.device)
# 获取图像嵌入
inputs_embeds = vl_gpt.prepare_inputs_embeds(**prepare_inputs)
# 运行模型生成回答
outputs = vl_gpt.language_model.generate(
inputs_embeds=inputs_embeds,
attention_mask=prepare_inputs.attention_mask,
pad_token_id=tokenizer.eos_token_id,
max_new_tokens=512,
do_sample=False,
use_cache=True,
)
answer = tokenizer.decode(outputs[0].cpu().tolist(), skip_special_tokens=True)
print(answer)
“`
#### 文本到图像生成
以下是使用 **Janus-Pro** 进行文本到图像生成的示例代码:
“`python
import os
import torch
from janus.models import MultiModalityCausalLM, VLChatProcessor
# 指定模型路径
model_path = “deepseek-ai/Janus-Pro-7B”
vl_chat_processor = VLChatProcessor.from_pretrained(model_path)
tokenizer = vl_chat_processor.tokenizer
# 加载模型
vl_gpt = MultiModalityCausalLM.from_pretrained(model_path, trust_remote=True_code)
vl_gpt = vl_gpt.to(torch.bfloat16).cuda().eval()
# 准备文本提示
prompt = “A stunning princess in traditional clothing.”
# 生成图像
# (此处省略了复杂的生成代码,具体实现可参考项目文档)
“`
### 在线体验
为了方便用户快速体验,项目还提供了在线演示平台,用户可以通过 Hugging Face 访问 [在线演示](https://huggingface.co/spaces/deepseek-ai/Janus-Pro)。
## 是否收费及价格
**Janus** 项目目前完全开源,用户可以免费下载和使用模型进行研究和开发。项目遵循 MIT 开源许可协议,但使用模型需遵守 DeepSeek 的模型许可协议。如果用户有商业用途需求,建议联系 DeepSeek 团队以获取更多信息。
数据统计
相关导航


Evidently AI

DeepSeek

IBM watsonx.ai

通义千问2-72B

Google AI Studio

Black Forest Labs
