1) BERTWordPieceTokenizer는 mask 안해준다 직접 해야된다. mask 해주는거 찾으면 알려달라

BERTWordPieceTokenizer가 [sep]이랑 [cls]는 붙여준다

→ pretrained tokenizer 가져오기 위해서 있는듯 함

Using a pretrained tokenizer

You can also use a pretrained tokenizer directly in, as long as you have its vocabulary file. For instance, here is how to get the classic pretrained BERT tokenizer:

**from** **tokenizers** **import** BertWordPieceTokenizer tokenizer = BertWordPieceTokenizer("bert-base-uncased-vocab.txt", lowercase=**True**)

2) mecab → sentencepiece :

mecab으로 자르고 잘라진 부분에 ##을 붙이자 : 나 ##는 밥 ##을 먹 ##었다

그다음에 sentencepiece를 학습하자

이후에 ##으로 자르자

그러면 나##는 처럼 자주 등장하지만 조사를 분리할 수 있다

3) BERT의 segment A와 segment B는 문장단위다.

Throughout this work, a “sentence” can be an arbitrary span of contiguous text, rather than an actual linguistic sentence → 여기에 낚였는데 SQuAD같은 task에서 A가 문단이 되고 B는 단어가 될 수 있다는 뜻이었음..

예를 들어 max_seq_len가 512라고 하자.

문장 A가 400이고 문장 B가 200이면 문장 B에서 112개까지만 자르는거다

만약 문장 A가 16이고 문장 B가 16이면 A,B 문장합쳐서 32이고 배치에 따라 패딩이 붙는거다.

3-1) BERT에서 input의 길이가 같을 필요 없다! 배치 단위로 max_len으로 패딩하면 된다!

4) mask, random, remain은 확률로 15%가 아니라 sentence별로 무조건 15%로 나와야 한다.

5) [CLS]랑 [SEP]은 MASK 되면 안된다

6) 포지션 임베딩을 위한 postion_ids가 dataset에 굳이 필요없는듯 하다