--- language: ja tags: - vision-language - pytorch - custom-model license: mit --- # MPRG_DL_LectureNotebook_VLM MPRGでは,[初学者向けの学習用教材としてLectureNotebook](https://github.com/machine-perception-robotics-group/MPRGDeepLearningLectureNotebook)を公開しています. ## 概要 このリポジトリは,MPRGのDeep Learning Lecture Notebookで公開されているVision Language Model(VLM)に関連したデータを共有しています.
演習ではCLIPの画像エンコーダとGPT-2の言語モデルを組み合わせて,画像からテキストを生成するVLMモデルを構築・学習する方法を学ぶことができます.
## 共有データ ここで共有するデータは,以下のとおりです.
演習時間の都合により学習無しでVLMモデルを触りたい時や,さらなる調査にお役立てください. | Data | Explanation | |:-----------|:------------| | `SimpleVLM.pt`| Notebookに記載されている演習では,COCOデータセットのValデータを分割して小規模化した学習用データと検証用データを作成しています.
そこで,無料版のGoogle Clabratoryでは実行困難なCOCOデータセットの大規模なTrainデータを用いて学習した,学習済みの重みパラメータを共有します.
| | `SimpleVLM_alltoken.pt`| 課題2で行うCLIPの画像エンコーダの出力特徴をCLSトークンだけでなくすべてのトークンをLLMに渡たす場合の学習済みの重みパラメータです.| ## 課題2補足 VisionEncoderの出力をCLSトークンだけでなく,全てパッチ分のトークンを出力するように変更しても,パラメータ数に変化は起きません,
しかし,LLMが経験するVision的な特徴量の量に差があるため,再び学習する必要があると考えられます.
- 元々CLSトークン1つの画像特徴から説明文を生成するように学習 - 全てのトークン257つ画像特徴から説明文を生成するように学習 この違いがモデルの経験値として差に現れてしまいます.
どちらがより精度が良い説明文を生成することができるのでしょうか?
画像特徴が1トークンだけですと,情報量が少なすぎるような気もします.(1単語と同じ情報量)
しかし,画像特徴が257トークンになると,逆に情報量が多すぎる気もします.(257単語と同じ情報量)
そこで,BLIPなどもモデルでは,全ての画像特徴を数トークンに圧縮して適切なトークン数をLLMに渡すような仕組みになっております.