🚀 ビジョンと言語のトランスフォーマー (ViLT) 事前学習モデル
ビジョンと言語のトランスフォーマー (ViLT) モデルは、GCC+SBU+COCO+VG データセットで事前学習されています(200k ステップ)。このモデルは、Kim らによって論文 ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision で提案され、初めて このリポジトリ で公開されました。注意: このモデルには言語モデリングヘッドのみが含まれています。
声明: ViLT を公開したチームはこのモデルのモデルカードを作成していません。このモデルカードは Hugging Face チームによって作成されました。
🚀 クイックスタート
このオリジナルモデルを使用して、画像と [MASK] トークンを含むテキストを組み合わせてマスク言語モデリングを行うことができます。
💻 使用例
基本的な使用法
以下は、このモデルを PyTorch で使用する方法の例です。
from transformers import ViltProcessor, ViltForMaskedLM
import requests
from PIL import Image
import re
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
text = "a bunch of [MASK] laying on a [MASK]."
processor = ViltProcessor.from_pretrained("dandelin/vilt-b32-mlm")
model = ViltForMaskedLM.from_pretrained("dandelin/vilt-b32-mlm")
encoding = processor(image, text, return_tensors="pt")
outputs = model(**encoding)
tl = len(re.findall("\[MASK\]", text))
inferred_token = [text]
with torch.no_grad():
for i in range(tl):
encoded = processor.tokenizer(inferred_token)
input_ids = torch.tensor(encoded.input_ids).to(device)
encoded = encoded["input_ids"][0][1:-1]
outputs = model(input_ids=input_ids, pixel_values=pixel_values)
mlm_logits = outputs.logits[0]
mlm_logits = mlm_logits[1 : input_ids.shape[1] - 1, :]
mlm_values, mlm_ids = mlm_logits.softmax(dim=-1).max(dim=-1)
mlm_values[torch.tensor(encoded) != 103] = 0
select = mlm_values.argmax().item()
encoded[select] = mlm_ids[select].item()
inferred_token = [processor.decode(encoded)]
selected_token = ""
encoded = processor.tokenizer(inferred_token)
processor.decode(encoded.input_ids[0], skip_special_tokens=True)
📄 ライセンス
このプロジェクトは Apache-2.0 ライセンスの下で提供されています。
BibTeX 引用
@misc{kim2021vilt,
title={ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision},
author={Wonjae Kim and Bokyung Son and Ildoo Kim},
year={2021},
eprint={2102.03334},
archivePrefix={arXiv},
primaryClass={stat.ML}
}