버트의 학습 절차는 다음과 같습니다.
1. 그림 10-23과 같이 문장을 버트의 입력 형식에 맞게 변환합니다. 이때 문장의 시작은 [CLS], 문장의 끝은 [SEP]로 표시합니다.
2. 한 문장의 단어들에 대해 토큰화(tokenization)를 진행합니다. 예를 들어 ‘고양이’라는 단어의 경우 ‘고##’, ‘#양#’, ‘##이’로 토큰화합니다.
3. 마지막으로 각 토큰들에 대해 고유의 아이디를 부여합니다. 토큰이 존재하지 않는 자리는 0으로 채웁니다.
버트 모델은 전이 학습을 기반으로 한다고 했는데, 이때 전이는 인코더-디코더로 된 모델입니다. 기존 인코더-디코더 모델들과 다르게 CNN, RNN을 이용하지 않고 어텐션 개념을 도입했습니다. 즉, 버트에서 전이 학습은 인코더-디코더 중 인코더만 사용하는 모델입니다.
버트는 두 가지 버전이 있는데, BERT-base(L=12, H=768, A=12)와 BERT-large(L=24, H=1024, A=16)입니다. 이때 L은 전이 블록 숫자이고, H는 은닉층 크기, A는 전이 블록에서 사용되는 어텐션 블록 숫자입니다. 즉, L, H, A가 크다는 것은 블록을 많이 쌓았고, 표현하는 은닉층이 크며 어텐션 개수를 많이 사용했다는 의미입니다. BERT-base는 학습 파라미터 1.1억 개가 있고, BERT-large는 학습 파라미터 3.4억 개가 있습니다.