モデル概要
モデル特徴
モデル能力
使用事例
🚀 CogAgent
🔥 ニュース: 新バージョン CogAgent-9B-20241220
がリリースされました!是非 CogAgent GitHub と 技術レポート を訪れて、最新モデルを探索してみてください。
📖 論文: https://arxiv.org/abs/2312.08914
📄 技術レポート: https://cogagent.aminer.cn/blog#/articles/cogagent-9b-20241220-technical-report-en
🚀 GitHub: https://github.com/THUDM/CogAgent
🤗 モデルページ: https://huggingface.co/THUDM/cogagent-9b-20241220
CogAgent は、CogVLM をベースに改良されたオープンソースの視覚言語モデルです。THUDM/cogagent-chat-hf
のデモ、ファインチューニング、クエリプロンプトなどの詳細情報については、この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-chat
バージョンです。
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関連の質問応答機能を強化し、Webページ、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 プロジェクトからのいくつかの英語の画像テキストデータ、および多くの古典的なクロスモーダル研究データセットが使用されています。彼らの貢献に心から感謝いたします。









