ThLee
ThLee의 기록장
ThLee
전체 방문자
오늘
어제
  • 분류 전체보기 (137)
    • 정보처리기사 (13)
    • 알고리즘&문제 (5)
    • 인공지능 (4)
    • 자연어처리(NLP) (6)
    • 파이썬 (24)
    • 앱인벤터 강좌 (21)
    • 리눅스 (4)
    • 프로젝트 (1)
    • (App)톡분석AI (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 정보처리기사
  • 앱인벤터 블로그
  • AI
  • Python
  • 정보처리기사 정리
  • 판다스
  • 정보처리기사 실기 정리
  • 앱인벤터
  • 어플
  • 파이썬 넘파이
  • 블록코딩
  • 정보처리기사 실기
  • 파이썬
  • 인공지능
  • 딥러닝
  • 넘파이
  • 블로그
  • 앱인벤터 강좌
  • 앱인벤터 무료
  • 정처기

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ThLee

ThLee의 기록장

카테고리 없음

HuggingFace Model의 정보(상태) 보기

2023. 9. 14. 15:36
728x90

config는 모델을 학습시키기 위한 요소들을 명시한 json파일로 되어있습니다.

 

이 json파일에는 batch size, learning rate, weight_decay등 train에 필요한 요소들부터 tokenizer에 특수 토큰(special token eg.[MASK])들을 미리 설정하는 등 설정에 관한 전반적인 것들이 명시되어 있습니다.

 

PretrainedModel을 save_pretrained 메소드를 이용하면 모델의 체크포인트와 함께 저장되도록 되어있습니다.

 

hugging face의 pretrained model을 그대로 사용하게 되면 자동으로 config파일이 로드되어 명시할 필요가 없지만, 설정을 변경하고 싶거나 나만의 모델을 학습시킬 때에는 config파일을 직접 불러와야 합니다.

 

config 또한 model, tokenizer처럼 Model ID만 있으면, Config 클래스를 명확히 지정하거나 혹은 AutoConfig를 이용하는 방식으로 불러올 수 있습니다.

 

from transformers import BertConfig
from transformers import AutoConfig

config = BertConfig.from_pretrained("bert-base-cased")
config = AutoConfig.from_pretrained("bert-base-cased")

print(config)
BertConfig {
  "architectures": [
    "BertForMaskedLM"
  ],
  "attention_probs_dropout_prob": 0.1,
  "classifier_dropout": null,
  "gradient_checkpointing": false,
  "hidden_act": "gelu",
  "hidden_dropout_prob": 0.1,
  "hidden_size": 768,
  "initializer_range": 0.02,
  "intermediate_size": 3072,
  "layer_norm_eps": 1e-12,
  "max_position_embeddings": 512,
  "model_type": "bert",
  "num_attention_heads": 12,
  "num_hidden_layers": 12,
  "pad_token_id": 0,
  "position_embedding_type": "absolute",
  "transformers_version": "4.11.3",
  "type_vocab_size": 2,
  "use_cache": true,
  "vocab_size": 28996
}

위와 같이 config를 불러와도 되지만, 이미 모델을 불러왔다면 모델에서 config 하면 되겠죠?

model = TFBertForPreTraining.from_pretrained('bert-base-cased')

print(model.config)
BertConfig {
  "_name_or_path": "bert-base-cased",
  "architectures": [
    "BertForMaskedLM"
  ],
  "attention_probs_dropout_prob": 0.1,
  "classifier_dropout": null,
  "gradient_checkpointing": false,
  "hidden_act": "gelu",
  "hidden_dropout_prob": 0.1,
  "hidden_size": 768,
  "initializer_range": 0.02,
  "intermediate_size": 3072,
  "layer_norm_eps": 1e-12,
  "max_position_embeddings": 512,
  "model_type": "bert",
  "num_attention_heads": 12,
  "num_hidden_layers": 12,
  "pad_token_id": 0,
  "position_embedding_type": "absolute",
  "transformers_version": "4.11.3",
  "type_vocab_size": 2,
  "use_cache": true,
  "vocab_size": 28996
}

 

 

 

728x90
    ThLee
    ThLee
    # 포트폴리오 https://thleewave.notion.site/ThLee-1fef9e057dbf40d5b7b851ab0abccf36?pvs=4 #Github - https://github.com/git-ThLee #IoT 스타트업 -Full-stack -2021.01~2021.07 -사용기술 : fluterr, arduino, node.js #코딩학원 강사 - 2019.11 ~ 진행중 - 언어 : python, 블록 코딩 - 플랫

    티스토리툴바