🌟 跳转到详细介绍: CogVLM介绍, 🆕 CogAgent的介绍
📔 如需获取更详细的使用信息,请参阅: CogVLM&CogAgent技术文档
CogVLM📖 Paper: CogVLM: Visual Expert for Pretrained Language Models CogVLM 是一个强大的开源视觉语言模型(VLM)。CogVLM-17B拥有100亿的视觉参数和70亿的语言参数,支持490*490分辨率的图像理解和多轮对话。 CogVLM-17B 17B在10个经典的跨模态基准测试中取得了最先进的性能包括NoCaps, Flicker30k captioning, RefCOCO, RefCOCO+, RefCOCOg, Visual7W, GQA, ScienceQA, VizWiz VQA 和 TDIUC 基准测试。 |
CogAgent📖 Paper: CogAgent: A Visual Language Model for GUI Agents CogAgent 是一个基于CogVLM改进的开源视觉语言模型。CogAgent-18B拥有110亿的视觉参数和70亿的语言参数, 支持1120*1120分辨率的图像理解。在CogVLM的能力之上,它进一步拥有了GUI图像Agent的能力。 CogAgent-18B 在9个经典的跨模态基准测试中实现了最先进的通用性能,包括 VQAv2, OK-VQ, TextVQA, ST-VQA, ChartQA, infoVQA, DocVQA, MM-Vet, 和 POPE 测试基准。它在包括AITW和Mind2Web在内的GUI操作数据集上显著超越了现有的模型。 |
| 🌐 CogVLM2 在线体验: this link |
目录
2024/4/5: CogAgent 成功被评选为CVPR 2024 Highlights!2023/12/26:我们公开了 CogVLM-SFT-311K 数据集,它包含了超过15万条我们用于训练 CogVLM v1.0(仅该模型) 的数据。欢迎关注和使用。2023/12/18: 新的Streamlit用户界面已经上线!我们已经基于Streamlit推出了新的网页用户界面,用户可以在我们的界面上轻松与CogVLM,CogAgent交谈。带来更好的用户体验。🔥 News: 2023/12/15: CogAgent 正式发布! CogAgent是基于CogVLM开发的图像理解模型。它具有基于视觉的GUI
Agent功能,并在图像理解方面进行了进一步的增强。它支持分辨率为1120*1120的图像输入,并具有包括与图像进行多轮对话、GUI
Agent、Grounding等多种能力。
News: 2023/12/8:
我们已将cogvlm-grounding-generalist的检查点更新为cogvlm-grounding-generalist-v1.1,训练过程中增加了图像增强,因此更加稳健。查看详情。
News: 2023/12/7 CogVLM现在支持4-bit量化!您只需要11GB的GPU内存就可以进行推理!
News: 2023/11/20我们已将cogvlm-chat的检查点更新为cogvlm-chat-v1.1,统一了聊天和VQA的版本,并刷新了各种数据集上的SOTA,查看详情。
News: 2023/11/20 我们在🤗Huggingface上发布了 cogvlm-chat, cogvlm-grounding-generalist/base, cogvlm-base-490/224,使用transformers 快速 推理。
2023/10/27 CogVLM双语版本已经在线上可用!欢迎试用。
2023/10/5 CogVLM-17B v1.0 发布。
如果您需要使用代理和接地功能,请参考Cookbook - Task Prompts。
我们支持两种模型推理的图形用户界面,命令行界面和网络演示。如果你想在你的Python代码中使用它,修改命令行脚本以适应你的情况。 首先,我们需要安装依赖项。
# CUDA >= 11.8
pip install -r requirements.txt
python -m spacy download en_core_web_sm
所有的推理代码都位于 basic_demo/ 目录下。请在进行进一步操作之前,先切换到这个目录。
通过以下方式运行CLI演示:
# CogAgent
python cli_demo_sat.py --from_pretrained cogagent-chat --version chat --bf16 --stream_chat
python cli_demo_sat.py --from_pretrained cogagent-vqa --version chat_old --bf16 --stream_chat
# CogVLM
python cli_demo_sat.py --from_pretrained cogvlm-chat --version chat_old --bf16 --stream_chat
python cli_demo_sat.py --from_pretrained cogvlm-grounding-generalist --version base --bf16 --stream_chat
该程序将自动下载卫星模型并在命令行中进行交互。您可以通过输入指令并按回车来生成回复。输入clear 以清除对话历史,输入stop 以停止程序。
我们也支持模型并行推理,该推理将模型分割到多个(2/4/8)GPU上。使用 --nproc-per-node=[n] 控制使用的GPU数量。
torchrun --standalone --nnodes=1 --nproc-per-node=2 cli_demo_sat.py --from_pretrained cogagent-chat --version chat --bf16
如果你想手动下载权重,你可以用模型路径替换 --from_pretrained 后的路径。
我们的模型支持SAT的4位量化和8位量化。你可以将 --bf16 更改为 --fp16, 或 --fp16 --quant 4, 或 --fp16 --quant 8.
例如
```bash
python cli_demo_sat.py --from_pretrained cogagent-chat --fp16 --quant 8 --stream_chat
python cli_demo_sat.py --from_pretrained cogvlm-chat-v1.1 --fp16 --quant 4 --stream_chat
# In SAT version,--quant should be used with --fp16
```
该程序提供以下超参数来控制生成过程: ``` usage: cli_demo_sat.py [-h] [--max_length MAX_LENGTH] [--top_p TOP_P] [--top_k TOP_K] [--temperature TEMPERATURE]
optional arguments: -h, --help show this help message and exit --max_length MAX_LENGTH max length of the total sequence --top_p TOP_P top p for nucleus sampling --top_k TOP_K top k for top k sampling --temperature TEMPERATURE temperature for sampling ```
点击 这里 查看不同模型与 --version 参数之间的对应关系的对应关系。
通过以下方式运行CLI演示:
# CogAgent
python cli_demo_hf.py --from_pretrained THUDM/cogagent-chat-hf --bf16
python cli_demo_hf.py --from_pretrained THUDM/cogagent-vqa-hf --bf16
# CogVLM
python cli_demo_hf.py --from_pretrained THUDM/cogvlm-chat-hf --bf16
python cli_demo_hf.py --from_pretrained THUDM/cogvlm-grounding-generalist --bf16
如果你想手动下载权重,你可以将 --from_pretrained 后的路径替换为模型路径。
你可以将 --bf16 更改为 --fp16, 或者 --quant 4。例如,我们的模型支持Huggingface的4-bit quantization:
bash
python cli_demo_hf.py --from_pretrained THUDM/cogvlm-chat-hf --quant 4
我们还提供了一个基于Gradio的本地网络演示。首先,通过运行 pip install gradio 来安装Gradio。然后下载并进入这个仓库,运行 web_demo.py。
详细的使用方法请参见下一节:
python web_demo.py --from_pretrained cogagent-chat --version chat --bf16
python web_demo.py --from_pretrained cogagent-vqa --version chat_old --bf16
python web_demo.py --from_pretrained cogvlm-chat-v1.1 --version chat_old --bf16
python web_demo.py --from_pretrained cogvlm-grounding-generalist --version base --bf16
网页演示的图形用户界面如下:
<img src=assets/web_demo-min.png width=70% />
你可能想在你自己的任务中使用CogVLM,这需要 不同的输出风格或领域知识. 所有用于微调的代码都位于 finetune_demo/ 目录中。
我们在这里提供了一个使用lora进行 验证码识别 的微调示例。
首先下载 Captcha Images数据集。下载完成后,解压ZIP文件的内容。
要创建一个以80/5/15的比例进行训练/验证/测试划分,请执行以下操作:
bash
python utils/split_dataset.py
使用此命令开始微调:
bash
bash finetune_demo/finetune_(cogagent/cogvlm)_lora.sh
将模型合并到 model_parallel_size=1: (用你的训练 MP_SIZE 替换下面的4)
bash
torchrun --standalone --nnodes=1 --nproc-per-node=4 utils/merge_model.py --version base --bf16 --from_pretrained ./checkpoints/merged_lora_(cogagent/cogvlm490/cogvlm224)
估你的模型的性能。
bash
bash finetune_demo/evaluate_(cogagent/cogvlm).sh
We provide the same API examples as GPT-4V, which you can view in openai_demo.
python openai_demo/openai_api.py
python openai_demo/openai_api_request.py
This image showcases a tranquil natural scene with a wooden pathway leading through a field of lush green grass. In the distance, there are trees and some scattered structures, possibly houses or small buildings. The sky is clear with a few scattered clouds, suggesting a bright and sunny day.
For INT4 quantization: 1 * RTX 3090(24G) (CogAgent takes ~ 12.6GB, CogVLM takes ~ 11GB)
For FP16: 1 * A100(80G) or 2 * RTX 3090(24G)
For FP16: 4 * A100(80G) [Recommend] or 8* RTX 3090(24G).
如果你从代码仓库运行 basic_demo/cli_demo*.py,它将自动下载SAT或Hugging Face的权重。或者,你也可以选择手动下载必要的权重。
| 模型名称 | 输入分辨率 | 介绍 | Huggingface model | SAT model |
|---|---|---|---|---|
| cogagent-chat | 1120 | CogAgent的聊天版本。支持GUI代理,多轮聊天和视觉定位。 | link | link |
| cogagent-vqa | 1120 | CogAgent的VQA版本。在单轮视觉对话中具有更强的能力。推荐用于VQA基准测试。 | link | link |
| 模型名称 | 输入分辨率 | 介绍 | Huggingface model | SAT model |
|---|---|---|---|---|
| cogvlm-chat-v1.1 | 490 | 支持同时进行多轮聊天和视觉问答,支持自由的提示词。 | link | link |
| cogvlm-base-224 | 224 | 文本-图像预训练后的原始检查点。 | link | link |
| cogvlm-base-490 | 490 | 通过从 cogvlm-base-224 进行位置编码插值,将分辨率提升到490。 | link | link |
| cogvlm-grounding-generalist | 490 | 此检查点支持不同的视觉定位任务,例如REC,定位字幕等。 | link | link |
CogVLM-17B在10个经典的跨模态基准测试中取得了最佳性能,包括 NoCaps, Flicker30k captioning, RefCOCO, RefCOCO+, RefCOCOg, Visual7W, GQA, ScienceQA, VizWiz VQA and TDIUC, 并在 VQAv2, OKVQA, TextVQA, COCO 字幕等方面排名第二., 超越或匹敌 PaLI-X 55B. CogVLM还可以和你聊关于图片的话题。

