本地部署DeepSeek开源多模态大模型Janus-Pro-7B实操

本地部署DeepSeek开源多模态大模型Janus-Pro-7B实操

Janus-Pro-7B介绍

Janus-Pro-7B 是由 DeepSeek 开发的多模态 AI 模型,它在理解和生成方面取得了显著的进步。这意味着它不仅可以处理文本,还可以处理图像等其他模态的信息。
模型主要特点:Permalink
统一的架构: Janus-Pro 采用单一 transformer 架构来处理文本和图像信息,实现了真正的多模态理解和生成。
解耦的视觉编码: 为了更好地平衡理解和生成任务,Janus-Pro 将视觉编码解耦为独立的路径,提高了模型的灵活性和性能。
强大的性能: 在多个基准测试中,Janus-Pro 的性能超越了之前的统一模型,甚至可以与特定任务的模型相媲美。
开源: Janus-Pro-7B 是开源的,这意味着研究人员和开发者可以自由地访问和使用它,推动 AI 领域的创新。
具体来说,Janus-Pro-7B 有以下优势:

图像理解: 能够准确地识别和理解图像中的对象、场景和关系。
图像生成: 可以根据文本描述生成高质量的图像,甚至可以进行图像编辑和转换。
文本生成: 可以生成流畅、连贯的文本,例如故事、诗歌、代码等。
多模态推理: 可以结合文本和图像信息进行推理,例如根据图像内容回答问题,或者根据文本描述生成图像。
与其他模型的比较:
超越 DALL-E 3 和 Stable Diffusion: 在 GenEval 和 DPG-Bench 等基准测试中,Janus-Pro-7B 的性能优于 OpenAI 的 DALL-E 3 和 Stability AI 的 Stable Diffusion。
基于 DeepSeek-LLM: Janus-Pro 建立在 DeepSeek-LLM-1.5b-base/DeepSeek-LLM-7b-base 的基础上,并对其进行了多模态扩展。
应用场景:
Janus-Pro-7B 具有广泛的应用场景,例如:

内容创作: 可以帮助用户生成高质量的图像、文本和其他多媒体内容。
教育: 可以用于创建交互式学习体验,例如根据文本描述生成图像,或者根据图像内容回答问题。
客户服务: 可以用于构建更智能的聊天机器人,能够理解和回应用户的多模态查询。
辅助设计: 可以帮助设计师生成创意概念,并将其转化为可视化原型

1 启动Anaconda环境

在这里插入图片描述

在这里插入图片描述

2 进入命令环境

conda create -n myenv python=3.10 -y

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

cd Janus

pip install -e .

pip install webencodings beautifulsoup4 tinycss2

pip install -e .[gradio]

pip install 'pexpect>4.3'

python demo/app_januspro.py

3 遇到默认配置下C盘磁盘空间不足问题

(myenvp) C:\Users\Administrator>python demo/app_januspro.py
python: can't open file 'C:\\Users\\Administrator\\demo\\app_januspro.py': [Errno 2] No such file or directory

(myenvp) C:\Users\Administrator>e:

(myenvp) E:\>cd ai


(myenvp) E:\AI>cd Janus



(myenvp) E:\AI\Janus>dir
 驱动器 E 中的卷是 chia-12T-1
 卷的序列号是 0AF0-159B

 E:\AI\Janus 的目录

2025/01/31  12:26    <DIR>          .
2025/01/30  00:53    <DIR>          ..
2025/01/30  00:53               115 .gitattributes
2025/01/30  00:53             7,301 .gitignore
2025/01/30  01:47    <DIR>          .gradio
2025/01/30  01:18    <DIR>          .locks
2025/01/31  12:26                 0 4.3'
2025/01/30  00:53    <DIR>          demo
2025/01/30  00:53             4,515 generation_inference.py
2025/01/30  00:53    <DIR>          images
2025/01/30  00:53             2,642 inference.py
2025/01/30  00:53             5,188 interactivechat.py
2025/01/30  01:04    <DIR>          janus
2025/01/31  12:25    <DIR>          janus.egg-info
2025/01/30  00:53         2,846,268 janus_pro_tech_report.pdf
2025/01/30  00:53             1,065 LICENSE-CODE
2025/01/30  00:53            13,718 LICENSE-MODEL
2025/01/30  00:53             3,069 Makefile
2025/01/30  01:47    <DIR>          models--deepseek-ai--Janus-Pro-7B
2025/01/30  00:53             1,111 pyproject.toml
2025/01/30  00:53            26,742 README.md
2025/01/30  00:53               278 requirements.txt
2025/01/30  01:18                 1 version.txt
              14 个文件      2,912,013 字节
               9 个目录 9,387,683,614,720 可用字节

3.1 设置HF_DATASETS_CACHE环境变量没解决问题

(myenvp) E:\AI\Janus>set HF_DATASETS_CACHE="E:\AI\Janus"


