Training BERT
Process
Training
前に習った内容とはちょっと逆なので書いておきましょう
ドメイン専門化タスクでは、事前に訓練されたモデルを最適化するよりも、ドメイン専門化データのみを使用してパフォーマンスを再学習するほうが優れています.
ref: https://huggingface.co/microsoft/BiomedNLP-PubMedBERT-base-uncased-abstract
これは最大PubMedのデータを用いて生理学雑誌のアーカイブからBERTを再学習した論文である.
これはBERTたちの生理学に関する任務のScoreです.例えば、BC 5-chemは化学に関連する個体名識別タスクである.fine-tuningと比較して,生理学的関連データのみを用いてBERTを最初から学習した方が性能がよい.
Data
Dataset
データをモデルにアクセスできる形式に変換します.
BERTでは、次のようにデータを再生成し、モデルに格納します.
Dataset
データをモデルにアクセスできる形式に変換します.
BERTでは、次のようにデータを再生成し、モデルに格納します.
target_seq_length
https://github.com/huggingface/transformers/blob/5e3b4a70d3d17f2482d50aea230f7ed42b3a8fd0/src/transformers/data/datasets/language_modeling.py#L247
GithubのBERTコード.ここで、BERTのEmbedding sizeを次のように調整します.
target_seq_length = max_num_tokens
if random.random() < self.short_seq_probability:
target_seq_length = random.randint(2, max_num_tokens)
short seq確率によれば,確率上target seq確率はランダム値を有する.このように調節する理由は、モデルの汎用性のためです.max num tokenに従ってすべてのデータを学習すると、入力したtoken数がmax num tokenでない場合、モデルが正しく処理されない可能性があります.
従って,確率的に最大埋め込みサイズを調整することによって柔軟なモデルを作成することを望んでいる.
ぶんかつちょうせい
https://github.com/huggingface/transformers/blob/5e3b4a70d3d17f2482d50aea230f7ed42b3a8fd0/src/transformers/data/datasets/language_modeling.py#L258
258号線からはセグメントのコードを調整するためです.
Datasetは、最大埋め込みサイズを満たすデータの作成に努力します.すなわち、「文1[SEP]文2」のtokensizeが欠けている場合、「文1+文2[SEP]文3+文4」も作成される.「もちろん、Segmentは2つです」文1+文2'はSegmentになります.
このとき,コードはSegment A(第1セグメント)の長さをランダムに遮断する.その名の通り、ランダムな整数値が得られ、Segmentとして使用される.
Truncation
https://github.com/huggingface/transformers/blob/5e3b4a70d3d17f2482d50aea230f7ed42b3a8fd0/src/transformers/data/datasets/language_modeling.py#L293
「SegmentA[SEP]SegmentB」は、最大埋め込みサイズを超える場合があります.これは、操作を遮断する必要がある条件です.
次の操作を繰り返します.
Dataloader
モデルにデータを渡す方法を決定します.
BERTにとって、これはどのように化粧をするかの問題です.
Reference
この問題について(Training BERT), 我々は、より多くの情報をここで見つけました https://velog.io/@naem1023/Training-BERTテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol