cd Janus
  1. 構(gòu)建 Docker 鏡像
docker build -t deepseek-janus-pro .
  1. 運行 Docker 容器
docker run -p 8000:8000 deepseek-janus-pro

通過上述步驟,你可以在本地運行 DeepSeek Janus Pro 的 Web 應用程序,并通過瀏覽器訪問 http://localhost:8000 來體驗其功能。

三、使用 DeepSeek Janus Pro 進行多模態(tài)任務

(一)多模態(tài)理解

DeepSeek Janus Pro 在多模態(tài)理解任務中表現(xiàn)出色,能夠處理圖像、文本等多種輸入形式。以下是一個簡單的多模態(tài)理解示例:

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.from_pretrained(model_path)
tokenizer = vl_chat_processor.tokenizer
vl_gpt = MultiModalityCausalLM.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)

(二)文本到圖像生成

DeepSeek Janus Pro 還支持強大的文本到圖像生成功能。以下是一個示例代碼:

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

# 加載模型和處理器
model_path = "deepseek-ai/Janus-1.3B"
vl_chat_processor = VLChatProcessor.from_pretrained(model_path)
tokenizer = vl_chat_processor.tokenizer
vl_gpt = MultiModalityCausalLM.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": ""},
]

# 定義生成函數(shù)
@torch.inference_mode()
def generate(
mmgpt, vl_chat_processor, prompt, temperature=1, parallel_size=16, cfg_weight=5, image_token_num_per_image=576, img_size=384, patch_size=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)

# 調(diào)用生成函數(shù)
generate(vl_gpt, vl_chat_processor, prompt="A stunning princess from kabul in red, white traditional clothing, blue eyes, brown hair")
DeepSeek Janus Pro
DeepSeek Janus Pro

四、DeepSeek Janus Pro 的優(yōu)勢

(一)靈活性與擴展性

DeepSeek Janus Pro 的架構(gòu)設計允許開發(fā)者根據(jù)具體需求進行定制和擴展。無論是多模態(tài)理解還是生成任務,它都能提供強大的支持。此外,其開源特性使得社區(qū)可以共同推動模型的進一步發(fā)展。

(二)高性能與效率

通過解耦視覺編碼路徑,DeepSeek Janus Pro 在多模態(tài)任務中表現(xiàn)出色,能夠高效處理復雜的輸入數(shù)據(jù)。其優(yōu)化的 Transformer 架構(gòu)確保了模型在大規(guī)模數(shù)據(jù)上的高效訓練和推理。

(三)豐富的應用場景

DeepSeek Janus Pro 可以應用于多種場景,包括但不限于:

五、總結(jié)

DeepSeek Janus Pro 是一個多模態(tài)理解與生成的強大工具,它通過創(chuàng)新的架構(gòu)設計和高效的實現(xiàn)方式,為開發(fā)者提供了強大的功能支持。通過本文的介紹,你可以在本地環(huán)境中快速部署和使用 DeepSeek Janus Pro,并探索其在多模態(tài)任務中的應用。無論是學術(shù)研究還是商業(yè)應用,DeepSeek Janus Pro 都是一個值得嘗試的選擇。

如果你對 DeepSeek Janus Pro 有任何疑問或需要進一步的幫助,可以通過 DeepSeek 官方網(wǎng)站GitHub 項目頁面 獲取更多信息。

熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業(yè)工程師共享工作效率翻倍的秘密
返回頂部
上一篇
DeepSeek Janus:下一代多模態(tài)理解與生成的開源模型
下一篇
深入探索 DeepSeek-R1:安裝、使用與集成
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
亚洲精品日产精品乱码不卡| 欧美在线视频你懂得| 美女视频一区二区| 91蜜桃免费观看视频| 国产精品欧美一区喷水| 美国十次了思思久久精品导航| 欧洲精品中文字幕| 午夜电影一区二区| 91精品国产综合久久精品图片| 亚洲成精国产精品女| 欧美高清一级片在线| 蜜桃视频免费观看一区| 日韩一区二区精品在线观看| 蜜桃av一区二区三区电影| 欧美videos大乳护士334| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲精品在线网站| 91亚洲精品乱码久久久久久蜜桃| 亚洲天堂久久久久久久| 在线观看91精品国产入口| 亚洲va中文字幕| 亚洲精品一区二区三区影院| 成人av高清在线| 亚洲成人动漫精品| 日本一区二区三区在线观看| 在线观看视频一区二区| 看片的网站亚洲| 日韩理论片中文av| 日韩美女主播在线视频一区二区三区| 国产呦精品一区二区三区网站| 国产精品久久久久久久裸模| 欧美三级电影精品| 国产福利一区二区三区| 亚洲免费色视频| 精品国产一二三| 在线观看91精品国产入口| 国产精品一二一区| 一个色在线综合| 国产欧美精品国产国产专区| 欧美一区二区女人| 97se亚洲国产综合在线| 九九视频精品免费| 视频一区二区欧美| 亚洲国产精品欧美一二99| 欧美国产精品中文字幕| 91精品免费在线观看| 日本高清免费不卡视频| 成人福利电影精品一区二区在线观看| 日本成人在线电影网| 亚洲国产一区在线观看| 亚洲综合偷拍欧美一区色| 亚洲美女电影在线| 亚洲女同ⅹxx女同tv| 亚洲色图视频网| 亚洲精品乱码久久久久久黑人| 国产精品视频免费| 中文一区在线播放| 日本一区二区三区国色天香| 久久久久久黄色| 久久精子c满五个校花| 日韩免费高清av| 亚洲国产一区二区三区| 日韩美女视频19| 亚洲综合在线免费观看| 亚洲综合区在线| 蜜臀av一区二区在线免费观看| 日韩电影一区二区三区| 免费高清在线一区| 国产精品99久久久久久宅男| 99精品视频免费在线观看| 日本韩国一区二区| 欧美变态tickling挠脚心| 国产欧美精品一区| 综合色天天鬼久久鬼色| 一区二区成人在线观看| 美女视频黄免费的久久| 成人福利电影精品一区二区在线观看| www.日韩精品| 欧美日韩亚洲综合一区| 精品少妇一区二区三区在线视频| 国产蜜臀97一区二区三区 | 精品国产乱码久久久久久老虎| 精品嫩草影院久久| 国产精品日韩精品欧美在线 | 国产精品福利一区二区三区| 亚洲午夜久久久久中文字幕久| 丝袜亚洲另类欧美综合| 国产99一区视频免费| 欧美最新大片在线看| 久久久久9999亚洲精品| 亚洲午夜激情网页| 国产精品主播直播| 欧美伦理视频网站| 1024国产精品| 国产精品亚洲午夜一区二区三区| 欧美日韩午夜影院| 中文字幕亚洲综合久久菠萝蜜| 蜜臀av一区二区在线观看| 色综合咪咪久久| 中文一区二区在线观看| 国产精品综合视频| 日韩视频一区在线观看| 亚洲国产美女搞黄色| 色综合久久综合| 国产精品美女久久久久久| 国内精品自线一区二区三区视频| 欧洲av在线精品| 亚洲精品国产一区二区精华液 | 日日夜夜精品视频天天综合网| 日本高清无吗v一区| 国产精品美女久久久久久久久| 九一九一国产精品| 欧美成人video| 久久国内精品视频| 欧美精品一区二区久久婷婷| 免费高清视频精品| 精品国产网站在线观看| 久久国产欧美日韩精品| 精品国产91久久久久久久妲己| 一道本成人在线| 精品国产一区二区三区久久影院 | 日韩综合在线视频| 日韩午夜激情视频| 麻豆91免费观看| 日韩欧美一区二区在线视频| 免费观看30秒视频久久| 欧美精品一区二区三区高清aⅴ | 国产美女精品在线| 国产精品久久久久久久浪潮网站 | 国产乱子轮精品视频| 久久久激情视频| 成人免费不卡视频| 一区二区三区四区在线播放| 欧美午夜片在线看| 久久国产精品露脸对白| 国产视频一区二区三区在线观看| www.在线成人| 亚洲国产一区视频| 精品粉嫩超白一线天av| 91看片淫黄大片一级| 日韩一区精品字幕| 国产精品美女久久久久久久久 | 亚洲精品五月天| 欧美精品一区二区在线播放| 91免费版pro下载短视频| 男男gaygay亚洲| 一区二区在线看| 精品国产sm最大网站免费看| 欧美亚洲尤物久久| 成人av电影观看| 激情综合网av| 男女性色大片免费观看一区二区 | 在线精品观看国产| 99re热这里只有精品视频| 强制捆绑调教一区二区| 亚洲人吸女人奶水| 欧美一级日韩免费不卡| 91福利在线导航| 成人a免费在线看| 国产麻豆日韩欧美久久| 久热成人在线视频| 日韩成人午夜精品| 偷拍与自拍一区| 亚洲成人7777| 亚洲欧美激情一区二区| 国产欧美精品国产国产专区 | 日韩精品一级中文字幕精品视频免费观看 | 久久66热re国产| 日本最新不卡在线| 国产精品剧情在线亚洲| 日韩午夜在线影院| 欧美一区午夜精品| 色天天综合色天天久久| 成人黄色小视频在线观看| 国产一区二区三区黄视频| 青青草97国产精品免费观看无弹窗版| 亚洲欧洲国产日本综合| 国产欧美一区二区三区沐欲| 国产亚洲精品久| 国产日本欧美一区二区| 久久一区二区三区国产精品| 国产婷婷色一区二区三区在线| 欧美成人国产一区二区| 欧美va在线播放| 亚洲精品一线二线三线无人区| 久久久久国产精品人| 精品国产91久久久久久久妲己| 69堂精品视频| 欧洲亚洲国产日韩| 在线观看欧美日本| 欧美伊人精品成人久久综合97| 欧美亚日韩国产aⅴ精品中极品| 在线观看日韩精品| 亚洲电影欧美电影有声小说| 综合自拍亚洲综合图不卡区| 综合中文字幕亚洲| 亚洲综合区在线| 亚洲成人在线观看视频| 国产一区不卡在线| 91香蕉视频mp4|