강의확인
BERT학습1
  - 토크나이저 만들기, 데이터셋 확보, NSP(next sentence predictino), masking과정이 필요
 
  - pretrained도 성능 좋지만 도메인 특화로 학습을 새로 진행하면 성능이 더 좋다!
 
  - dataset- 모델이 학습하기위한 밥, dataloader - 모델에게 어떻게 넘길지
 
  - 코퍼스-데이터셋-데이텅로더로 가져오기
 
실습
  - BERT개인정보 관련 조심
    
      - mask된 부분을 예측하는데 특화되어있다.
 
      - 개인정보를 mask를 통해 예측가능
 
      - 개인정보가 해소된 데이터로 학습을 진행해야 한다.
 
    
   
  - bert학습위한 토크나이저 만들기
    
      - 한국어 wiki를 이용
 
      - wordpiece tokenizer를 진행
        
          - 만들때 special토큰을 선언하는것은 [mask]라는것을 하나의 토큰이라고 선언해줄뿐 실제 스페셜토큰으로 인식을 안하는것같다.
 
          - 이후 add_special_tokens에서 dict형태로 {‘mask_token’:’[MASK]’}라고 해줘야 해당 토큰이 mask라는 기능을 수행하도록 부여하는것같다.
            
          
 
        
       
    
   
  - bert껍데기 만들기
    
      config = BertConfig()를 통해 설정
        
          - 참고
 
          - vocab_size - tokenizer만든것과 동일하게 수정
 
          - hidden_size - hidden vector크기
 
          - num_hidden_layer - hidden layer를 몇개쌓을지
            
          
 
          - num_attention_heads - attention head 갯수
 
          - intermediate_size - feed-forward가 존재, 이들의 dimension 크기를 지정
 
          - max_position_embedding - embedding 사이즈로, 최대 몇개의 token을 입력으로 받을지 지정
            
          
 
          - type_vocab_size - type id의 범위(?)로 bert는 segmentA, segmentB로 2종류로 기본 2이다.
 
        
       
      BertForPreTraining(config = config)로  위에서 만든config를 통해 모델을 선언 
    
   
  - 데이터셋 만들기
    
      - input ids, token type ids, next sentense prediction(NSP)가 있어야한다.
 
      - document(문서)단위로 진행
 
    
   
피어세션
  - 허깅페이스 허브 실습
 
  - pretrained모델 가져오는거
    
      - epoch 60이상해보았다.
 
      bert_config = transformers.BertConfig.from_pretrained(MODEL_NAME) 
      bert_config.num_labels = 42로 설정해주기 
      model = transformers.AutoModelForSequenceClassification.from_pretrained(MODEL_NAME,config = bert_config) 
      - 2000step
 
    
   
  - MASK을 왜 add_special_tokens를 하는이유?
    
      - tokenized_text와 tokenizer는 다르다.
 
      - 둘은 다른 객체로 마치 껍데기와 실제 가져오는 것으로 나뉘므로 따로 설정해야 하다.
 
    
   
오늘 한일
  - bert train해보기
 
  - 허깅페이스 허브 접속, 모델 업로드
 
  - competition 제출
 
어떻게 했는지
  - 데이터셋 정의하고, 학습을 진행
    
      - dataset을 통해 “input_ids”, “token_type_ids”,”next_sentence_label”를 만들어낸다.
 
      - 학습시에는 bertconfig를 통해 학습관련 설정을 진행
 
    
   
  - 허깅페이스에 git과 같은 형식으로 모델 업로드
    
  
 
  - competition은 베이스코드를 실행하여 제출
 
좋았던 점
  - 어느정도 학습을 진행하는것을 알 수 있었음
 
  - 허깅페이스를 불러오는것과 사용하는방법을 알 수 있었음
 
아쉬운 점
  - 허깅페이스 허브에서 불러오긴하느데 실제로 사용하려니 아직 제대로 동작은안함
    
      - 단순히 불러와서 사용하는게 안됨
 
      - 모델을 업로드할때 따로 설정해주거나, 다운로드해서 사용할때 추가적으로 진행해야하는게 있어야 할거같다.
 
      - 좀더 확인이 필요