Janus 的設計靈感來源于羅馬神話中的雙面神 Janus,象征著理解與生成之間的平衡。模型通過獨立的視覺編碼器分別處理高維語義信息和低維空間細節,使得多模態理解任務能夠提取更豐富的語義特征,而視覺生成任務則能夠生成更高質量的圖像。

二、技術創新與性能提升

(一)分離視覺編碼路徑

Janus 的核心創新在于分離視覺編碼路徑。在多模態理解任務中,模型需要提取圖像中的高級語義信息,例如物體類別和視覺屬性;而在視覺生成任務中,模型需要關注圖像的局部細節和全局一致性。傳統的多模態模型通常使用單一視覺編碼器來處理這兩種任務,這會導致性能上的妥協。Janus 通過引入兩個獨立的視覺編碼器,分別針對理解任務和生成任務進行優化,從而解決了這一問題。

(二)性能表現

在多模態理解方面,Janus 在多個基準測試中取得了優異的成績。例如,在 MMBench、POPE、MME 等數據集上,Janus 的表現超過了之前的統一模型和其他一些特定任務的模型。在視覺生成方面,Janus 在 GenEval 和 DPG-Bench 等基準測試中也表現出色,甚至在某些指標上超過了 OpenAI 的 DALL-E 3 等知名模型。

DeepSeek Janus

三、模型架構與訓練

(一)架構設計

Janus 的架構基于 DeepSeek-LLM-1.3B 和 DeepSeek-LLM-7B,使用 SigLIP-L 作為視覺編碼器,支持 384×384 的圖像輸入。模型通過獨立的適配器將視覺特征映射到語言模型的輸入空間,然后通過統一的自回歸變換器進行處理。這種設計使得模型在處理多模態任務時更加靈活,并且可以輕松擴展到其他模態,例如點云、EEG 信號或音頻數據。

(二)訓練過程

Janus 的訓練分為三個階段。第一階段主要訓練適配器和圖像頭部,使模型能夠初步理解圖像內容并具備基本的視覺生成能力。第二階段是統一預訓練,使用多模態語料庫對模型進行訓練,使其能夠同時學習多模態理解和生成任務。第三階段是監督微調,通過指令調整數據來增強模型的指令遵循和對話能力。

四、使用與部署

DeepSeek Janus 提供了詳細的使用指南和代碼示例,方便開發者快速上手。模型已經在 Hugging Face 上發布,用戶可以直接下載并使用。此外,Janus 還提供了 Gradio 和 FastAPI 的在線演示,方便用戶進行測試和部署。

(一)安裝與依賴

在 Python 3.8 及以上環境中,用戶可以通過以下命令安裝必要的依賴:

pip install -e .

(二)多模態理解示例

以下是一個多模態理解的簡單示例代碼:

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-1.3B"
vl_chat_processor: VLChatProcessor = VLChatProcessor.from_pretrained(model_path)
tokenizer = vl_chat_processor.tokenizer

vl_gpt: MultiModalityCausalLM = AutoModelForCausalLM.from_pretrained(
model_path, trust_remote_code=True
)
vl_gpt = vl_gpt.to(torch.bfloat16).cuda().eval()

