팀명 : 버블리그(Bobble League)
딥러닝 프로젝트 중 2번째 프로젝트인 NLP 프로젝트가 끝났다. NLP 프로젝트 회고를 작성해보고자 한다.
A. 개요
Dialogue Summarization 경진대회는 주어진 데이터를 활용하여 일상 대화에 대한 요약을 효과적으로 생성하는 모델을 개발하는 대회이다.
일상생활에서 '대화'는 항상 이루어지고 있다. 회의나 토의는 물론이고, 사소한 일상 대화 중에도 서로 다양한 주제와 입장들을 주고 받는다. 나누는 대화를 녹음해두더라도 대화 전체를 항상 다시 들을 수는 없기 때문에 요약이 필요하고, 이를 위한 통화 비서와 같은 서비스들도 등장하고 있다.
그러나 하나의 대화에서도 관점, 주제별로 정리하면 수 많은 요약을 만들 수 있다. 대화를 하는 도중에 이를 요약하게 되면 대화에 집중할 수 없으며, 대화 이후에 기억에 의존해 요약하게 되면 오해나 누락이 추가되어 주관이 많이 개입되게 된다.
이를 돕기 위해, 우리는 이번 대회에서 일상 대화를 바탕으로 요약문을 생성하는 모델을 구축하려고 한다.

- train data 12,457
- dev 499
- hidden-test 249

주어진 데이터는 다음과 같았으며, 각 column의 설명은 다음과 같다.
frame : 대화 고유 번호. 중복되는 번호가 없음.
dialogue : 최소 2명에서 최대 7명이 등장하여 나누는 대화 내용이다. 각각의 발화자를 구분하기 위해 #Person”N”#: 을 사용하며, 발화자의 대화가 끝나면 '\n' 으로 구분한다. 이 구분자를 기준으로 하여 대화에 몇 명의 사람이 등장하는지 확인해보는 부분은 EDA 에서 다루고 있다.
summary : 해당 대화를 바탕으로 작성된 요약문.
B. 환경
팀 구성 및 컴퓨팅 환경
6인 1팀, 인당 RTX 3090ti 서버를 VSCode와 SSH로 연결하여 사용
협업 환경
Notion, GitHub
의사 소통
KakaoTalk, Zoom, Slack, Discord
팀 구성
이번 프로젝트 팀원으로 배정된 인원은 6명 이었다. 늘 함께하던 4명, 그리고 이전 Computer Vision 대회에서 새로 추가된 1명을 제외하고 또 한 분이 새로 들어오게 되었다. 역시나 이번에도 또래여서 큰 불화 없이 프로젝트를 잘 마무리 하였다.
역할
Task 목록은 다음과 같다.
데이터 확인 및 분류(Data Verification and Classification)
데이터 전처리 및 EDA(Data Preprocessing and Exploratory Data Analysis)
모델링 및 파라미터 튜닝(Modeling and Parameter Tuning)
결과 정리 및 보고서 작성(Summarization of Results and Report Writing)
모두가 함께 모든 Task 에 참여했다. 하지만 우리 팀에 Deep Learning 쪽으로 연구를 오래 진행하셨던 분이 두 분이나 계셔 그 분들의 지식과 인사이트를 바탕으로 프로젝트를 진행하였다. 그 분들도 NLP Project 는 처음이라 하셨지만 Deep Learning에 이제 막 발을 담근 나보다는 더 잘할 것이라 생각했고, 현실적으로 그게 맞았다.
A. 팀 목표 설정
1주차 : 주어진 Upstage 강의 다 듣기, train 데이터 및 test 데이터 패턴 파악하기, base line code 이해하기
2주차 : 기존 데이터 탐색 및 파악하기(EDA 및 전처리), 데이터 증강하기(Data Augmentation, EDA + AEDA)
3주차 : 모델링, 모델 튜닝, 최종 모델 완성
B. 프로젝트 사전 기획
(1) 협업 문화
- 특별한 일을 제외하고는 항상 모여서 의논하면서 Task 진행할 것(Zoom, Discord)
- 오프라인 모임이 가능할 경우 오프라인 만남을 적극 활용할 것(소통 Skill Up)
- 논의 사항 및 오류 사항이 있을 경우 즉각 팀원들과 상의할 것
- New 아이디어 발생 시 Team Notion에 작성 후 팀원 호출하여 해당 아이디어에 대해 공유할 것
- 말하지 않아도 각자 중간 진행 상황에 대해 틈틈이 보고할 것
우리팀의 좋았던 점은 별 일 없으면 항상 온라인 소통 플랫폼에 항상 접속해 있는 것이었다. 문제가 생기면 언제든 소통이 가능했고 좋은 아이디어가 생겨도 실시간으로 바로바로 소통이 가능했다. 이 점이 팀 프로젝트 결과물을 뽑아내는 데 중요한 요소였던 것 같다. 이번에 새로 합류한 팀원께도 플랫폼 초대 링크를 보내어 참석할 수 있도록 하였다. 우리 팀은 기존의 Zoom 플랫폼 보다 Discord 활용을 더 많이 한 것 같다.
다른 팀 보다 늘 다양한 과정과 관점, 다양한 결과물을 완성시켰던 것 같다. 이번 발표회에서도 강사님께서 이 부분을 우리팀의 장점이라 높이 칭찬하셨다. EDA 프로젝트부터 Machine Learning 프로젝트, Machine Learning 대회, Deep Learning(CV), Deep Learning(NLP) 대회까지 동일한 팀원들과 프로젝트를 진행 중인데 변하지 않고 이런 협업 분위기가 지속되고 있어 개인적으로 너무 만족스럽다. 새로 팀에 합류하신 또 다른 한 분도 우리의 팀 분위기에 자연스럽게 녹아들어 임해주셔서 너무 감사한 마음이 들었다.
Public - Final Result(F1 score : 42.5474)
Private -Final Result(F1 score : 39.3707)

우리 팀은 8가지 Tokenizer 를 사용하여 다양한 시도를 해보았다. Hugging Face에 업로드 되어있는 각기 다른 8가지의 Tokenizer를 활용하여 다른 적용을 시도하려 했다.


이후에는 EDA 를 통해 Data 를 증강하고자 했다. 데이터 증강 기법에 대한 기술은 PPT에 자세히 기술해두었으니 참고하면 될 것 같다. PPT링크
A. 잘했던 점
B. 시도 했으나 잘 되지 않았던 것들
C. 아쉬웠던 점들
D. 프로젝트를 통해 배운 점 또는 시사점
Computer Vision 대회에 이어서 NLP 대회를 마무리하게 되었다. 모든 게 다 처음인 딥러닝 대회는 초심자에게 쉬운 대회는 아니었던 것 같다. 그래도 팀원 중 두 분이 어느 정도 경험이 있어 어깨 너머로 단어 하나하나 접해가며 천천히 배워가는 과정을 겪었던 시간이었다. NLP는 지금 현재 중요하게 뜨고 있는 분야이다. 정말 열심히 기초부터 잘 채워서 실무에 바로 적용할 수 있는 정도까지의 실력을 키워야겠다는 생각을 하게 되었다. NLP 교재 또한 2권 정도 구매하여, 복습할 겸 부족한 지식을 채워나가야 겠다.
#패스트캠퍼스 #UpstageAILab #Upstage #부트캠프 #AI #데이터분석 #데이터사이언스 #인공지능개발자 #ML #머신러닝 #경진대회 #딥러닝 #NLP