【DeepSeek】本地快速搭建多模态理解和文生图 Janus-Pro-7B模型

news/2025/2/4 2:00:25 标签: deepseek, AGI, 文生图, 多模态理解, Janus

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持!
博主链接

博客内容主要围绕:
       5G/6G协议讲解
       高级C语言讲解
       Rust语言讲解



文章目录

  • 本地快速搭建多模态理解文生图 Janus-Pro-7B模型
    • 一、创建运行环境
    • 二、下载项目代码并安装依赖
    • 三、运行Gradio Demo

JanusPro7B_12">本地快速搭建多模态理解文生图 Janus-Pro-7B模型

        Janus-Pro是一种新的自回归框架,将多模态理解和生成统一起来。它通过将视觉编码解耦到单独的路径中,同时仍然使用单一、统一的transformer架构进行处理,解决了以前方法的局限性。解耦不仅缓解了视觉编码器在理解和生成方面的角色冲突,而且增强了框架的灵活性。Janus-Pro超越了以前的统一模型,并匹配或超过特定任务模型的性能。Janus-Pro的简单性、高灵活性和有效性使其成为下一代统一多模态模型的有力候选者。

一、创建运行环境

我这边使用的是Anaconda,因此在cmd命令窗口中执行下面的命令创建一个虚拟环境:

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

也可以使用pycharm或者miniforge

二、下载项目代码并安装依赖

运行下面的代码下载janus项目:

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

这个项目中的requirements.txt文件中的 torch版本有问题,需要修改为更新的版本,以我这边测试为例,我使用的版本是:

torch==2.6.0+cu126 
--index-url https://download.pytorch.org/whl/cu126

transformers>=4.38.2
timm>=0.9.16
accelerate
sentencepiece
attrdict
einops

# for gradio demo
gradio==3.48.0
gradio-client==0.6.1
mdtex2html==1.3.0
pypinyin==0.50.0
tiktoken==0.5.2
tqdm==4.64.0
colorama==0.4.5
Pygments==2.12.0
markdown==3.4.1
SentencePiece==0.1.96

上面安装的版本是支持cuda 12.6 的torch版本,如果:

  • 你没有显卡,则只需要修改为 torch==2.6.0 即可;
  • 你的cuda版本和我的不一样,需要修改 torch 版本;

如何查看 cuda 版本?运行下面的命令查看:
nvidia-smi
在这里插入图片描述
如果无法执行上面的命令,需要先安装网卡驱动。

如何选择 torch 版本?

  1. 进入 https://download.pytorch.org/whl/cu<XXX>,XXX是你的cuda版本,例如我的是 CUDA 12.6,则XXX就是126,最后的地址就是 https://download.pytorch.org/whl/cu126
  2. 找到 torch 目录点进去;
  3. 然后找到 torch-<X.Y.Z>+cu126-*.whl 符合这个规则的最新版本的 torch就行。

修改好requirements.txt文件后,执行下面的命令开始安装环境:

pip install -r requirements.txt

三、运行Gradio Demo

在项目的 demo目录中,默认提供了三个模型的示例脚本,我们可以直接使用,这三个脚本对应的模型分别是:

脚本名称部署的模型
app.pydeepseek-ai/Janus-1.3B
app_janusflow.pydeepseek-ai/JanusFlow-1.3B
app_januspro.pydeepseek-ai/Janus-Pro-7B

我们这里使用 Janus-Pro-7B模型,在项目根目录运行下面的命令:

python demo/app_januspro.py

模型加载完毕之后,会提供一个本地 URL,我们将其复制到浏览器之后就可以开始使用了。

在这里插入图片描述

最后的效果就是下图所示:

在这里插入图片描述



在这里插入图片描述


http://www.niftyadmin.cn/n/5841166.html

相关文章

【FreeRTOS 教程 六】二进制信号量与计数信号量

目录 一、FreeRTOS 二进制信号量&#xff1a; &#xff08;1&#xff09;二进制信号量作用&#xff1a; &#xff08;2&#xff09;二进制信号量与互斥锁的区别&#xff1a; &#xff08;3&#xff09;信号量阻塞时间&#xff1a; &#xff08;4&#xff09;信号量的获取与…

【小白学AI系列】NLP 核心知识点(五)Transformer介绍

Transformer Transformer 是一种基于自注意力机制&#xff08;Self-Attention Mechanism&#xff09;的深度学习模型&#xff0c;首次由 Vaswani 等人于 2017 年在论文《Attention is All You Need》中提出。与 RNN 和 LSTM 不同&#xff0c;Transformer 不需要依靠序列顺序进…

自然语言处理-词嵌入 (Word Embeddings)

人工智能例子汇总&#xff1a;AI常见的算法和例子-CSDN博客 词嵌入&#xff08;Word Embedding&#xff09;是一种将单词或短语映射到高维向量空间的技术&#xff0c;使其能够以数学方式表示单词之间的关系。词嵌入能够捕捉语义信息&#xff0c;使得相似的词在向量空间中具有…

踏入编程世界的第一个博客

我&#xff0c;一个双非一本大一新生&#xff0c;普通的不能再普通了&#xff0c;面对宏伟庞大的计算机世界仍显得举手无措&#xff0c;我自以为自身仍有些许骨气&#xff0c;不想普普通通&#xff0c;甚是浑浑噩噩的度过四年大学&#xff0c;经历了高考的打击&#xff0c;双非…

Hot100之图论

200岛屿数量 题目 思路解析 把访问过的格子插上棋子 思想是先污染再治理&#xff0c;我们有一个inArea&#xff08;&#xff09;函数&#xff0c;是判断是否出界了 我们先dfs&#xff08;&#xff09;放各个方向遍历&#xff0c;然后我们再把这个位置标为0 我们岛屿是连着…

Linux环境下的Java项目部署技巧:环境安装

安装 JDK&#xff1a; 第上传 jdk 压缩安装包到服务器 将压缩安装包解压缩&#xff1a; tar -xvf jdk-8uXXX-linux-x64.tar.gz 配置环境变量&#xff1a; 编辑 /etc/profile 文件&#xff0c;在文件末尾添加以下内容&#xff1a; export JAVA_HOME/path/to/jdk //JAVA_HOME…

51单片机 01 LED

一、点亮一个LED 在STC-ISP中单片机型号选择 STC89C52RC/LE52RC&#xff1b;如果没有找到hex文件&#xff08;在objects文件夹下&#xff09;&#xff0c;在keil中options for target-output- 勾选 create hex file。 如果要修改编程 &#xff1a;重新编译-下载/编程-单片机重…

分库分表技术方案选型

一、MyCat 官方网站&#xff0c;技术文档 MyCat是一款由阿里Cobar演变而来的用于支持数据库读写分离、分片的数据库中间件。它基于MySQL协议&#xff0c;实现了MySQL的协议和能力&#xff0c;并作为代理层位于应用和数据库之间&#xff0c;可以隐藏底层数据库的复杂性。 原理…