(myenvp) E:\AI\Janus>python demo/app_januspro.py
Python version is above 3.10, patching the collections module.
D:\anaconda3\envs\myenvp\lib\site-packages\transformers\models\auto\image_processing_auto.py:590: FutureWarning: The image_processor_class argument is deprecated and will be removed in v4.42. Please use `slow_image_processor_class`, or `fast_image_processor_class` instead
  warnings.warn(
Downloading shards:   0%|                                                                        | 0/2 [00:00<?, ?it/s]D:\anaconda3\envs\myenvp\lib\site-packages\huggingface_hub\file_download.py:651: UserWarning: Not enough free disk space to download the file. The expected file size is: 9988.18 MB. The target location C:\Users\Administrator\.cache\huggingface\hub\models--deepseek-ai--Janus-Pro-7B\blobs only has 8154.37 MB free disk space.
  warnings.warn(
pytorch_model-00001-of-00002.bin:  37%|███████████████▉                           | 3.71G/9.99G [00:05<02:38, 39.5MB/s]
Downloading shards:   0%|                                                                        | 0/2 [00:06<?, ?it/s]
Traceback (most recent call last):
  File "E:\AI\Janus\demo\app_januspro.py", line 19, in <module>
    vl_gpt = AutoModelForCausalLM.from_pretrained(model_path,
  File "D:\anaconda3\envs\myenvp\lib\site-packages\transformers\models\auto\auto_factory.py", line 564, in from_pretrained
    return model_class.from_pretrained(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\transformers\modeling_utils.py", line 3944, in from_pretrained
    resolved_archive_file, sharded_metadata = get_checkpoint_shard_files(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\transformers\utils\hub.py", line 1098, in get_checkpoint_shard_files
    cached_filename = cached_file(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\transformers\utils\hub.py", line 403, in cached_file
    resolved_file = hf_hub_download(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\huggingface_hub\utils\_validators.py", line 114, in _inner_fn
    return fn(*args, **kwargs)
  File "D:\anaconda3\envs\myenvp\lib\site-packages\huggingface_hub\file_download.py", line 860, in hf_hub_download
    return _hf_hub_download_to_cache_dir(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\huggingface_hub\file_download.py", line 1009, in _hf_hub_download_to_cache_dir
    _download_to_tmp_and_move(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\huggingface_hub\file_download.py", line 1543, in _download_to_tmp_and_move
    http_get(
  File "D:\anaconda3\envs\myenvp\lib\site-packages\huggingface_hub\file_download.py", line 452, in http_get
    for chunk in r.iter_content(chunk_size=constants.DOWNLOAD_CHUNK_SIZE):
  File "D:\anaconda3\envs\myenvp\lib\site-packages\requests\models.py", line 820, in generate
    yield from self.raw.stream(chunk_size, decode_content=True)
  File "D:\anaconda3\envs\myenvp\lib\site-packages\urllib3\response.py", line 1066, in stream
    data = self.read(amt=amt, decode_content=decode_content)
  File "D:\anaconda3\envs\myenvp\lib\site-packages\urllib3\response.py", line 955, in read
    data = self._raw_read(amt)
  File "D:\anaconda3\envs\myenvp\lib\site-packages\urllib3\response.py", line 879, in _raw_read
    data = self._fp_read(amt, read1=read1) if not fp_closed else b""
  File "D:\anaconda3\envs\myenvp\lib\site-packages\urllib3\response.py", line 862, in _fp_read
    return self._fp.read(amt) if amt is not None else self._fp.read()
  File "D:\anaconda3\envs\myenvp\lib\http\client.py", line 466, in read
    s = self.fp.read(amt)
  File "D:\anaconda3\envs\myenvp\lib\socket.py", line 717, in readinto
    return self._sock.recv_into(b)
  File "D:\anaconda3\envs\myenvp\lib\ssl.py", line 1307, in recv_into
    return self.read(nbytes, buffer
### Janus-Pro-7B 模型本地部署方法 对于希望在本地环境中部署 Janus-Pro-7B 的用户而言,官方提供了详细的指导说明[^2]。为了现这一目标,通常需要满足一定的硬件条件和支持特定的作系统环境。 #### 环境准备 确保计算机配置能够支持大型模型的运算需求,例如联想 Y7000 配备 RTX4060 和 i7 处理器,在 Ubuntu 22.04 上可以顺利运行 DeepSeek 开源多模态大模型 Janus-Pro-1B 或者更大规模版本如 Janus-Pro-7B[^3]。值得注意的是,由于 7B 版本相较于 1B 更加庞大复杂,因此对计算资源的要求也会相应提高。 #### 下载与安装依赖项 访问 Hugging Face 平台上的 [Janus-Pro-7B](https://huggingface.co/deepseek-ai/Janus-Pro-7B),按照页面提示完成必要的 Python 库和其他工具链的安装工作。这一步骤至关重要,因为这些组件构成了后续作的基础框架。 #### 修改应用程序脚本 编辑 `demo/app_januspro.py` 文件中的参数设置部分,将 model name 字段更改为指向 "deepseek-ai/Janus-Pro-7B"。此更改使得程序启动时加载正确的预训练权重文件而不是默认的小尺寸变体。 ```python from transformers import AutoModelForCausalLM, AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/Janus-Pro-7B") model = AutoModelForCausalLM.from_pretrained("deepseek-ai/Janus-Pro-7B") ``` #### 启动服务并测试连接 保存所做的修改之后,通过命令行执行该Python脚本来开启 Web UI 接口监听端口,默认情况下地址为 http://127.0.0.1:7860。此时可以在任意现代网页浏览器内输入上述URL来验证部署成果。 --- 关于是否能将整个项目打包进 U 盘的问题: 理论上讲是可以做到这一点的——即把所有必需的数据集、代码包连同虚拟环境一起复制到外部存储介质当中去;然而考虑到 Janus-Pro-7B 所需的空间占用量较大(可能达到数十GB),普通的 USB 设备未必具备足够的容量余量用于容纳如此庞大的数据结构。另外还需注意一点就是并非所有的作系统都能很好地识别来自不同平台创建出来的磁盘镜像格式,所以在际迁移过程中可能会遇到兼容性障碍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值