class BertConfig(PretrainedConfig):
def __init__(
self,
# bert에 포함된 voca 크키 / 고유 토큰 갯수 / 기본값: 30522
vocab_size=30522,
#encoder와 pooler층 차원 수 / 기본값: 768
hidden_size=768,
# encoder hidden layer 수 / 기본값: 12
num_hidden_layers=12,
#encoder가 가지는 attention head 수 / 기본값: 12
num_attention_heads=12,
#encoder의 intermediate 차원수 (feed-forward) / 기본값: 3072
intermediate_size=3072,
# encoder와 pooler의 활성화 함수 기본값: gelu
hidden_act="gelu",
# embedding과 encoder와 pooler의 fully-connected-layer의 dropout 비율 / 기본값: 0.1
hidden_dropout_prob=0.1,
#attention probabilities의 dropout 비율 / 기본값: 0.1
attention_probs_dropout_prob=0.1,
# 모델이 처리할 수 있는 sequence의 최대 길이 / 기본값: 512
max_position_embeddings=512,
# token_type_ids의 voca 크기 / 기본값: 2
type_vocab_size=2,
# 모든 가중치 벡터 초기화에 쓰이는 표준 편차 값/ 기본값: 0.02
initializer_range=0.02,
# layer normalization layers에 쓰는 epsilon 값/ 기본값: 1e-12
layer_norm_eps=1e-12,
pad_token_id=0,
# position embedding의 유형 ('absolute', 'relative_key', 'relative_key_query') / 기본값: 'absolute'
position_embedding_type="absolute",
# 모델이 마지막 key/value attention들을 반환할 것인가 여부(is_decoder = True 일 때만 의미 있음.)
use_cache=True,
# classification head의 dropout 비율
classifier_dropout=None,
**kwargs
)
BERT config에 관한 설명은 주석으로 대체.
'이론 > NLP' 카테고리의 다른 글
[딥러닝][BERT] BertTokenizer 정리 | BERT 공부하기 (0) | 2023.07.20 |
---|---|
[딥러닝][Text Adversarial Attack] NLP에서 Adversarial Attack의 분류 (0) | 2023.01.03 |