부스트캠프 level2 대회 일지 - 1 주차

hello0U0·2022년 11월 20일
0

일지

목록 보기
2/3

부스트캠프 두번째 대회가 시작했다.
첫번째 대회에서는 잘 하지 못했다. 이번에는 방황하지 말고 열심히 참여해야겠다.


2022.11.14.(월) - 1일차

역할분담

리서처를 담당한다. 여기저기 조사해야한다니... 당황했지만 그래도 열심히 찾아봐야겠다. 이전 팀에선 각자 알아서 모델 찾고 만들어서 이번에도 다른 사람이 나서서 모델 찾을거라고 생각했는데 아니었나보다.

일지

일단 강의부터 다 들어야지. 이번에는 제대로 기록해보려고 노트도 샀다. 학교에서 프로젝트 할 때 지도교수님이 꼭 실험노트 만들어서 다 기록하라고 했던 것이 떠올랐다. 그래서 노트에다가 모두 기록해 볼 생각이다.


2022.11.15.(화) - 2일차

대회에서 해볼 것

  • mlflow
  • sweep
  • OmegaConfig

리서치

일단 paperwithcode에서 relation extraction을 검색하여 벤치마킹을 찾았다. 데이터셋이 여러개가 있어서 가장 위에 있는 TACARED(Sentnece level RE), DocRED(Document level RE) 이 두가지를 봤다.(사실 다른 데이터셋도 들어가보며 이건 뭐지 하고 찾았으나 별 소득이 없이 끝났다.)
이전 기수들의 자료를 찾아봤다.(부스트캠프 relation extraction 등으로 검색, 첫 대회 sts와 다르게 re로는 검색이 잘 안된다.)
피어세션 때 다른 팀원으로부터 loss는 focal loss가 좋다는 말을 들었다.

일지

강의듣는 중이라 대회에서 한 게 없다. 다들 대회준비를 계속 하길래 나도 덩달아 뭐라도 해야지 하면서 초조해지고 있다. 일단 강의만 쭉 달림


2022.11.16.(수) - 3일차

loss fuction, evaluation func 조사

AUPRC와 focal loss가 무엇인지 찾아봤다. 데이터셋이 심하게 불균형해서 그런지 함수들의 특징이 불균형 데이터에 사용하기 적합하다라고 한다.

일지

TACARED와 DocRED의 차이를 이제야 알아싿. DocRED가 문서 수준의 관계찾기이고, TACRED는 문장 수준의 관계찾기이다. 이제껏 둘 다 문서 수준인줄 알았는데... 그래도 이정도면 빨리 발견한 것이다. 함수들 말고 이제는 모델도 찾아야겠다. 지금까지 여기저기서 찾은 해봐도 좋을 모델들은(모델 + LSTM(or GRU), RBERT,SPANBERT, 모델 + entity 토큰 추가(sub,obj토큰도 넣으면 좋다고함), DEBERTa,RoBERTa-large-typed-marker, T5, ko-electra, ko-GPT)이다.
이번 대회에서는 여러 모델들을 만들어보는게 목적이니까 열심히 논문이랑 리뷰글들 읽어야지.


2022.11.17.(목) - 4일차

RBERT 조사

RBERT 논문을 읽고, RBERT 구현 코드를 참고하여 RBERT(Roberta모델 사용)을 코드에 추가하였다.

일지

기본 코드를 돌리는데 TrainerAguments에서 hub_model_id가 계속 없는 argument라고 하여 코드를 돌리지 못했다. 한나절은 그상태로 냅두면서 다른거 하고 다시 시도하고 그랬는데, 버전 문제가 맞는것 같아서 uninstall하고 다시 설치했다.(pip install transformer로 설치했는데 4.10.0이었다.) 새로 설치한 버전은 4.24.0이다.
이번엔 git lfs가 없다는 에러가 나왔다. git lfs를 설치하려고 다운받았는데 생각해보니 window라서 linux원격서버에는 소용이 없다. 그래서 git lfs github을 clone했다. 그런데도 설치방법을 알 수 없었다. 다행히 설치안내 페이지를 따라 설치할 수 있었다.
근데 이때도 curl이 없다고 해서 curl도 설치했다. curl을 설치하려면 sudo가 필요한데 이것도 없다고 해서 sudo도 찾아서 설치했다.
다른 사람들은 문제 없이 코드를 돌린 것 같은데 나는 기본코드 돌리겠다고 어디까지 간 것인지 모르겠다...

그래도 이제 기본 코드는 잘 돌아가는 것 같다. 이걸로 제대로 돌아가면 RBERT를 돌리고 자야겠다.

2022.11.18.(금) - 5일차

RBERT 코드 합치기

RBERT가 제대로 동작하는 것을 확인하고 코드를 깔끔하게 바꾸고 기존 코드에 넣는 중이다.

일지

RBERT 빨리 해내고 싶었는데 아직도 붙잡고 있다. 그래도 2일정도면 그렇게 오래 걸린 것은 아닐지도(물론 참고할 코드가 있는 것도 장점)

2022.11.19.(토) - 6일차

RBERT version 1 마무리

어떻게든 마무리 지었다. 하루를 그냥 쏟아부었다.(물론 놀면서 한것도 있지만)

일지

Data collate에 맞게 RBERT DATASET을 전체적으로 다시 짰는데 emask는 datacollate 함수에 포함이 되지 않아 사용이 불가능했다.(그리고 반나절을 날렸다...인 줄 알았는데 코드를 조금만 바꾸면 되는 거였어서 잘 사용했다 휴) 일단은 tokenize할 때 max length를 맞추는 것으로 했는데 그럼 학습이 느려서 문제다. 나중에 빠르게 할 수 있는 방법이 있는지 찾아봐야지

2022.11.20.(일) - 7일차

RBERT

밤새 돌린 RBERT 결과를 제출했다. 기존보다 살짝만 올랐다.(1-2점)정도, epoch 수는 더 적지만 그래도 씁슬하다. e3,e4 mask를 FC layer에 태워 더 돌렸는데 core dump와 함께 코드가 작동하지 않는다.
다른 코드들도 돌려보다가 mkdir에서 os error : No space left on device 에러에 대해 찾아봤는데 디스크 용량이 꽉 찬 것으로 보인다.

df를 찍으면 다음과 같이 뜬다.

찾아본 예시에서도 log가 너무 많이 쌓였다던가 nohup이 너무 많이 쌓였다고 했는데, 내가 nohup을 너무 남발했나....

tmux 써봐야겠다. 그나저나 이번 서버를 없애고 새로 할지(코드는 github에 있으니까... 기존의 모델 기록들이 문제다...) 어떻게든 고칠지 고민이다. 사실 시간상 서버를 없애는 것이 좋아보이긴 한다. 굳이 여기에 시간 쏟을 필요도 없고.

profile
hello world

0개의 댓글