🚀 BEiT (base-sized model, fine-tuned on ImageNet-22k)
BEiTモデルは、解像度224x224のImageNet-22k(ImageNet-21kとも呼ばれ、1400万枚の画像、21,841クラス)で自己教師付き学習方式で事前学習され、同じデータセットで解像度224x224でファインチューニングされました。このモデルは、Hangbo Bao、Li Dong、Furu Weiによる論文 BEIT: BERT Pre-Training of Image Transformers で紹介され、最初は このリポジトリ で公開されました。
免責事項: BEiTを公開したチームはこのモデルのモデルカードを作成していないため、このモデルカードはHugging Faceチームによって作成されました。
🚀 クイックスタート
BEiTモデルは画像分類に使用できます。興味のあるタスクでファインチューニングされたバージョンを モデルハブ で探すことができます。
✨ 主な機能
BEiTモデルは、Vision Transformer (ViT) の一種で、Transformerエンコーダモデル(BERTライク)です。元のViTモデルとは異なり、BEiTは224x224ピクセルの解像度で、大量の画像コレクションであるImageNet-21kを使って自己教師付き学習方式で事前学習されています。このモデルの事前学習の目的は、マスクされたパッチに基づいて、OpenAIのDALL-EのVQ-VAEのエンコーダから視覚トークンを予測することです。
次に、このモデルは、100万枚の画像と1,000クラスからなるデータセットであるImageNet(ILSVRC2012とも呼ばれる)で、同じく解像度224x224で教師付き学習方式でファインチューニングされました。
画像は、固定サイズのパッチ(解像度16x16)のシーケンスとしてモデルに入力され、線形埋め込みされます。元のViTモデルとは異なり、BEiTモデルは絶対位置埋め込みではなく相対位置埋め込み(T5に似たもの)を使用し、[CLS]トークンの最終隠れ状態の上に線形層を配置する代わりに、パッチの最終隠れ状態を平均プーリングして画像の分類を行います。
モデルを事前学習することで、画像の内部表現を学習し、下流タスクに役立つ特徴を抽出するために使用できます。たとえば、ラベル付き画像のデータセットがある場合、事前学習されたエンコーダの上に線形層を配置して標準的な分類器を学習することができます。通常は、[CLS]トークンの最終隠れ状態を画像全体の表現と見なして、このトークンの上に線形層を配置します。あるいは、パッチ埋め込みの最終隠れ状態を平均プーリングし、その上に線形層を配置することもできます。
📦 インストール
このセクションではインストール手順に関する具体的な内容がありませんので、スキップします。
💻 使用例
基本的な使用法
以下は、COCO 2017データセットの画像を1,000のImageNetクラスのいずれかに分類するためのこのモデルの使用方法です。
from transformers import BeitImageProcessor, BeitForImageClassification
from PIL import Image
import requests
url = 'http://images.cocodataset.org/val2017/000000039769.jpg'
image = Image.open(requests.get(url, stream=True).raw)
processor = BeitImageProcessor.from_pretrained('microsoft/beit-base-patch16-224-pt22k-ft22k')
model = BeitForImageClassification.from_pretrained('microsoft/beit-base-patch16-224-pt22k-ft22k')
inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
logits = outputs.logits
predicted_class_idx = logits.argmax(-1).item()
print("Predicted class:", model.config.id2label[predicted_class_idx])
現在、特徴抽出器とモデルの両方がPyTorchをサポートしています。
高度な使用法
高度な使用法に関する具体的なコード例が原ドキュメントにないため、このセクションは省略します。
📚 ドキュメント
モデルの詳細
BEiTモデルは、Vision Transformer (ViT) の一種で、Transformerエンコーダモデル(BERTライク)です。元のViTモデルとは異なり、BEiTは224x224ピクセルの解像度で、大量の画像コレクションであるImageNet-21kを使って自己教師付き学習方式で事前学習されています。このモデルの事前学習の目的は、マスクされたパッチに基づいて、OpenAIのDALL-EのVQ-VAEのエンコーダから視覚トークンを予測することです。
次に、このモデルは、100万枚の画像と1,000クラスからなるデータセットであるImageNet(ILSVRC2012とも呼ばれる)で、同じく解像度224x224で教師付き学習方式でファインチューニングされました。
画像は、固定サイズのパッチ(解像度16x16)のシーケンスとしてモデルに入力され、線形埋め込みされます。元のViTモデルとは異なり、BEiTモデルは絶対位置埋め込みではなく相対位置埋め込み(T5に似たもの)を使用し、[CLS]トークンの最終隠れ状態の上に線形層を配置する代わりに、パッチの最終隠れ状態を平均プーリングして画像の分類を行います。
モデルを事前学習することで、画像の内部表現を学習し、下流タスクに役立つ特徴を抽出するために使用できます。たとえば、ラベル付き画像のデータセットがある場合、事前学習されたエンコーダの上に線形層を配置して標準的な分類器を学習することができます。通常は、[CLS]トークンの最終隠れ状態を画像全体の表現と見なして、このトークンの上に線形層を配置します。あるいは、パッチ埋め込みの最終隠れ状態を平均プーリングし、その上に線形層を配置することもできます。
意図された使用法と制限
このモデルは画像分類に使用できます。興味のあるタスクでファインチューニングされたバージョンを モデルハブ で探すことができます。
トレーニングデータ
BEiTモデルは、1400万枚の画像と21kクラスからなるデータセットである ImageNet-21k で事前学習され、同じデータセットでファインチューニングされました。
トレーニング手順
前処理
トレーニング/検証中の画像の前処理の正確な詳細は ここ で確認できます。
画像は、同じ解像度(224x224)にリサイズ/リスケールされ、RGBチャンネル全体で平均 (0.5, 0.5, 0.5) と標準偏差 (0.5, 0.5, 0.5) で正規化されます。
事前学習
事前学習に関連するすべてのハイパーパラメータについては、元の論文 の15ページを参照してください。
評価結果
いくつかの画像分類ベンチマークにおける評価結果については、元の論文の表1と表2を参照してください。ファインチューニングでは、より高い解像度で最良の結果が得られます。もちろん、モデルサイズを大きくすると、パフォーマンスが向上します。
🔧 技術詳細
このセクションでは、技術的な詳細に関する具体的な内容がありませんので、スキップします。
📄 ライセンス
このモデルはApache-2.0ライセンスの下で公開されています。
BibTeXエントリと引用情報
author = {Hangbo Bao and
Li Dong and
Furu Wei},
title = {BEiT: {BERT} Pre-Training of Image Transformers},
journal = {CoRR},
volume = {abs/2106.08254},
year = {2021},
url = {https://arxiv.org/abs/2106.08254},
archivePrefix = {arXiv},
eprint = {2106.08254},
timestamp = {Tue, 29 Jun 2021 16:55:04 +0200},
biburl = {https://dblp.org/rec/journals/corr/abs-2106-08254.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@inproceedings{deng2009imagenet,
title={Imagenet: A large-scale hierarchical image database},
author={Deng, Jia and Dong, Wei and Socher, Richard and Li, Li-Jia and Li, Kai and Fei-Fei, Li},
booktitle={2009 IEEE conference on computer vision and pattern recognition},
pages={248--255},
year={2009},
organization={Ieee}
}
属性 |
详情 |
モデルタイプ |
Vision Transformer (ViT) |
トレーニングデータ |
ImageNet-21k、ImageNet |