モデル概要
モデル特徴
モデル能力
使用事例
🚀 CogAgent
CogAgent は、CogVLM をベースに改良されたオープンソースの視覚言語モデルです。このモデルは、画像理解とGUIエージェントの分野で強力な性能を発揮し、高解像度の視覚入力と対話型の質問応答をサポートします。
📖 論文: https://arxiv.org/abs/2312.08914
🚀 GitHub: デモ、ファインチューニング、クエリプロンプトなどの詳細情報については、当社のGitHub を参照してください。
🚀 クイックスタート
cli_demo.py
でこのPythonコードを使用してすぐに始めることができます。
基本的な使用法
import torch
from PIL import Image
from transformers import AutoModelForCausalLM, LlamaTokenizer
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--quant", choices=[4], type=int, default=None, help='quantization bits')
parser.add_argument("--from_pretrained", type=str, default="THUDM/cogagent-chat-hf", help='pretrained ckpt')
parser.add_argument("--local_tokenizer", type=str, default="lmsys/vicuna-7b-v1.5", help='tokenizer path')
parser.add_argument("--fp16", action="store_true")
parser.add_argument("--bf16", action="store_true")
args = parser.parse_args()
MODEL_PATH = args.from_pretrained
TOKENIZER_PATH = args.local_tokenizer
DEVICE = 'cuda' if torch.cuda.is_available() else 'cpu'
tokenizer = LlamaTokenizer.from_pretrained(TOKENIZER_PATH)
if args.bf16:
torch_type = torch.bfloat16
else:
torch_type = torch.float16
print("========Use torch type as:{} with device:{}========\n\n".format(torch_type, DEVICE))
if args.quant:
model = AutoModelForCausalLM.from_pretrained(
MODEL_PATH,
torch_dtype=torch_type,
low_cpu_mem_usage=True,
load_in_4bit=True,
trust_remote_code=True
).eval()
else:
model = AutoModelForCausalLM.from_pretrained(
MODEL_PATH,
torch_dtype=torch_type,
low_cpu_mem_usage=True,
load_in_4bit=args.quant is not None,
trust_remote_code=True
).to(DEVICE).eval()
while True:
image_path = input("image path >>>>> ")
if image_path == "stop":
break
image = Image.open(image_path).convert('RGB')
history = []
while True:
query = input("Human:")
if query == "clear":
break
input_by_model = model.build_conversation_input_ids(tokenizer, query=query, history=history, images=[image])
inputs = {
'input_ids': input_by_model['input_ids'].unsqueeze(0).to(DEVICE),
'token_type_ids': input_by_model['token_type_ids'].unsqueeze(0).to(DEVICE),
'attention_mask': input_by_model['attention_mask'].unsqueeze(0).to(DEVICE),
'images': [[input_by_model['images'][0].to(DEVICE).to(torch_type)]],
}
if 'cross_images' in input_by_model and input_by_model['cross_images']:
inputs['cross_images'] = [[input_by_model['cross_images'][0].to(DEVICE).to(torch_type)]]
# add any transformers params here.
gen_kwargs = {"max_length": 2048,
"temperature": 0.9,
"do_sample": False}
with torch.no_grad():
outputs = model.generate(**inputs, **gen_kwargs)
outputs = outputs[:, inputs['input_ids'].shape[1]:]
response = tokenizer.decode(outputs[0])
response = response.split("</s>")[0]
print("\nCog:", response)
history.append((query, response))
次に、以下を実行します。
python cli_demo_hf.py --bf16
✨ 主な機能
バージョンの選択
📍 これはCogAgentチェックポイントの cogagent-vqa
バージョンです。
当社では、CogAgentチェックポイントの2つのバージョンをオープンソース化しており、必要に応じて選択することができます。
-
cogagent-chat
: このモデル は、GUIエージェント、視覚的な多ターン対話、ビジュアルグラウンディング などの機能が強力です。GUIエージェントやビジュアルグラウンディング機能が必要な場合、または与えられた画像に対して多ターンの対話を行う必要がある場合は、このバージョンのモデルを使用することをお勧めします。 -
cogagent-vqa
: このモデル は、単ターンの視覚対話 で より強力な 機能を備えています。VQAベンチマーク(MMVET、VQAv2など)に取り組む必要がある場合は、このモデルを使用することをお勧めします。
モデルの性能
CogAgent-18Bは、110億の視覚パラメータと70億の言語パラメータを持っています。CogAgentは、画像理解とGUIエージェントにおいて 強力な性能 を発揮します。
-
CogAgent-18Bは、9つのクロスモーダルベンチマーク(VQAv2、MM-Vet、POPE、ST-VQA、OK-VQA、TextVQA、ChartQA、InfoVQA、DocVQA)で最先端の汎用性能を達成しています。
-
CogAgent-18Bは、GUI操作データセット(AITWやMind2Webなど)で既存のモデルを大幅に上回っています。
追加機能
CogVLM がすでに持っているすべての 機能(視覚的な多ラウンド対話、ビジュアルグラウンディング)に加えて、CogAgent は以下の機能を備えています。
-
より高解像度の視覚入力と対話型の質問応答をサポートしています。1120x1120 の超高解像度の画像入力をサポートしています。
-
視覚エージェントの機能を備えており、任意のGUIスクリーンショット上の任意のタスクに対して、計画、次のアクション、および座標付きの具体的な操作を返すことができます。
-
GUI関連の質問応答機能が強化されており、ウェブページ、PCアプリ、モバイルアプリなど、任意のGUIスクリーンショットに関する質問に対応できます。
-
事前学習とファインチューニングを改善することで、OCR関連のタスクにおける機能が強化されています。

このリポジトリ内のモデルの重みは、学術研究目的では 無料 です。商用目的 でモデルを使用する場合は、こちら で登録する必要があります。登録したユーザーは、商用活動でモデルを無料で使用できますが、このライセンスのすべての条項と条件に従う必要があります。ソフトウェアのすべてのコピーまたは実質的な部分には、ライセンス通知を含める必要があります。
📄 ライセンス
このリポジトリ内のコードは、Apache-2.0ライセンス の下でオープンソース化されています。一方、CogAgentおよびCogVLMモデルの重みの使用は、モデルライセンス に従う必要があります。
引用と謝辞
当社の研究が役立つと思われる場合は、以下の論文を引用していただけると幸いです。
@misc{hong2023cogagent,
title={CogAgent: A Visual Language Model for GUI Agents},
author={Wenyi Hong and Weihan Wang and Qingsong Lv and Jiazheng Xu and Wenmeng Yu and Junhui Ji and Yan Wang and Zihan Wang and Yuxiao Dong and Ming Ding and Jie Tang},
year={2023},
eprint={2312.08914},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
@misc{wang2023cogvlm,
title={CogVLM: Visual Expert for Pretrained Language Models},
author={Weihan Wang and Qingsong Lv and Wenmeng Yu and Wenyi Hong and Ji Qi and Yan Wang and Junhui Ji and Zhuoyi Yang and Lei Zhao and Xixuan Song and Jiazheng Xu and Bin Xu and Juanzi Li and Yuxiao Dong and Ming Ding and Jie Tang},
year={2023},
eprint={2311.03079},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
CogVLMの命令ファインチューニング段階では、MiniGPT-4、LLAVA、LRV-Instruction、LLaVAR、Shikra プロジェクトからのいくつかの英語の画像テキストデータ、および多くの古典的なクロスモーダル研究データセットが使用されています。これらの貢献に心から感謝いたします。









