---
# System prepended metadata

title: 211027 피어세션
tags: [피어세션]

---

---
tags: '피어세션'
---

211027 피어세션
===

- 기록자 : 다 같이 :smile_cat: 
- 오늘의 한마디
    - "바쁘다 바빠 현대사회"

진행 해야 될 것
---
- TodoList 리마인더

질문 정리
---

피어세션 진행
---
- Todo 공유
    - 동규님: tokenizer 학습(wiki 데이터 위주로 없는 토큰 확인), roberta MLM으로 학습 예정, tokenizer 학습 시 사용할 수 있는 huggingface의 새로운 기능 공유 예정
    - 석민님: 데이터 Augmentation 시도(pororo, konlpy), 데이터증강 코드 업로드 할 예정
    - 은진님: early-stopping 기능 추가하여 병합됨, T5 모델 oom 문제 해결중(git generation branch에 올림), T5 인코더만 사용하여 BERT처럼 학습할 수 있는 방법 찾는 중, 네트워크 과목 공부할 예정
    - 종현님: 모델 전처리 완료(수정해서 다시 하니까 EM이 1.~점정도 올라감), 위키 전처리 데이터 돌리는 중, Retrieval 코드 구현할 예정 
    - 태현님: 실험 목표 완료, 결국 roberta-large로?
        - (동규님 답변) large 모델이 확실히 성능이 잘 나온다
    - 채원님: 치과 다녀옴, Curriculum Learning 논문 읽었음, Roberta 모델 학습을 어떻게 할지 고민중(LSTM, Conv Layer 결과에 효과가 없어서 레이어를 더 깊게 쌓을까 고민중), Bart를 사용해볼 예정
    - 재혁님: 건강검진, elastic search docs 찾아봄, retrieval elastic search 성능 문제 해결(config 수정)
        - 인덱스 부분 수정해서 성능 올림
        - 엘라스틱 서치 최대 성능 15개뽑았을때 90프로정도
        - 목표는 95%~
- Multilingual 모델을 Monolingual 모델 성능만큼 내는 법 (논문 자체의 내용은 토크나이저가 모델 성능에 미치는 영향을 분석하기 위해 Multilingual 모델을 Monolingual 모델과 비교하며 다양한 실험을 진행한 논문)
    - (동규님) [논문 리뷰 유튜브 링크](https://www.youtube.com/watch?v=bV9WWRyRBt4&t=3s)
- 앞으로는 best model을 남기는 기능을 구현?

- Data Augmentation
    - 명사를 출력할 것인가, 년도(Time)를 출력할 것인가, komoran 기준으로 명사 출력하고 다른 형태소 분석기들로 그 명사를 재분석해서 2개 이상으로 나뉘지 않을 경우 고유명사가 아니라 판단 (다른 형태소 분석기가 2개 이상으로 나눠야 고유명사라 판단), 이 방식으로 판단한 명사만 정답 단어로 활용하여 질문을 생성.
    - 올바르지 않은 데이터는 데이터증강 후에 전처리 할 예정
    - 대략 10개 중 3개 정도의 데이터가 별로 안좋은 데이터인듯.
        - 인간지능으로 해결,,
    - 시간이 엄청 오래걸림.. 5개 하는데 5분
    - 답으로 쓸 명사나 시간이 여러개인 경우 drop(하나만 있는 경우만 채택)
    - pororo 쓰면 이상한 에러 고쳐야할 게 있음
        - / 를 //로 바꿔주어야 하는 부분이 있음.
- 토크나이저를 <<전처리된 train(질문, context), val(질문, context), wiki(text만)>>에서 새로 학습
    - 기존 토크나이저와 얼마나 차이가 나는지 비교하고 학습
        - transformer에서 간편하게 하는 기능 제공 
    - 새로운 토큰을 추가해서 MLM 학습을 하려고 했음
    - wiki 포함하면 2분 40초 소요, 미포함의 경우 4초
    - 새로운 vocab과 그냥 vocab의 차이는 11417개
    - 이상한 문자들은 filtering(SH:한자 SL:외국어, UNKNOWN)
        - 필터링하면 만개로 줄어듬
        - 이걸 바로 적용할 예정X
        - wiki text를 눈을 확인해봤을때 이상한 문자가 포함된 경우가 있음
            - 오타인 문자들이 모여서 만들어진 결과거나
            - 이상한 단어로만 구성된 위키 데이터가 있거나
    - 순차적으로 수를 늘리면서 추가하여 실험할 계획
        - MLM training
        - 1 epoch만 돌리고 성능 확인할 예정
    - answer는 왜 안 넣나요?
        - context에 있기 때문에!
        - 근데 넣는게 안정적일 것 같다.
- 전처리 변경
    - html태그 제거를 위해 <,>안에 있는 것들을 다 없앴는데 -> <<정답>>까지 사라짐
        - <,>안에 영어가 들어가있는 것만 제거하는 것으로 변경
        - 원래는 개인정보이슈로 없앤다고 배웠는데, 답에 있어서 신문사, 기자이름도 다 살림
- T5, LSTM, Conv layer 붙여서 모델 써보기
    - LSTM, Conv
        - 결과 자체는 기본 모델과 별로 없었다. (비슷하거나 조금 낮거나)
        - 1기 분들 자료에는 레이어를 조금 깊게 쌓았었는데 시도해볼만 한 것 같다.
    - mT5, keT5
        - keT5는 성능이 별로..(base 모델을 써도 mt5랑 비교했을 때 EM 점수가 20점정도 낮음)
        - mT5는 라지 모델을 썼는데 memory 용량이 안됨. 그냥 생 모델로 평가했을때 EM 59~60정도(0.3 epoch 정도 학습..)
        - T5 인코더만 써서 Extractive QA 처럼 학습하는 방법 적용해볼 예정
        - 그리고 BART 모델을 채원님이 사용해볼 예정
    - Curriculum Learning 실험 계획
        - 난이도에 대한 판단은 보통 term frequency로 판단하거나 grammer가 얼마나 복잡한지 여부로 판단
        - 주로 large-scale 모델에서 많이 사용을 하고, training epoch이 적을 때나 레이블에 노이즈가 있는 경우 효과가 있다고 한다.
    - ColBERT 모델도 Retriever 파트에서 적용해볼 수 있는것 같은데 시간 남으면 적용해볼 수 있을듯.
    - Prompt-based fine tuning 개념 : fine tuning 시에 최대한 pretraining 단계와 비슷하게 학습을 진행하면 더 좋은 성능을 얻을 수 있다. (https://thegradient.pub/prompting/)




내일 까지 계획
---