conversation = [
{
"role": "User",
"content": "<image_placeholder>\nConvert the formula into latex code.",
"images": ["images/equation.png"],
},
{"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,
bos_token_id=tokenizer.bos_token_id,
eos_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(f"{prepare_inputs['sft_format'][0]}", answer)

(三)文本到圖像生成示例

以下是一個文本到圖像生成的示例代碼:

import os
import PIL.Image
import torch
import numpy as np
from transformers import AutoModelForCausalLM
from janus.models import MultiModalityCausalLM, VLChatProcessor

model_path = "deepseek-ai/Janus-1.3B"
vl_chat_processor: VLChatProcessor = VLChatProcessor.from_pretrained(model_path)
tokenizer = vl_chat_processor.tokenizer

vl_gpt: MultiModalityCausalLM = AutoModelForCausalLM.from_pretrained(
model_path, trust_remote_code=True
)
vl_gpt = vl_gpt.to(torch.bfloat16).cuda().eval()

conversation = [
{
"role": "User",
"content": "A stunning princess from kabul in red, white traditional clothing, blue eyes, brown hair",
},
{"role": "Assistant", "content": ""},
]

sft_format = vl_chat_processor.apply_sft_template_for_multi_turn_prompts(
conversations=conversation,
sft_format=vl_chat_processor.sft_format,
system_prompt="",
)
prompt = sft_format + vl_chat_processor.image_start_tag

# 生成圖像的函數
@torch.inference_mode()
def generate(
mmgpt: MultiModalityCausalLM,
vl_chat_processor: VLChatProcessor,
prompt: str,
temperature: float = 1,
parallel_size: int = 16,
cfg_weight: float = 5,
image_token_num_per_image: int = 576,
img_size: int = 384,
patch_size: int = 16,
):
input_ids = vl_chat_processor.tokenizer.encode(prompt)
input_ids = torch.LongTensor(input_ids)

tokens = torch.zeros((parallel_size*2, len(input_ids)), dtype=torch.int).cuda()
for i in range(parallel_size*2):
tokens[i, :] = input_ids
if i % 2 != 0:
tokens[i, 1:-1] = vl_chat_processor.pad_id

inputs_embeds = mmgpt.language_model.get_input_embeddings()(tokens)

generated_tokens = torch.zeros((parallel_size, image_token_num_per_image), dtype=torch.int).cuda()

for i in range(image_token_num_per_image):
outputs = mmgpt.language_model.model(inputs_embeds=inputs_embeds, use_cache=True, past_key_values=outputs.past_key_values if i != 0 else None)
hidden_states = outputs.last_hidden_state

logits = mmgpt.gen_head(hidden_states[:, -1, :])
logit_cond = logits[0::2, :]
logit_uncond = logits[1::2, :]

logits = logit_uncond + cfg_weight * (logit_cond-logit_uncond)
probs = torch.softmax(logits / temperature, dim=-1)

next_token = torch.multinomial(probs, num_samples=1)
generated_tokens[:, i] = next_token.squeeze(dim=-1)

next_token = torch.cat([next_token.unsqueeze(dim=1), next_token.unsqueeze(dim=1)], dim=1).view(-1)
img_embeds = mmgpt.prepare_gen_img_embeds(next_token)
inputs_embeds = img_embeds.unsqueeze(dim=1)

dec = mmgpt.gen_vision_model.decode_code(generated_tokens.to(dtype=torch.int), shape=[parallel_size, 8, img_size//patch_size, img_size//patch_size])
dec = dec.to(torch.float32).cpu().numpy().transpose(0, 2, 3, 1)

dec = np.clip((dec + 1) / 2 * 255, 0, 255)

visual_img = np.zeros((parallel_size, img_size, img_size, 3), dtype=np.uint8)
visual_img[:, :, :] = dec

os.makedirs('generated_samples', exist_ok=True)
for i in range(parallel_size):
save_path = os.path.join('generated_samples', "img_{}.jpg".format(i))
PIL.Image.fromarray(visual_img[i]).save(save_path)

generate(
vl_gpt,
vl_chat_processor,
prompt,
)

五、JanusFlow:結合自回歸與流修正的創新模型

除了 Janus,DeepSeek 還發布了 JanusFlow,這是一個結合了自回歸語言模型和流修正(Rectified Flow)的新型多模態模型。JanusFlow 通過在大語言模型框架內直接訓練流修正,無需復雜的架構修改,顯著提升了多模態任務的性能。

JanusFlow 在多模態理解與生成任務中表現出色,尤其是在圖像生成方面,能夠生成更高質量的圖像。其架構設計簡潔,易于擴展,為多模態模型的發展提供了新的方向。

六、總結與展望

DeepSeek Janus 系列模型的發布,標志著多模態人工智能領域的一個重要進步。通過分離視覺編碼路徑,Janus 解決了傳統多模態模型中的關鍵問題,提升了模型的靈活性和性能。同時,JanusFlow 的創新設計進一步展示了結合自回歸和流修正的潛力。

對于研究人員和開發者來說,Janus 系列模型提供了一個強大的開源工具,可以用于各種多模態應用的開發和研究。隨著技術的不斷發展,我們期待 DeepSeek 團隊在未來帶來更多突破性的成果。

如果你對 DeepSeek Janus 感興趣,可以訪問其 GitHub 倉庫獲取更多詳細信息和代碼資源。

熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業工程師共享工作效率翻倍的秘密
返回頂部
上一篇
解決 DeepSeek 服務器繁忙問題的全方位指南
下一篇
深入探索 DeepSeek Janus Pro:本地部署與應用實踐
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
不卡的av在线| 欧美一级电影网站| 日本福利一区二区| 国产亚洲va综合人人澡精品| 亚洲国产欧美日韩另类综合| 91丨九色丨国产丨porny| 亚洲欧洲av另类| 波波电影院一区二区三区| 中文字幕一区二区三中文字幕| 成熟亚洲日本毛茸茸凸凹| 国产女人18毛片水真多成人如厕| 国产成人在线色| 亚洲三级在线播放| 精品污污网站免费看| 免费观看30秒视频久久| 久久久久久久一区| 99久久国产综合精品女不卡| 一区二区在线观看视频在线观看| 777奇米四色成人影色区| 麻豆国产欧美日韩综合精品二区| 国产午夜亚洲精品理论片色戒| 一本一道久久a久久精品| 奇米色777欧美一区二区| 国产日本欧美一区二区| 日本高清不卡aⅴ免费网站| 久久99精品一区二区三区| 亚洲免费毛片网站| 久久一区二区三区国产精品| 欧美性大战久久久| 粉嫩av亚洲一区二区图片| 日韩黄色免费网站| 亚洲婷婷国产精品电影人久久| 91精品麻豆日日躁夜夜躁| 大陆成人av片| 极品少妇xxxx精品少妇偷拍| 一区二区三区欧美亚洲| 国产欧美va欧美不卡在线| 欧美日韩日日骚| 91色porny| 高潮精品一区videoshd| 国内精品嫩模私拍在线| 日韩高清中文字幕一区| 亚洲综合久久久| 亚洲欧美一区二区三区极速播放| 精品国产乱码久久久久久闺蜜| 宅男在线国产精品| 555www色欧美视频| 欧美日韩激情在线| 欧美日韩视频在线第一区 | 欧美日韩国产在线观看| 成人三级伦理片| 高清av一区二区| 成人激情av网| 成+人+亚洲+综合天堂| 成人黄色一级视频| 日本高清不卡一区| 欧美日本一道本在线视频| 精品视频在线免费| 欧美一三区三区四区免费在线看| 欧美日韩一级大片网址| 在线电影院国产精品| 91精品国产色综合久久久蜜香臀| 欧美美女网站色| 久久先锋影音av鲁色资源网| 国产欧美日韩激情| 亚洲女同一区二区| 爽爽淫人综合网网站| 精品一区二区在线播放| 成人a免费在线看| 日本韩国欧美一区| 日韩一级大片在线观看| 国产精品美女www爽爽爽| 亚洲午夜精品一区二区三区他趣| 日韩精品亚洲专区| 成人在线视频一区| 在线观看91av| 中文字幕va一区二区三区| 亚洲午夜视频在线观看| 国产老妇另类xxxxx| 在线一区二区三区| 久久久精品免费观看| 一区二区三区美女视频| 国内精品久久久久影院色 | 日韩精品成人一区二区在线| 国产成人精品www牛牛影视| 欧美日韩国产一级二级| 国产日韩视频一区二区三区| 午夜久久久影院| 99re在线视频这里只有精品| 欧美久久久久久蜜桃| 国产精品传媒视频| 国产精品系列在线观看| 日韩三级视频中文字幕| 亚洲国产综合91精品麻豆| 国产成人午夜片在线观看高清观看| 欧美熟乱第一页| 亚洲天堂福利av| 国产成人无遮挡在线视频| 欧美一级片在线观看| 亚洲国产成人tv| 欧美性大战久久| 亚洲欧美国产77777| 成熟亚洲日本毛茸茸凸凹| 久久久夜色精品亚洲| 国内精品久久久久影院一蜜桃| 91精品国产丝袜白色高跟鞋| 午夜视频久久久久久| 欧美性猛片aaaaaaa做受| 依依成人综合视频| 精品视频免费看| 日韩av电影免费观看高清完整版| 欧美日韩成人高清| 五月婷婷久久综合| 日韩欧美色综合网站| 狠狠色丁香久久婷婷综| 国产性天天综合网| 99久久伊人精品| 一区二区免费视频| 91精品国产综合久久久久久漫画| 三级久久三级久久| 久久影院视频免费| 91在线云播放| 青青草伊人久久| 久久久久国产精品麻豆| 99久久久精品免费观看国产蜜| 亚洲欧美日韩在线播放| 欧日韩精品视频| 美女网站一区二区| 国产精品福利一区| 欧美日韩国产在线观看| 精品一区二区三区不卡 | 在线欧美日韩国产| 久久99精品一区二区三区三区| 久久久国产一区二区三区四区小说 | 不卡视频免费播放| 亚洲午夜精品17c| 日韩三级电影网址| 99久久婷婷国产综合精品| 亚洲成a人v欧美综合天堂下载| 欧美xfplay| 91蜜桃传媒精品久久久一区二区| 亚洲成人av一区二区三区| 久久伊人中文字幕| 日本精品免费观看高清观看| 麻豆精品精品国产自在97香蕉| 国产精品网站在线| 欧美一级在线免费| 91国产免费看| 成人综合婷婷国产精品久久蜜臀 | 91福利视频久久久久| 日日夜夜精品视频免费| 中文字幕精品—区二区四季| 日韩欧美一级在线播放| 在线观看日韩电影| av网站一区二区三区| 国产伦理精品不卡| 奇米色777欧美一区二区| 亚洲精品视频在线观看免费| 国产欧美精品一区二区三区四区| 日韩一卡二卡三卡国产欧美| 91视频观看视频| www.亚洲精品| www.亚洲国产| 99久久精品免费看国产免费软件| 国产91富婆露脸刺激对白| 国产在线精品一区二区夜色| 日本视频在线一区| 麻豆高清免费国产一区| 日本午夜一区二区| 久久国产尿小便嘘嘘| 秋霞影院一区二区| 狠狠色狠狠色综合日日91app| 老司机午夜精品| 美女视频黄免费的久久 | 日韩精品专区在线影院重磅| 欧美精品日韩精品| 日韩写真欧美这视频| 日韩视频免费观看高清在线视频| 3atv一区二区三区| 久久一二三国产| 综合色中文字幕| 香蕉加勒比综合久久| 久久不见久久见免费视频1| 韩国欧美一区二区| 不卡一区二区三区四区| 色吧成人激情小说| 91精品国产综合久久香蕉麻豆 | 成人深夜视频在线观看| 91久久久免费一区二区| 538在线一区二区精品国产| 日韩写真欧美这视频| 中文字幕免费观看一区| 亚洲图片你懂的| 久久精品国产精品亚洲红杏| 国产精品一区二区在线观看网站| 99精品国产视频| 日韩午夜激情电影| 1000部国产精品成人观看| 午夜电影一区二区| 成人午夜视频免费看|