当前位置: 首页 > article >正文

DeepSeek 多模态大模型Janus-Pro本地部署教程

在这个春节期间最火的显然是 DeepSeek 了。据不负责统计朋友圈每天给我推送关于 DeepSeek 的文章超过20篇。打开知乎跟B站也全是 DeepSeek 相关的内容。关于DeepSeek究竟有多么的牛逼,这里就不多废话了。

一、Janus-Pro

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

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

二、本地部署Janus-Pro

本地 PC 电脑运行 Janus Pro 模型需要先安装 Git 和 conda ,如果没有安装,请先下载安装。

2.1 安装conda

首先,到 anaconda 官网下载下载安装包,链接地址: Download Anaconda Distribution | Anaconda。

 

 


安装完成后,点击anaconda图标打开anaconda应用,如下图。

 

2.2 创建虚拟环境

虚拟环境之间可以相互隔离,可以在不同的环境中分别指定不同的Python的版本和安装的依赖包。首先,在Environments界面,点击create按钮即可创建。

 


创建虚拟环境可能会需要一些时间,耐心等待即可。

 


安装完成后点击相应的虚拟环境,即会使用对应虚拟环境。被使用的虚拟环境的名称后会有一个绿色的播放图标。进入terminal后,输入命令 conda env list 可以查看所有的虚拟环境。当前在命令行最前端会展示使用的虚拟环境(如下图的当前环境为默认的base环境)。如果要激活其他的虚拟环境,可以通过执行命令 conda activate 环境名来实现。

接下来,我们需要创建一个 python 虚拟环境。

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

2.3 克隆 janus 仓库

首先,将janus仓库clone到本地:

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

然后,我们需要安装基础依赖:

pip install -e .

2.4 安装 Gradio

Gradio是一个开源的Python库,它允许用户快速构建可定制的Web应用程序界面,用于演示和测试机器学习模型。通过Gradio,数据科学家和开发者可以轻松创建一个用户友好的界面,其他人可以通过这个界面输入数据(如图像、文本或数值)并查看模型的预测结果。

安装Gradio的命令如下:

pip install gradio

当然,为了安装更快,也可以使用清华大学的镜像:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade gradio

安装完成之后,运行python并输入如下内容验证。

import gradio as gr
print(gr.__version__)    #当前最新版本5.12.0

三、运行 Janus Pro

3.1 修改参数

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

找到我们克隆下来的仓库。使用编辑器打开 demo/app_januspro.py,然后把第15行改成:

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

3.2 启动 Janus Pro

运行如下命令启动 Janus Pro:

python demo/app_januspro.py

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

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

 


其中,下方就是文生图功能。


http://www.kler.cn/a/535152.html

相关文章:

  • java基础2(黑马)
  • 3.5 Go(特殊函数)
  • Redis --- 使用zset处理排行榜和计数问题
  • 在 Spring Boot 项目中,bootstrap.yml 和 application.yml文件区别
  • Hackmyvm Blackhat
  • Spring @Lazy:延迟初始化,为应用减负
  • 【教程】docker升级镜像
  • 《C#之集训1-20121019c#基础》
  • 【人工智能】使用deepseek初体验
  • 代码随想录算法训练营第四十四天-动态规划-子序列-392.判断子序列
  • OKHttp拦截器解析
  • OpenOffice实现word转pdf
  • 深度整理总结MySQL——行记录存储
  • tcpdump 的工作层次
  • 计算机网络笔记再战——理解几个经典的协议4
  • AI 编程工具—Cursor进阶使用 生成AI工作流
  • 售后板子HDMI无输出分析
  • 力扣.270. 最接近的二叉搜索树值(中序遍历思想)
  • 分析用户请求K8S里ingress-nginx提供的ingress流量路径
  • 服务器升级nginx版本
  • ImportError: cannot import name ‘Undefined‘ from ‘pydantic.fields‘
  • 使用 OpenGL ES 在 iOS 上渲染一个四边形:从基础到实现
  • DKG(Distributed Key Generation)协议
  • 设计模式六大原则和单例模式
  • 依赖版本冲突导致微服务项目启动失败解决方法
  • 数据中台是什么?:架构演进、业务整合、方向演进