点击查看MM-VET,POPE,TouchStone的结果。
| Method | LLM | MM-VET | POPE(adversarial) | TouchStone |
| BLIP-2 | Vicuna-13B | 22.4 | - | - |
| Otter | MPT-7B | 24.7 | - | - |
| MiniGPT4 | Vicuna-13B | 24.4 | 70.4 | 531.7 |
| InstructBLIP | Vicuna-13B | 25.6 | 77.3 | 552.4 |
| LLaMA-Adapter v2 | LLaMA-7B | 31.4 | - | 590.1 |
| LLaVA | LLaMA2-7B | 28.1 | 66.3 | 602.7 |
| mPLUG-Owl | LLaMA-7B | - | 66.8 | 605.4 |
| LLaVA-1.5 | Vicuna-13B | 36.3 | 84.5 | - |
| Emu | LLaMA-13B | 36.3 | - | - |
| Qwen-VL-Chat | - | - | - | 645.2 |
| DreamLLM | Vicuna-7B | 35.9 | 76.5 | - |
| CogVLM | Vicuna-7B | 52.8 | 87.6 | 742.0 |
点击查看cogvlm-grounding-generalist-v1.1的结果。
| RefCOCO | RefCOCO+ | RefCOCOg | Visual7W | ||||||
| val | testA | testB | val | testA | testB | val | test | test | |
| cogvim-grounding-generalist | 92.51 | 93.95 | 88.73 | 87.52 | 91.81 | 81.43 | 89.46 | 90.09 | 90.96 |
| cogvim-grounding-generalist-v1.1 | **92.76** |
$ claude mcp add CogVLM \
-- python -m otcore.mcp_server <graph>