VisualGLM-6B简介
VisualGLM-6B是由清华大学开源的一个支持图像、中文和英文的多模态对话语言模型。它基于ChatGLM-6B语言模型,通过训练BLIP2-Qformer构建起视觉模型与语言模型的桥梁,整体模型共78亿参数。
VisualGLM-6B具有以下特点:
- 支持图像、中文和英文的多模态对话
- 基于ChatGLM-6B,具有62亿参数
- 通过BLIP2-Qformer连接视觉模型和语言模型
- 在30M中文和300M英文图文对上进行预训练
- 支持低资源设备部署,INT4量化后最低只需6.3G显存
官方资源
- GitHub仓库: https://github.com/THUDM/VisualGLM-6B
- Hugging Face模型: https://huggingface.co/THUDM/visualglm-6b
- 技术报告: https://arxiv.org/abs/2103.10360
使用教程
- 安装依赖:
pip install -r requirements.txt
- 使用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)
- 运行Demo:
python web_demo.py # 网页版Demo
python cli_demo.py # 命令行Demo
模型微调
VisualGLM-6B支持以下几种微调方式:
- LoRA
- QLoRA
- P-tuning
微调示例代码:
bash finetune/finetune_visualglm.sh
部署
- 命令行部署:
python cli_demo.py
- 网页部署:
python web_demo.py
- API部署:
python api.py
模型量化
model = AutoModel.from_pretrained("THUDM/visualglm-6b", trust_remote_code=True).quantize(8).half().cuda()
相关项目
总结
VisualGLM-6B作为一个开源的多模态对话模型,为研究者和开发者提供了丰富的学习和应用资源。通过本文的介绍和资源汇总,相信读者可以快速上手使用VisualGLM-6B,并根据自己的需求进行进一步的开发和优化。