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. 成为Java GC专家(4) — Apache的MaxClients参数详解及其在Tomcat执行FullGC时的影响

    这是"成为Java GC专家系列文章"的第四篇. 在第一篇文章 成为JavaGC专家Part I - 深入浅出Java垃圾回收机制 中我们学习了不同GC算法的执行过程,GC如何工作 ...

  2. YOLOv8-PyQT5可视化界面

    使用PyQT5实现YOLOv8图形化界面 准备工作: 1.首先在YOLOv8环境中安装pyqt5 pip install pyqt5 pip install pyqt5-tools 然后再你的anac ...

  3. Helm部署SkyWalking

    一 . 部署ElasticSearch 1.下载安装包 helm repo add elastic https://helm.elastic.cohelm pull elastic/elasticse ...

  4. 强网杯2023 谍影重重2.0 wp

    题目描述 小明是某间谍组织的一员,他终日监听着我国某重点军事基地的飞行动态,妄图通过分析参数找到我国飞的最快的飞机.我国费尽千辛万苦抓住了他,并在他的电脑上找到了一段他监听的信息,请分析出这段信息中飞 ...

  5. WxPython跨平台开发框架之表格数据导出到Excel并打开

    在 Python 中使用 wxPython 导出实体类列表数据到 Excel,通常可以借助 openpyxl 或 pandas 库来实现.本篇随笔由浅入深,逐步介绍导出Excel文件的操作,然后结合跨 ...

  6. 拿到小米 Offer,却迷茫了。。

    大家好,我是程序员鱼皮,12 月了,很多小伙伴也拿到了秋招的 Offer(没拿到也不要灰心),但即使拿到 Offer,可能还会有一些其他的顾虑.今天分享我们编程导航一位鱼友的提问,给大家作为学习成长的 ...

  7. Reverse花指令及反混淆

    花指令及反混淆 1.花指令   花指令是反调试的一种基本的方法.其存在是干扰选手静态分析,但不会影响程序的运行.实质就是一串垃圾指令,它与程序本身的功能无关,并不影响程序本身的逻辑.在软件保护中,花指 ...

  8. arcgis技术文章索引

    1.Error:  The System Clock has been set back to the past. 点击打开链接 2.Error:  Error 1500. Another insta ...

  9. 鸿蒙开发之PixelMap介绍与实现图片变换

    本文所学技术可以用在哪 很多读者一看这个文章标题,可能根本不知道能干嘛,且不感兴趣.所以咱们先说说,今天写的这个技术有没有用. 首先,猫林老师即将给大家写的<原生AI之文字识别>就得用到这 ...

  10. Java 提取字符串中xml格式内容

    @ 目录 前言 简介 总结 前言 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i. 提示:以下是本篇文章正文内容,下面案例可供参考 简介 在Java中,使用正则表达式来提取字符串中的XML格 ...