본문 바로가기
일기

어제 오늘 뭐했나. 11/4

by soypablo 2022. 11. 4.

그 전 일기에서 했던 실험 리포트

 

1.특정 카테고리의 데이터만 여러번 넣어서 학습함

확실히 그 특정 카테고리는 학습이 잘 되었지만, 오버피팅이 난 건지, 그 외의 카테고리 데이터는 오히려 예측 오차가 커져서 전체적인 성능이 떨어졌다...

-> 만약 predict데이터에, 어떤 카테고리인지 나와 있다면, 전체 데이터를 모델에 학습시키고, 추가로 classifier를 카테고리별로 만들어서, 카테고리 데이터만 학습시켜서, 카테고리별로 예측을 한다면 성능이 오를 수 있을 것 같다.(물론 대회가 끝나고 알았다.)

 

2.regex문법을 이용하여, 쉼표, 느낌표, 물음표, ㅋ, ㅎ, a, b를 제거한 뒤 학습

이러한 토큰들이 문장의 핵심내용을 희석하지 않을까 라는 생각이 들어 실험을 진행한 것이었는데, 트랜스포머에서는 이러한 토큰들도 중요한 역할을 하는 것 같다. 예전 에는 불용어 (the같은 거)를 전부 없애고 학습을 진행했었는데, 트랜스포머는 attention기반이다 보니 이러한 토큰들 하나 하나의 관계도 잘 유추하는듯 하다.

 

3.문장을 감정분석을 먼저 거치고, 이를 토큰으로 넣은뒤 학습

감정분석을 한뒤, pos, neg, neu 토큰을 넣어서 학습을 하면 더 예측을 잘하지 않을까 라는 생각이 들었다.(두 문장의 감정이 상반되면, 유사도가 낮을 것이고, 두 문장의 감정이 일치하면 유사도가 높을 확률이 높을것이라는 가정)

그런데 문제는, 일단 한국어기반 감정분석 모델이 생각보다 없었고, 특히 인터넷 댓글과 같은 데이터로 학습시킨 모델이 없어서, 그나마 몇개 있는 모델로 감정분석을 했을때, 감정분석이 별로 정확하지 않다는 인식을 받았다. 따라서 감정분석을 한 뒤 이를 토큰으로 넣어서 진행하는 실험은 중지했다.(그냥 모델 돌릴 시간도 없었다.)

fine tuning을 하는 방법도 있었을 것 같은데, 데이터에 감정관련 라벨을 직접 지정해야 하다보니 포기했다.

contrastive learning를 잘 활용했으면 가능했을지도?

 

 

한거.

템플릿 확장1.

내 파이토치 라이트닝 템플릿에서, 기존에는 torch.save를 통해 save를 하고, torch.load를 통해 모델 로드를 했는데,

파이토치 라이트닝에서 지원하는 Modelcheckpoint를 이용하여 자동으로 베스트 epoch의 weight, parameter를 ckpt로 저장해주는 기능을 구현했다.

 

나는 ckpt가 pt처럼 모델의 구조까지 저장해놓는 파일인줄 알았는데, 그렇진 않고 weight, hyperparameter만 저장해주는 파일이었다.(대신 아마 용량이 작을듯.) 팀원들끼리 모델을 공유할땐 꼭 pt파일로 공유를 하자!

 

deeplearning에서 artifact?

Deeplearning 에서 artifact? → 딥러닝 과정에서의 출력을 설명하는 모든 데이터를 의미한다.

출력은 완성된 모델일 수도 있고, 체크포인트일수도 있고, 생성된 파일일 수도 있다. 라고 하는데, 잘 모르겠어서 멘토님께 물어봤다.

artifact라는 것이 훈련과정 중 나올 수 있는 모든 것을 의미하는 것 같습니다. loss나 metric score, 추론 결과, 모델 가중치, 각종 log들 등등, 하지만 대체로 모델의 가중치를 의미한다고 보면 될 것 같습니다.

라고 하셨다.

 

대회 해보니까 대회가 실력에 도움을 주는 거 같아서 캐글에 대해 좀 찾아봣음.

근데 확실히 캐글 그랜드마스터 출신이 개쩌는 사람이 많았는데, 이게 개쩌는 사람이 캐글을 하는 건지, 캐글을 많이해서 개쩌는 사람이 된건지 잘 모르겠다. 어쨋든 랭킹과 실력이 비례하긴 한다.

 

이슈

템플릿에서 xlm-roberta-base를 config을 통해 불러왔는데,

RuntimeError: CUDA error: device-side assert triggered
가 발생함. 근데 원인을 정확히 모르겠음, 바꾼것은 모델 하나니까 모델관련 오류인데, 모델의 토크나이저 임베딩을 바꾼게 제일 유력하다고 생각한다.

 

ps. 파이썬 공식문서 argparse함수 중 오역이 있어서 리퀘스트를 했는데, 오늘 다시 문서를 보니까 수정되었다.

이로써 나의 첫 오픈소스 활동이 생겼다! (파이썬 번역 참여자가 많을 줄 알았는데 50명 정도만 있어서 놀랐다.)

'일기' 카테고리의 다른 글

근데 이제 뭐함?: 부스트캠프4기가 끝나고 한달 뒤 후기 1편  (0) 2023.03.23
오늘 뭐했나 11/1  (0) 2022.11.02
오늘 뭐했나-10/28, 10/31  (1) 2022.10.31
10_4  (0) 2022.10.04