좋은 기회로 좋은 사람들과 인공지능으로 글을 쓰는 나가게 되었다.
정말 긴 여정이고 뜻 깊은 경험이었는데 좋은 결과도 얻게 되어 하나하나 복기해서 작성해보려고 한다.
글 솜씨가 좋지는 않다는 점 양해 부탁드리며.. 차근히 적어볼게요 😌
😎 깃헙 보러가기
1. 참여 동기 및 대회 소개
2. 예선 진행
3. 본선 진행 및 준비 과정
4. 본격적인 후기
✅ 대회 소개
11월 초부터 지원을 받아 1월 중순에 일정이 마무리되는 호흡이 꽤 긴 대회이다.
본 대회는 인공지능을 학습시켜 대회 당일 발표된 주제로 약 2만자 이내의 수필을 작성하는 것이 목표이다. 최소 3인에서 최대 5인으로 팀을 결성할 수 있고 대상의 금액이 300만원에서 500만원으로 중간에 향상되었다.
✅ 참여 동기
자연어처리
에 관심이 있어 대학원에 진학할 생각이었다. 그리고 자연어처리에서 생성모델에 대해서는 무지했기에 한 번 참여해본다며 좋은 경험이 될 것 같다는 생각을 했다. 이런 생각을 갖고 있는 와중에 친구들이 같이 해보자는 제안을 해주어서 고맙게도 참여해 볼 수 있었다. 우리는 처음에 300만원을 보면서 최소 인원으로 최대의 이득을 내자며 팀을 결성했다.🤣 다들 잘해보고자하는 의욕이 대단한 사람들이라는 것을 너무 잘 알기 때문에 무조건 상을 탈 수 있을거라는 자신감이 있었다. 아, 그리고 역할 중에 글쓰기 역할이 존재했었는데 이때까지만 해도 우린 그 중요성을 몰랐다.. ^-^
✅ 온라인 AI 특강 & 예선 문제 풀이
우선 온라인으로 딥러닝 기초, 기수상자 특강, 그리고 대회 소개에 대한 특강을 들었다. 모든 팀원들이 참가하지 않아도 되었어서 팀원들과 번갈아가며 참여했었다.
온라인 특강을 끝으로 당일 자정까지 제출해야하는 예선 문제를 전달 받았다. 자세하게 언급을 할 수는 없지만 기본문제/발전문제/심화문제로 나뉘어져 있었다. 말씀하실 때, 이번에 예선 문제 난이도가 상당히 쉽다고 말씀하셨는데 객관적으로 엄청 쉽다! 까지는 아니었던 것 같다..! 뭐 물론 어려운 난이도는 아니었다. 듣기로는 약 65팀이 참가했다고 한다. 이 중에 15팀만 뽑히기 때문에 본선이 간절했던 우리 팀원들은 알아서 척척 역할을 나누어 예선 문제를 풀이를 진행했다. (엄청난 텔레파시👀) 고도의 집중력으로 문제 풀이를 이어나가고 한 저녁 8시쯤 이쯤하면 된거 아니냐며 쿨하게 우리는 제출하고 휴식을 취했다. 😎
✅ Semi 준비 과정
이 기간이 상당히 길다. 이 기간동안 필요한 데이터를 충분히 모으고 모델을 선택하고 실습도 진행해보았다. 우리 팀은 노션을 활용해서 매 회의 내용을 정리했고 각자 맡은 부분을 조사하거나 데이터를 크롤링 했다. 남들이 크롤링한 사이트 이외의 사이트를 포함해 총 15 종류의 수필 사이트에서 데이터를 가져왔다. 또한, 모델 별로 각자 논문을 읽어보거나 직접 실습을 진행하면서 prompt 문장을 넣었을 때, 성능이 어느정도인지 학습 속도는 어떤지 등 여러가지에 대해서 논의했다.
논의 과정 중 여러 아이디어가 나왔으며 해당 아이디어가 가능한지 여부를 결정하기 위해 여러 번의 회의와 실험을 진행했다. 정말 기막힌 아이디어도 나왔지만, 우리의 결론은 이 아이디어가 실현되었다면 분명 이미 나와서 획기적인 무언가를 해냈을 것이라는 것 ㅋㅋ 😁
✅ Real 준비 과정
본선 진출이 확정되고 본격적인 준비가 시작되었다. 모아 둔 데이터의 전처리와 모델 학습 전략을 논의했다. 처음에는 데이터가 워낙 종류가 다양하기 때문에 각자 맡은 데이터를 기준으로 미리 상의한 기준으로 전처리르 진행했지만 대회 3일 전에 서로 전처리 진행 방향이 미세하게 달라질 수 있다는 생각에 전처리 코드를 다시 통일하였다. 전처리가 끝나는 대로 2차 전처리를 진행했는데, 이때는 인간 전처리기인 우리 모두를 활용했다. 정말... 눈이 빠지고 정말 귀찮고 재미도 없는 작업이었지만, 이 작업이 없었다면 우리 모델의 학습이 원하는 방향으로 학습되지 않을 것이라고 생각해 정말 꼼꼼하게 진행했던 것 같다.
그리고 그 동안 실습했던 코드를 바탕으로 모델을 확정하고 주최측에서 제공해준 서버에 모델을 올리고 학습을 진행했다. 이 과정에서 상당히 난관을 겪었는데 역시 언제나 환경설정을 우리를 힘들게 한다. 혹시나 KoGPT2를 못 올릴까 조마조마 했지만 다행히 잘 올라갔고 학습도 가능했다. 우선, 실험용으로 학습을 한 번만 진행한 후에 prompt 문장을 "만남이 있다면 이별도 있다."
라고 주었는데 상당히 결과가 괜찮아서 놀랐다. 1 epoch 만으로도 말이되는 글을 쓰다니... pre-trained가 잘된 모델이 상당히 대회에서 유리하겠다는 생각을 했다. (물론 당연한 말이지만)
데이터의 양이 많아 1 epoch 당 학습 시간이 길었는데 중간에 가끔 서버 연결이 끊겨 좀 고생을 했다. 물론 이거를 방지할 수 있는 linux 명령어를 나중에 알아냈는데 이는 나중에 정리해보도록 하겠다.
그리고 모델 학습 방향이 결정되는 순간 우리는 발표자료 작성도 진행했다. 이 부분이 정말 우리가 대회에 참가했을 당시 다행이라고 생각했던 부분이다. 우리는 아무리 생각해도 대회 스케쥴 상 우리가 모든 글쓰기를 마치고 발표자료를 잘 만들 수가 없었다. 우리가 공들여 생각하고 생성한 수필이 허접한 발표자료로 전달이 되지 않는다면 너무 아쉬울 것 같아 우리 팀원 모두 또 한 번 같은 생각을 하게 되었다. 우리는 아마 대회 시작 3일 전부터 PPT 작성을 시작했고, 어느 정도의 디자인과 뼈대까지 전부 완성시켰다.
대충 요약하자면, 준비기간동안 데이터를 모으고 전처리를 하고 모델을 학습시켜두고 발표자료 작성을 진행했다. 별거 없어 보이지만, 준비 기간 동안 정말 시간이 부족하다는 생각을 많이 했었고 우리 팀원 모두 3-4일 내내 새벽 6시가 되어야 잠을 청할 수 있었다.😴
✅ 본선 대회 일정 (2023.01.17 ~ 2023.01.18)
무박 2일로 구성된 일정이다. 오후 3시까지 성균관대학교 디지털 도서관으로 가서 등록을 하고 잠시 대기한 뒤에 모든 일정이 시작된다.
📌 주제 및 심사 기준 발표
북커톤의 시작을 알리는 시간이다. 이번 글쓰기 주제를 알려주시고 어떤 시간들이 있는지 소개를 받았다. 이번 4회 북커톤의 주제는 담대한
이다. 이전 대회보다 뭔가 심오한 대회 주제라서 우리 팀원 모두 잠깐 뇌정지가 왔었다. 서로 주제 발표되고 눈이 마주쳤는데 다들 동공이 에? 라고 쓰여있었음 ㅋㅋㅋ 😣 ( 아 참고로 우리 팀원은 전부 소프트웨어학과로 책과는 거리가 아주 먼 사람들이다. )
📌 팀별 활동
앞에 시간이 끝나면 팀별 활동 시간이 2시간 정도 주어진다. 이때, 정말 전략을 잘 세워야하는데 주제를 바탕으로 어떤 글을 작성할지에대한 이야기를 정말 짧은 시간 동안 빠르게 구글링해 이야기를 했다. 피그잼을 활용해서 주어진 시간동안 구글링하고 각자 생각한 내용들을 이야기한 후에 또 추가적인 자료 조사 혹은 아이디어를 주어진 시간동안 생각하는 방식으로 진행했다. 타임어택 방식이 2시간이라는 짧은 시간을 이용하기 적절했던 것 같다.
우리는 담대한
이라는 주제가 상당히 까다롭게 느꼈지만, 역발상을 했다. 흔하게 생각나는 용감한 스토리보다는 뭔가 철학적으로 의미를 부여하고 싶었다. 전략이라면 전략인데 문학적으로 이야기를 풀어나가는데 취약할거라고 생각했기 때문에 담대한
과 관련된 교훈을 줄 수 있는 철학자를 찾았던 것 같다.
그래서 찾게 된 다산 정약용 선생님의 철학... 신의 한수였다고 생각한다. 나의 생각을 팀원들과 이야기하며 주제를 확정하고 다양한 아이디어와 소주제를 설정했다. 이 팀별 활동시간이 길면서도 굉장히 짧은 시간이다. 이후에 저녁 시간이 있어 우리는 이야기한 주제를 바탕으로 계속 이야기를 했고, 모델 훈련을 시작했다.
📌 중간 발표 <팀 소개>
그냥 쉬어가는 시간이라고 생각하면 된다. 이 시간에 모델 학습을 돌려 놓고 그 시간을 즐기는 것을 추천한다. 간단한 팀소개 과정이라 부담 없이 5분 정도만 팀 소개 어떻게 할지 의논만하면 된다.
📌 최종발표
최종 발표는 팀 이름의 ㄱㄴㄷ 순으로 한다.
최종적으로 장려상을 수상하였다. 처음으로 인공지능 모델을 직접 활용하는 대회를 참가해보게 되어서 여러가지 공부와 적용 과정을 경험할 수 있어 뜻 깊었다. 덕분에 자연어처리에대한 관심도 증가했다.
더 자세한 프로젝트 진행 사항은 페이지 상단에 첨부한 깃헙 링크로 들어가 참고하길 바란다.
너무 도움이되는 정보에요!😆