Hello, 大家新年好。

在这个春节期间最火的显然是 DeepSeek 了。据不负责统计朋友圈每天给我推送关于 DeepSeek 的文章超过20篇。打开知乎跟B站也全是 DeepSeek 相关的内容。不过大部分的内容都是关于 DeepSeek R1 推理模型有多牛逼。在这里就不多说关于 R1 的废话了,因为大家已经看腻了。

R1 在本地用 ollama 跑了一下,太简单了,都没必要写个教程。除了 R1 今天还在本地部署成功了 DeepSeek 的 Janus Pro 模型。

什么是 Janus Pro

Janus-Pro是一种创新的自回归框架,其统一了多模态理解与生成任务。该框架通过将视觉编码解耦到不同的处理路径(同时仍使用单一统一的Transformer架构进行信息处理),有效解决了先前方法的局限性。这种解耦机制不仅缓解了视觉编码器在理解与生成双重角色间的冲突,还显著提升了框架的灵活性。Janus-Pro在性能上超越了以往的统一模型,并达到甚至超越了专用任务模型的表现水平。凭借其架构简洁性、高度灵活性和卓越有效性,Janus-Pro有望成为下一代统一多模态模型的重要技术方向。

以上内容来自 Janus Pro github 仓库的介绍,非常的学术。简单说它是文生图的模型,类似 DALL-E 3, Stable Diffusion。

以下就让我们看看这么在本地的 PC 电脑来运行 Janus Pro 模型吧。

1. 安装 conda

从以下地址下载 anaconda 的 windows 安装包

https://www.anaconda.com/download

安装完成后需要把安装目录配置到环境变量 PATH 上

2. 创建 python 虚拟环境

conda create -n janus_pro python=3.10 -y
conda activate janus_pro

注意:Python 3.10是经过验证的兼容版本,避免使用其他版本导致依赖冲突

3. 克隆 janus 仓库到本地

git clone https://github.com/deepseek-ai/Janus.git
cd Janus

4. 安装依赖

# 安装基础依赖
pip install -e .

注意:pip 安装依赖的时候可能会遇到网络问题,建议配置代理

5. 安装 Gradio

pip install -e .[gradio]

到时候我们会通过 Gradio 的界面跟 janus 进行交互

6. 使用 janus pro 1B 模型

janus pro 默认启动的时候使用的是 7B 参数的模型,本地电脑跑起来的话太卡了。这里我们会修改成使用 1B 模型,这样的话大概 8G 的显存也能勉强跑一跑,7B 的话对显存的要求会更高。

找到我们克隆下来的仓库。使用编辑器打开 demo/

把第15行改成:

model_path = "deepseek-ai/Janus-Pro-1B"

7. 启动 Janus Pro

python demo/app_januspro.py

注意:启动期间会从 huggingface 拉取 1B 模型,大小大概 4G,所以还是需要指定代理。

启动成功后如下图:

8. 使用 Gradio 界面进行交互

启动成功后在浏览器里输入: http://127.0.0.1:7860 即可访问 Gradio 页面。

9. 图片理解

先来试试 janus pro 对图片的理解。

This image is a humorous meme that uses the popular "buff Doge vs. sad Doge" format to compare two different approaches to visual encoding.
...

这个解释到位的有点吓人。

10. 文生图

再来试试文字生成图片

prompt:

A cute and adorable baby fox with big brown eyes, autumn leaves in the background enchanting,immortal,fluffy, shiny mane,Petals,fairyism,unreal engine 5 and Octane Render,highly detailed, photorealistic, cinematic, natural colors.



图片是我从 Hugging Face 直接运行得到的。在我本地运行了30分钟都没出结果,我直接 ctrl-c 取消了。可能是我的显卡太垃圾了(RTX4060 Mobile)。

总结

以上我们在本地 windows 上成功部署了 DeepSeek janus pro 模型。按照以上 step by step 的方式也没什么难度。通过测试 janus pro 对图片的理解非常到位。但是文生图的测试失败了,可能是我的显卡太垃圾,如果有同学有 4090 这种显卡可以试一试本地文生图的性能。

