Open tomishima2904 opened 1 year ago
これによると、適切な形式のデータセットを作成しちゃえば、あとは以下のようにするだけぽい?
trainer = Seq2SeqTrainer(
model,
args,
train_dataset=AdditionDataset(2,"train"),
eval_dataset=AdditionDataset(2,"test"),
data_collator=data_collator,
tokenizer=tokenizer,
)
trainer.train()
torch.utils.data
のDataset
はhugging face用に決まった形式にしないといけないのかも?
hugging faceにtutorialがあったので勉強中
from transformers import AutoTokenizer, MBartForConditionalGeneration
tokenizer = AutoTokenizer.from_pretrained('ku-nlp/bart-base-japanese')
model = MBartForConditionalGeneration.from_pretrained('ku-nlp/bart-base-japanese')
sentence = '京都 大学 で 自然 言語 処理 を 専攻 する 。' # input should be segmented into words by Juman++ in advance
encoding = tokenizer(sentence, return_tensors='pt')
...
BARTではBartForConditionalGeneration
が元になっているのでこのモデルタイプが受け入れるデータセットの形状を知りたい
ここのフォーラムによると、columns = ['input_ids', 'labels', 'decoder_input_ids','attention_mask',]
とすれば良さそう。
input_ids
: (おそらくpaddingされた)入力文labels
: 自分の実装ではいらないと思われるdecoder_input_ids
: ターゲット文(自分の場合はrelation)attention_mask
: input_ids
がpaddingされているところを判断京都大学のbartのGithubリポジトリのreadmeにやるべきことがちゃんと書いてあった
目標
head, tail, headとtailを含む文 → relation
実験条件
京都大学が公開している訓練済み日本語BART (hugging face)
TODO