一、说明介绍
由于前面玩过了,所以啥也别说,就是显存不够玩,要优化,没钱就是这么回事,看下图,显存实际只有15360M,确实是16G+
如何获取算力
二、如何获取算力
1、进入网址 Cloud Studio
2、没有注册的注册
应该是可以和腾讯云共账号,忘了
3、选择 Ai模板
看到高性能没有,这个有GPU
也可以进入高性能工作空间
注意那个立即创建是cpu的,我们要点新建,可以创建很多个,同时工作的可以有两个,总共每月10000分钟,最开始50000分钟,之所以选这个高性能工作空间,这里一般的硬盘比较小,这个比较大,下图中的Pytorch2.0.0 只有30G左右,不够用,其它的有时间可以进去看看,选择deepseek-R1的环境,可以用OLlama直接部署几个蒸馏模型,试了下,14b的可以部署,再往上GPU就不够了
三、部署与测试
前面几篇文章其实已经部署过了,这篇文章其实是优化,
1、创建新的工作空间
我们建立了新的环境,今天还是很快的,一般要几分钟。反正不需要可以删除,放着也行,随时可以创建,最近几天放假,很好创建,前几天进都进不去,直接显示算力没有。这个有点不好的就是好像不能写描述,最开始可以的,不知道从哪里进去建立可以,反正这个方法建立时没有地方修改,大家弄个表格记录下,以后都忘了哪个工作空间是干嘛。
已经完成,有运行中,直接点击这一排,就可以进去,
代码可以放在下图的workspace里,和VScode差不多,
如下图,点击上面的终端,新建终端,就显示终端了
2、下载源码
cd /workspace
git clone https://github.com/deepseek-ai/Janus.git
#难道关税大战,github也要干掉了,有点怀疑啊,慢的要死,我是直接上传,clone不成功
cd Janus
3、安装Python环境
# ubuntu环境
apt-get update
apt-get install build-essential
apt-get install cmake
apt-get install pkg-config
conda create -n janus python=3.10
conda init
source ~/.bashrc
conda activate janus
cd /workspace/Janus
# 注意后面的点
pip install -e .[gradio]
pip install bitsandbytes accelerate flash-attn
4、显存优化的方法
- 确保模型以4-bit或8-bit加载。
- 使用半精度(torch.float16)。
- 启用Flash Attention。
- 调整batch size为1,避免处理多个样本。
- 使用内存优化库如vLLM或Hugging Face的优化选项(如device_map="auto",可能结合offload_folder等参数)。
- 如果使用文本生成,限制生成的最大长度和min_length,减少显存占用。
5、下载模型
这里我们考虑在项目主目录下创建models文件夹,用于保存Janus-Pro-1B和7B模型权重。考虑到国 内网络环境,这里推荐直接在Modelscope上进行模型权重下载。
- 安装modelscope
pip install modelscope
- 创建模型文件夹
我们这次创建在demo文件夹下面
mkdir -p demo/Janus-Pro-7B
# 进入app_januspro.py的目录
cd demo
# 下载7B模型
modelscope download --model deepseek-ai/Janus-Pro-7B --local_dir ./Janus-Pro-7B
下载需要点时间,看网速,一般还是比较快的。
6、修改app_januspro.py
下载frpc_linux_amd64并放在合适的地方,没有配置时会提示错误,最新版gradio会提示0.3版本
我用的是0.2,也就是requirements.txt表明了gradio==3.48.0
运行之前
下载地址:https://download.csdn.net/download/jiangkp/90568217
mv frpc_linux_amd64_v0.2 /root/miniforge3/envs/janus/lib/python3.10/site-packages/gradio
chmod +x /root/miniforge3/envs/janus/lib/python3.10/site-packages/gradio/frpc_linux_amd64_v0.2
一些优化设置关键点我在代码里注释了
代码如下;
import gradio as gr
import torch
from transformers import AutoConfig, AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from janus.models import MultiModalityCausalLM, VLChatProcessor
from janus.utils.io import load_pil_images
from PIL import Image
import numpy as np
import os
import time
# import spaces # Imp