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. Django之gunicorn部署

    安装: pip install gunicorn 启动应用: gunicorn -w 3 -k gthread -e DJANGO_SETTINGS_MODULE=settings.prod Serv ...

  2. mongoose 读取表中数据始终返回空值

    在项目中使用MongoDB存取数据,在另一个项目中使用mongoose读取同一数据库中表数据却始终返回空值. 后发现mongoose在创建model时会自动添加"s",而Mongo ...

  3. 利用Catalina快速重新指定tomcat的代码路径

    思路: 在/tomcat/conf/Catalina/localhost目录下,建立对应的xml文件,来定义. 方法: 比如:想在 Http://localhost/test-api 显示,且代码放在 ...

  4. Gitlab:Restoring PostgreSQL database gitlabhq_production ... ERROR: must be owner of extension pg_trgm

    Restoring PostgreSQL database gitlabhq_production ... ERROR: must be owner of extension pg_trgm ERRO ...

  5. NATS: 对依赖注入支持

    NuGet: NATS.Net 使用方法: serviceCollection.AddNats(); 在容器中添加了 2 个单例服务: NATS.Client.Core.NatsConnection ...

  6. vue3 封装axios

    1添加一个新的 http.js文件 封装axios 引入axios //引入Axios import axios from 'axios' 定义一个根地址 //视你自己的接口地址而定 var root ...

  7. Windows10中安装了ubuntu虚拟机后xshell无法连接到ubuntu

    安装了ubuntu虚拟机后发现shell无法连接到ubuntu的排查步骤: 步骤 1: 检查虚拟机网络配置确认虚拟机网络模式:确认虚拟机的网络模式是否设置为桥接模式或NAT模式.桥接模式可以让你的虚拟 ...

  8. 编译树莓派Linux内核

    1.建议边看视频边跟着教程走 https://www.bilibili.com/video/av91990721?zw 2.准备工作 下载官方提供的交叉编译工具链 git clone https:// ...

  9. python_pip 安装工具包

    e.g: pip install pygame http://mirrors.aliyun.com/pypi/simple/ 安装方法可以直接在命令行输入pip install -扩展包名字. 加快安 ...

  10. Solution -「AGC 020F」Arcs on a Circle

    \(\mathscr{Description}\)   Link.   在一个周长为 \(c\) 的圆周上放置长度分别为 \(l_1,l_2,\cdots,l_n\) 的弧,每条弧的位置独立均匀随机. ...