镜像社区
部署GPU实例
文档中心
常见问题(FAQ)
LLM
VisualGLM
VisualGLM-6B 是一个开源的,支持图像、中文和英文的多模态对话语言模型,语言模型基于 ChatGLM-6B,具有 62 亿参数;图像部分通过训练 BLIP2-Qformer 构建起视觉模型与语言模型的桥梁,整体模型共78亿参数。
0/小时
v1.0

VisualGLM-6B 使用手册

快速使用Demo教程

待实例初始化完成后,在控制台-应用中打开“JupyterLab”;进入JupyterLab后,新建一个终端Terminal,输入以下指令

python cli_demo.py 

待命令运行结束后,即可开始与模型在命令行进行交互

image

1. 环境准备

1.1 安装依赖

使用以下命令安装所需依赖:

pip install -i https://pypi.org/simple -r requirements.txt

对于国内用户,推荐使用阿里云镜像:

pip install -i https://mirrors.aliyun.com/pypi/simple/ -r requirements.txt

如果你不需要 deepspeed 库,可以使用以下命令跳过安装:

pip install -i https://mirrors.aliyun.com/pypi/simple/ -r requirements_wo_ds.txt
pip install -i https://mirrors.aliyun.com/pypi/simple/ --no-deps SwissArmyTransformer>=0.4.4

2. 模型推理

2.1 使用 Hugging Face Transformers 库调用模型

以下是使用 Transformers 库进行模型推理的示例代码:

from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained(THUDM/visualglm-6b, trust_remote_code=True)
model = AutoModel.from_pretrained(THUDM/visualglm-6b, trust_remote_code=True).half().cuda()

image_path = your image path
response, history = model.chat(tokenizer, image_path, 描述这张图片。, history=[])
print(response)

response, history = model.chat(tokenizer, image_path, 这张图片可能是在什么场所拍摄的?, history=history)
print(response)

2.2 下载模型参数

如果你在 Hugging Face Hub 上下载模型参数速度较慢,可以手动下载模型参数文件并从本地加载:

huggingface-cli download --resume-download THUDM/visualglm-6b --local-dir ./dataset --token YOUR_HUGGINGFACE_TOKEN

3. 模型微调

3.1 微调示例

解压 fewshot-data.zip 后,运行以下命令进行微调:

bash finetune/finetune_visualglm.sh

支持三种微调方式:

  • LoRA: 可以根据具体情况调整 --layer_range--lora_rank 参数。
  • QLoRA: 适合资源有限的用户,使用 bash finetune/finetune_visualglm_qlora.sh 进行微调。
  • P-tuning: 使用 --use_ptuning 参数,但不推荐使用,除非场景非常固定。

3.2 合并 LoRA 参数

微调后可以合并 LoRA 的参数到原始权重:

from finetune_visualglm import FineTuneVisualGLMModel
import argparse

model, args = FineTuneVisualGLMModel.from_pretrained(checkpoints/finetune-visualglm-6b-05-19-07-36,
    args=argparse.Namespace(
        fp16=True,
        skip_init=True,
        use_gpu_initialization=True,
        device=cuda,
    ))
model.get_mixin(lora).merge_lora()
args.layer_range = []
args.save = merge_lora
args.mode = inference
from sat.training.model_io import save_checkpoint
save_checkpoint(1, model, None, None, args)

4. 部署工具

4.1 命令行 Demo

使用以下命令启动命令行 Demo:

python cli_demo.py 

程序支持以下参数控制生成过程与量化精度:

usage: cli_demo.py [-h] [--max_length MAX_LENGTH] [--top_p TOP_P] [--top_k TOP_K] [--temperature TEMPERATURE] [--english] [--quant {8,4}]

可选参数:

  • --max_length: 最大序列长度
  • --top_p: nucleus 采样的 top p
  • --top_k: top k 采样的 top k
  • --temperature: 采样温度
  • --english: 仅输出英文
  • --quant {8,4}: 量化位数

在程序中可以通过输入 clear 清空对话历史,输入 stop 终止程序。

镜像信息
@敢敢のwings
已使用
7
镜像大小80GB
最近编辑2024-10-28
支持卡型
RTX40系48G RTX40系2080
+3
框架版本
PyTorch-Ubuntu24.04+CUDA12.4
CUDA版本
12.4
应用
JupyterLab: 8888
版本
v1.0
2025-07-11
PyTorch:Ubuntu24.04+CUDA12.4 | CUDA:12.4 | 大小:80.00GB