VisualGLM-6B项目介绍
项目背景
VisualGLM-6B 是由清华大学开发的一个开源多模态对话语言模型。它结合了图像处理和自然语言处理能力,支持中文和英文的混合输出。它是基于ChatGLM-6B模型构建的,具有62亿个参数,新增的视觉能力通过训练BLIP2-Qformer桥接了视觉与语言模型,使整体模型参数达到78亿。
模型训练
VisualGLM-6B的训练依托于庞大的数据集,包含3000万条高质量的中文图文对和3亿条经过筛选的英文图文对,确保中、英语言训练的平衡。这种训练策略成功地将视觉信息整合到ChatGLM的语义空间中。模型在预训练的基础上,通过在长视觉问答数据上微调,使其所生成的回答更符合人类的偏好。
如何使用
如果有兴趣体验VisualGLM-6B,用户可以利用Python代码来进行模型调用。首先,需要安装相关的软件包:
pip install SwissArmyTransformer>=0.3.6 torch>1.10.0 torchvision transformers>=4.27.1 cpm_kernels
然后,可以通过以下代码与模型进行交互:
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)
关于更多的使用说明,包括如何运行命令行和网页版本的DEMO,以及利用模型量化以节省显存的详情,请参考我们的Github仓库。
使用协议
本项目的代码是基于Apache-2.0协议开源的,但在使用VisualGLM-6B模型的权重时,还需遵守特定的模型使用协议。
致谢与引用
如需引用此项目或者觉得本工作对您有帮助,请参考以下论文:
- ChatGLM: A Family of Large Language Models from GLM-130B to GLM-4 All Tools
- CogVLM: Visual Expert for Pretrained Language Models
这些论文详细阐述了模型的设计和研究过程,欢迎阅读了解更多的技术细节。