이론/NLP

[딥러닝][BERT] BERT - config | BERT 공부하기

쏘오금 2023. 7. 20. 17:14
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에 관한 설명은 주석으로 대체.