DeepSeek-Janus-Pro环境搭建&推理测试

引子

       北京时间1月28日凌晨,近期爆红的国产大模型DeepSeek在GitHub平台发布了Janus-Pro多模态大模型,这是继Janus发布之后的一次较大幅度升级。该款大模型是2024年11月13日发布的JanusFlow大模型的高级版本。相比前一代模型,Janus-Pro优化了训练策略、扩展了训练数据,模型也更大。通过这些改进,Janus-Pro 在多模态理解和文本到图像的指令跟踪功能方面都取得了重大进步,同时还增强了文本到图像生成的稳定性。OK,我们开始吧。

一、模型介绍

      根据DeepSeek发布的测试结果,Janus-Pro在 GenEval 和 DPG-Bench 基准测试中击败了 Stable Diffusion 和 OpenAI 的 DALL-E 3。目前,Janus系列的4款模型已经开源。

       首先,多模态理解任务上:Janus-Pro在MMBench基准测试中得分79.2,超过了其他一些知名的模型,比如TokenFlow-XL(68.9)和MetaMorph(75.2)。这像在一场画画比赛中,Janus-Pro的画作得到更高的评价,说明它在理解图像内容方面确实很厉害。对了,TokenFlow-XL是ByteFlow-AI团队开发的一个多模态模型,而MMBench由Meta公司开发;这两个对比充分说明了Janus-Pro在多模态理解任务中的领先地位。

      其次,在视觉生成任务上:Janus-Pro在GenEval基准测试中得分(0.80),也超过了DALL-E 3(0.67)和Stable Diffusion 3 Medium(0.74)等模型。这像给Janus-Pro一个文字描述,让它画出一幅画,结果它画得比其他模型更准确、更细致,说明它在根据文字描述生成图像方面也很出色。对了,DALL-E 3是OpenAI开发的文生图模型,而 Stable Diffusion 3 Medium不用说了,众所周知,专注于生成高质量图片,特别在中等分辨率下表现出色。

二、环境搭建

 模型下载,硬件受限

 7B模型

https://huggingface.co/deepseek-ai/Janus-Pro-7B/tree/main

docker run -it -v /datas/work/zzq/:/workspace --gpus=all --net=host pytorch/pytorch:2.0.1-cuda11.7-cudnn8-devel bash

pip install -r requirements.txt -i Simple Index

三、测试推理

多模态理解:

修改模型路径,支持精度

cd /workspace/DeepSeek/Janus

python inference.py

视觉生成:

显存问题修改,parallel_size大小

老显卡不支持bFloat16,修改代码为float16

生成图像如下:

### DeepSeek Janus-Pro 技术文档和使用指南 #### 一、概述 DeepSeek 发布了开源多模态 AI 模型 Janus-Pro,其中 Janus-Pro-7B 版本在 GenEval 和 DPG-Bench 基准测试中的表现超过了 OpenAI 的 DALL-E 3 和 Stable Diffusion[^1]。 #### 二、安装环境配置 为了顺利运行 Janus-Pro 模型,建议按照如下方式进行环境搭建: ##### Python 环境准备 确保本地已安装 Python 3.8 或以上版本。可以通过以下命令来验证当前 Python 版本: ```bash python --version ``` ##### 安装依赖库 通过 pip 工具安装必要的 Python 库文件。推荐创建虚拟环境后再执行此操作以避免污染全局包管理器。 ```bash pip install -r requirements.txt ``` `requirements.txt` 文件位于 GitHub 仓库根目录下,包含了所有必需的第三方模块列表。 #### 三、快速上手教程 对于初次接触该框架的研究人员来说,可以从简单的例子入手学习如何调用 API 接口完成图像生成任务。 ##### 加载预训练权重并初始化实例对象 ```python from janus_pro import MultiModalModel model = MultiModalModel.from_pretrained('janus-pro-7b') ``` ##### 输入提示词获取对应图片输出 ```python prompt_text = "A beautiful sunset over the ocean" output_image = model.generate(prompt=prompt_text, num_inference_steps=50) output_image.save("generated_sunset.png") ``` 上述代码片段展示了怎样利用给定的文字描述作为输入参数传递给 `generate()` 方法从而得到一张由算法合成的新颖视觉作品;最后保存结果至指定路径下的 PNG 文件中去。 #### 四、高级特性探索 除了基础功能外,Janus-Pro 还支持更多定制化选项供开发者挖掘潜力无限的应用场景。 ##### 跨平台部署方案 考虑到实际生产环境中可能存在的硬件差异性问题,官方提供了 Docker 镜像形式便于跨设备迁移以及云端服务集成。 ```dockerfile FROM nvidia/cuda:11.7.1-runtime-ubuntu22.04 WORKDIR /app COPY . . RUN pip install --no-cache-dir -q -U pip && \ pip install --no-cache-dir -r requirements.txt CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"] ``` ##### 多样化的推理模式切换 根据不同业务需求灵活调整采样策略,在保证质量的前提下有效缩短响应时间。 ```python # 设置温度系数控制随机程度,默认值为1.0表示标准正态分布 temperature = 0.7 # 启用 Top-k 截断机制过滤掉概率较低的结果项 top_k = 50 # 开启核采样方法保留累积占比前 p% 的候选集成员参与最终决策过程 top_p = 0.9 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

要养家的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值