1. 이번 주의 구성 (4.3. ~ 7.)
4차 미니프로젝트가 시작되었다. 텍스트를 분석해서 다중분류를 수행하는 task 였다. (Welcome to hell...)
2. 주제
구체적으로는 2기 에이블러님들의 Q&A 텍스트를 train해서 몇가지 카테고리로 분류하는 작업이었는데, 주제 자체가 재미있어서 기대가 되었다.
3. 맨땅에 헤딩하기
그런데 생각해보면 저번주 언어지능 시간에는 텍스트를 학습하는 알고리즘만 배웠지 그것을 어떻게 전처리할지는 안배웠던 것 같은데... 고난이 예상되는 미프였다.
강사님이 주신 베이스라인 코드에 어떻게 접근하면되는지가 나와있었다. 거기 있는 키워드들 (n gram, tfidf 등)을 서치하면서 개념을 훑었고 '텍스트를 피쳐화'하려는 다양한 시도를 알게 되었다. 추가적으로 영어는 띄어쓰기 단위로 자를 수 있지만 한글은 그런 접근이 불가능하기 때문에 형태소 분석이 선행되어야 했다.
언어지능 시간에는 RNN 계열만 배웠다보니까 이런 전처리 실습은 없어서 그랬는지 에이블러들의 반응이 참 다채로웠다 (내가 금붕어였다. 아직도 전처리 못끝냈어요... 절처리해주세요 등) 물론 개념 자체를 이해하고 적용하기에는 촉박한 시간이었으나 가볍게 임베딩 개념을 훑고 적용하기에는 충분한 시간이었다고 생각했는데 다른 분들은 아니었던 것 같다...
어쨋든 나에게도 쉬운 작업은 아니었고 꽤나 배운 것도 많았다.
4. 이번에도 A등급 받다. (팀과 함께!)
저번 2차 미프 때도 팀을 A등급에 올려놓았는데 이번 미프에도 A등급에 올려두었다.
다만 저번과 큰 차이점이 있다면 팀원들의 결과물을 적극적으로 활용했다는 점이다. 2차 미프 때는 정형 데이터였고 에이블 초반이었기 때문에 나 혼자 만든 결과물로 제출했었다. 그렇지만 이번 미프 때는 전처리 방식이 워낙 다양하다보니까 나 혼자 진행하기에는 시간이 부족하다는 판단을 내렸다.
팀원들에게 밝히지는 않았지만 구체적으로는 다음과 같은 계획을 세웠다. NLP에 자신이 있었으면 팀원들에게 알리고 확실하게 추진했을 것 같은데, 나도 NLP는 처음이라 밝히지는 못했다... ㅠㅠ
1) 팀원들은 각자 모델 만들도록 냅두기
데분을 공부하다보면 각자 꽂히는 포인트가 다르다는 걸 많이 느낀다. 이 점에서 착안하여 각자 여러가지 방식의 임베딩과 알고리즘이 사용되도록 냅뒀다. 텍스트를 어떻게 임베딩하느냐에 따라 추출되는 특성이 다를 거라고 생각했고, 그에 따른 최적화된 알고리즘 역시 차이가 날 거라고 생각했다. 그래서 '어떻게 해볼까요?'라고 제시하지 않고 자유롭게 작업하게 했다. 이게 성능을 올린 주효 포인트였다고 본다.
2) 나는 팀원들이 안해봤을 방법으로만 시도하기
강사님이 제시한 형태소 분석 방법 이외의 API 사용하기, 파이토치로 작성된 pretrained model 작동되도록 (여러번의 삽질) 수정하고 파인튜닝하기 등 나만의 길을 걸었다.
3) 그러다가 팀원들이 pretrained model 사용해보고 싶어하는 것 같아서 코드 공유.
4) 팀원들의 개성이 반영된 결과물들을 앙상블하여 최종 모델 산출.
1번에서 제시했듯이 우리는 여러가지 임베딩으로 각자 다르게 피쳐가 뽑힌 데이터로 모델링했기에 각자 모델이 반영하는 편중 또한 다를 거라고 생각했다. 데이터셋 + 다른 알고리즘의 앙상블을 해본 경험 상, 이번에도 성능이 좋아질 거라고 보았다. 이번에는 임베딩 방식에서부터 차이가 있었으니 다른 데이터셋 + 다른 알고리즘처럼 인식할 수 있으므로 성능 향상을 확신하고 있었다. 여러 모델을 조합해봤으나 (pretrained) DL + 2RL 구조 형태가 가장 성능이 좋았고, 상위권 점수를 받을 수 있었다.
내가 최종모델을 제시하긴 했으나 나 혼자였으면 A등급은 받기 어려웠을 것 같다. 그리고 팀원들도 내가 없었다면 A등급을 못 받았을 것이다. (상부상조 아주 좋아) 미프에서 이렇게 팀플이 잘 이루어질 거라고는 생각못했는데 재미있는 경험이었다. 역시 캐글이 들어간 미프는 오프라인으로 진행하는게 좋은 것 같다.
'KT AIVLE' 카테고리의 다른 글
[15] KT AIVLE 3기 ai트랙 - 에이블스쿨 12주차, 회귀 Metric 정리 (1) | 2023.05.14 |
---|---|
[14] KT AIVLE 3기 ai트랙 - 에이블스쿨 11주차 (1) | 2023.05.08 |
[12] KT AIVLE 3기 ai트랙 - 에이블스쿨 9주차 (0) | 2023.04.27 |
[11] KT AIVLE 3기 ai트랙 - 에이블스쿨 8주차 (0) | 2023.04.20 |
[10] KT AIVLE 3기 ai트랙 - 에이블스쿨 7주차 (0) | 2023.04.12 |