「オンザフライ」のトークン化について質問があります。この質問は、「Transformers と Tokenizers を使用してゼロから新しい言語モデルをトレーニングする方法」を読むことで引き出されました。最後に、「データセットが非常に大きい場合は、前処理ステップとしてではなく、その場でサンプルを読み込んでトークン化することを選択できます」という文があります。datasets
と の両方を組み合わせたソリューションを考えてみましたがtokenizers
、適切なパターンを見つけることができませんでした。
このソリューションでは、データセットを Pytorch データセットにラップする必要があると思います。
ドキュメントの具体例として
import torch
class SquadDataset(torch.utils.data.Dataset):
def __init__(self, encodings):
# instead of doing this beforehand, I'd like to do tokenization on the fly
self.encodings = encodings
def __getitem__(self, idx):
return {key: torch.tensor(val[idx]) for key, val in self.encodings.items()}
def __len__(self):
return len(self.encodings.input_ids)
train_dataset = SquadDataset(train_encodings)
トークナイザーのベクトル化された機能を利用する「オンザフライ」トークン化でこれをどのように実装しますか?