本地部署 DeepSeek Janus Pro 文生图大模型的更多相关文章

  1. ArcGIS API for JavaScript 4.x 本地部署之Nginx法

    上篇ArcGIS API for JavaScript 4.x 离线配置之IIS法提到,如何用IIS配置ArcGIS jsAPI: 本篇则使用http下的Nginx配置,其原理基本一致.https的部 ...

  2. virtual judge 本地部署方案

    这是一种将自己的电脑当作服务器来部署一个vj的方法,我也是参考前辈们的做法稍作了改动,如果在服务器上部署的话需要在细节上稍作改动: 一.什么是Virtual Judge? vj的工作原理什么?  vj ...

  3. RocketMq灰皮书(二)------本地部署启动MQ

    RocketMq灰皮书(二)------本地部署启动MQ Windows10本地部署RocketMQ 在上一篇文章中,我们对rocket的几个基本概念进行了介绍,也了解了业内几大消息中间件的区别.在本 ...

  4. Exceptionless 本地部署

    免费开源分布式系统日志收集框架 Exceptionless 前两天看到了这篇文章,亲身体会了下,确实不错,按照官方的文档试了试本地部署,折腾一番后终于成功,记下心得在此,不敢独享. 本地部署官方wik ...

  5. ArcGIS API for JavaScript开发笔记(一)——ArcGIS for Javascript API 3.14本地部署

    堪称史上最详细的< ArcGIS forJavascript API 3.14本地部署>文档,有图有真相~~~ ---------环境:Windows server 2012R2,IIS ...

  6. easy-mock本地部署成功,访问报错:EADDRNOTAVAIL 0.0.0.0:7300 解决方案

    easy-mock本地部署成功后,迫不及待的想看看是否能正常访问,执行命令 npm run dev 启动项目,访问 127.0.0.1:7300 ,结果郁闷的是报错:EADDRNOTAVAIL 0.0 ...

  7. Cesium 本地部署案例

    众所周知,cesium的服务器是搭建在国外的,所以我们国内的用户访问的时候贼慢.有时想查个api或者看个案例半天都进不去,今天我来说一下傻瓜式搭建本地的cesium环境,用于大家没事查资料用!步骤:1 ...

  8. 更改Dynamics 365 Customer Engagement本地部署的高级配置

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  9. Kubernetes 学习笔记(二):本地部署一个 kubernetes 集群

    前言 前面用到过的 minikube 只是一个单节点的 k8s 集群,这对于学习而言是不够的.我们需要有一个多节点集群,才能用到各种调度/监控功能.而且单节点只能是一个加引号的"集群&quo ...

  10. 本地部署 Misago Docker + 配置 HTTPS 笔记

    最近答应帮朋友做个论坛网站,想借此机会捡起 Python 在 GitHub 找了一圈,打算借用以 Python+Django 开发的 Misago 这个论坛系统 由于作者在今年更新的 Misago 0 ...

随机推荐

  1. Vue日常使用与常见问题

    使用: 1.在使用elementUI自定义表格中字段样式 官方文档:https://element.eleme.cn/2.10/#/zh-CN/component/table # 基础使用 <t ...

  2. JPEG格式研究——(4)反量化、逆ZigZag变化和IDCT变换

    反量化 反量化其实很简单,将霍夫曼解码出来的数据乘上对应的量化表就好了 通过当前色度选择出SOF中的Component,其中的Tqi指出了这一色度所需的量化表id Component的结构如下: 名称 ...

  3. Electron(2) - 下载与解压缩

    1.下载文件 主线程中调用下载 win.webContents.downloadURL(url) 监听下载事件 //监听下载动作 win.webContents.session.on('will-do ...

  4. Electron(1) - 快速入门

    1.前言 本节主要讲述Electron的环境搭建以及如何快速创建一个应用 官方文档 2.环境搭建 (1)安装node.js (2)创建项目目录,初始化配置文件 //进入项目目录 并在此目录打开cmd窗 ...

  5. S2P主数据助力医药企业建立数据化管理平台

    随着国家信息化进程的推进,医药软件行业市场规模正在不断扩大,其应用领域也在逐步拓宽,企业面临着多样化的销售渠道和模式选择.然而,要想在这样的多变市场中占据优势地位,单纯依靠经验决策已经不足以应对挑战. ...

  6. ASP.NET Core: ConfigurationBuilder

    在 ASP.NET Core 中,大量使用了建造模式 Builer,从类型的名称就可以看出来这一点,例如 HostBuilder.ConfigurationBuilder 等等. 建造模式是对象的创建 ...

  7. 聊一聊 C#线程池 的线程动态注入 (下)

    一:背景 1. 讲故事 前面二篇我们聊到了 Thread.Sleep 和 Task.Result 场景下的线程注入逻辑,在线程饥饿的情况下注入速度都不是很理想,那怎么办呢?有没有更快的注入速度,这篇作 ...

  8. vs 禁用c++编译警告提示的两种方式

    1. 禁用单个cpp文件编译警告 #pragma warning(disable:警告号) 如:当前提示C4305警告; 加入禁用单个cpp文件编译警告; 结果:编译警告消失. 2. 全局禁用指定警告 ...

  9. 在 .NET 中使用 Tesseract 识别图片文字

    1. 什么是 Tesseract Tesseract 是一个强大的字符识别 (OCR) 工具.它最初由 HP 发布,现在由 Google 和学术社区共同维护和开发. Tesseract 支持多种语言和 ...

  10. MAC 使用问题汇总

    1. 在.zshrc中添加的环境变量不起作用 Answer: 需要把/etc/zshrc文件复制到 ~, 并命名为.zshrc,然后设置环境变量即可: