ハグ顔の BERTweet 実装 ( https://huggingface.co/docs/transformers/model_doc/bertweet ) を使用しています。いくつかのツイートをエンコードして、さらに処理 (予測) するために転送したいと考えています。問題は、比較的長い文をエンコードしようとすると、モデルでエラーが発生することです。
例:
import torch
from transformers import AutoModel, AutoTokenizer
from DataLoader import DataLoader
bertweet = AutoModel.from_pretrained("vinai/bertweet-base")
tokenizer = AutoTokenizer.from_pretrained("vinai/bertweet-base", normalization=True) # Automatic normalization of tweets by enabling normalization
line = "SC has first two presumptive cases of coronavirus , DHEC confirms HTTPURL via @USER :cry: SC has first two presumptive cases of coronavirus , DHEC confirms HTTPURL via @USER :cry: SC has first two presumptive cases of coronavirus , DHEC confirms HTTPURL via @USER :cry: SC has first two presumptive cases of coronavirus , DHEC confirms HTTPURL via @USER :cry: SC has first two presumptive cases of coronavirus , DHEC confirms HTTPURL via @USER :cry: SC has first two presumptive cases of coronavirus , DHEC confirms HTTPURL via @USER :cry: SC has first two presumptive cases of coronavirus , DHEC confirms "
input_ids = torch.tensor([tokenizer.encode(line)])
print(input_ids)
with torch.no_grad():
features = bertweet(input_ids)
コンソール出力:
RuntimeError: The expanded size of the tensor (136) must match the existing size (130) at non-singleton dimension 1. Target sizes: [1, 136]. Tensor sizes: [1, 130]
ただし、次のように変更するlineと:
line = "SC has first two presumptive cases of coronavirus , DHEC confirms HTTPURL via @USER :cry:"
の場合、モデルは文を正常にエンコードします。それは予想される動作ですか?BERT は 1 文に最大 512 語までということを私は知っています。BERTweet は基本的に微調整された BERT です。長い文を削除するのは良い考えですか?それは私の問題に対する許容できる解決策でしょうか? 前もって感謝します。