📨 [뉴스레터] 3월에 보내는 3호 뉴스레터! 🌸

2023.03.17 14:57 1,055 조회

데-하! 👋 데이커 여러분, 2주 동안 건강히 지내셨나요?

이번 3월 15일에 발송된 3호 뉴스레터에서는 ChatGPT가 정리한 GPT 논문 미리보기와 캐글 그랜드 마스터(!)의 솔루션, 그리고 미드저니로 그려 본 데이콘의 모습까지 알차게 준비했습니다.

설레는 마음으로 함께 시작해 보시죠!


> 지난 뉴스레터는 바로 여기!

📨 [뉴스레터 1호] 데이콘의 새로운 시도, 뉴스레터!

📨 [뉴스레터 2호] 데이콘 뉴스레터, 또 왔습니다!


데이콘 뉴스레터는 2주에 한 번, 수요일에 발송됩니다!
뉴스레터를 그때그때 메일함으로 곧장 받아 보고 싶다면,
‘내 계정 관리' 하단, 마케팅 정보 수신 동의에 체크해 주세요!




🕺 수상자 솔루션

월간 데이콘 코드 유사성 판단 AI 경진대회


이번 뉴스레터에서는 데이콘의 시그니처, 월간 데이콘의 ‘코드 유사성 판단 AI 경진대회’에서 2위를 차지한 vecxoz 팀의 솔루션을 소개합니다!

코드 경진대회


🔍 여기서 잠깐,

ChatGPT가 코딩도 할 수 있다는 사실을 알고 계신가요? 그 대단한 성능 때문에 일각에서는 프로그래밍에 종말이 오고, 노 코딩 시대가 도래할 것이라 말하는 사람도 있을 정도입니다. 👀 대체 인공지능은 어떻게 코드를 이해하고 작성할 수 있는 것일까요? 그건 바로 코드들로 구성된 데이터를 학습한 인공지능 모델이 존재하기 때문입니다!

이번에 솔루션을 소개할 코드 유사성 판단 대회에서 바로 이런 모델들이 대거 사용되었는데요! 똑같은 문제(Problem)를 해결하는 여러 코드를 데이터로 제공해서 해당 코드들의 유사성을 판단했습니다. 그럼 솔루션을 한번 본격적으로 살펴볼까요?




1-1. 대조 학습을 이용한 데이터 구축

주어진 데이터 중 같은 Problem에서 선택한 무작위 코드 “a”와 “b”를 이용해서 긍정 샘플 “ab”를 만들고, “a”와 다른 Problem에서 선택한 무작위 코드 “c”를 이용해서 부정 샘플 “ac”를 구축했습니다.


1-2. 데이터 전처리

이후 구축된 데이터셋에서 전처리 과정을 수행했습니다. 구체적으로는 모든 주석 제거, import 제거, Python2 문법으로 작성된 코드를 Python3로 변환, 다양한 종류의 공백을 모두 스페이스 공백으로 대체하는 과정을 거쳐 불필요한 토큰을 제거했습니다.


2-1. GroupKFolod

GroupKFold를 사용하여 데이터를 Problem을 기준으로 5-fold로 분할했습니다.

즉, 모델을 학습할 때 특정 Problem들만 학습시키고, 나머지는 Problem은 학습하지 않는 과정을 반복함으로써 모델의 일반화 성능을 높였습니다.


2-2. 모델학습

GroupKFold 방법을 사용해서 코드의 구조와 의미를 파악하는 데 뛰어난 성능을 지닌 GraphCodeBert-base 모델을 학습시켰습니다.


3. 앙상블

해당 학습 과정에서 입력된 토큰이 512개가 넘어갈 때 오른쪽부터 자르는 경우와 입력된 토큰이 512개가 넘어갈 때 왼쪽부터 자르는 경우 모두 학습시켰습니다.

이렇게 만들어진 2개의 GraphCodeBert-base 모델에서 왼쪽부터 자르는 경우에 더 가중치를 줘서 Soft Voting을 수행했습니다. 그 결과 Private Score 기준 Accuracy 0.9837로 2위를 기록했습니다.


이번 대회에서 공유된 코드들을 보면, 많은 참가자들이 모델을 학습시킬 때 입력된 토큰이 일정 수를 넘어갈 경우 왼쪽부터 자르는 쪽으로 학습시킨 것을 확인할 수 있습니다. 이는 데이터로 주어진 코드를 살펴보았을 때, 앞부분에 실제 코드의 목표와 큰 상관없는 import들이 나열되어 있는 경우가 많기 때문입니다.

하지만 처음부터 전처리를 통해 이런 불필요한 정보를 걸러낸 후, 한 모델을 왼쪽부터 자르는 경우와 오른쪽부터 자르는 경우 모두 학습시켜, 모델이 전체적인 코드에 대한 정보를 학습할 수 있게 한 것이 vecxoz 팀만의 차별점이라고 생각됩니다! 👏


이번 대회는 이런 점이 독특했어요!

그동안 데이콘에서 열렸던 NLP 대회는 자연어 데이터를 바탕으로 개최되었었는데요! 이번 코드 유사성 판단 대회는 코드 데이터를 바탕으로 열렸습니다. 그런 만큼 그동안 열린 대회들과 다른 모델들을 볼 수 있었다는 점이 독특했습니다.


> 다른 솔루션도 살펴볼까요? <




🤓 논문 미리 보기

GPT-2

데이콘 뉴스레터에서 선보이는 또 다른 콘텐츠, 논문 미리 보기입니다! 데이콘 DS팀에서 인공지능과 데이터 사이언스 분야에 큰 반향을 일으킨 주요 논문들의 개괄적인 내용을 요약, 정리해서 리뷰하는 코너입니다.

어느 분야든 마찬가지지만, 데이터를 다루는 분야는 특히나 빠르게 변화하기 때문에 계속해서 공부하는 것이 매우 중요하죠. 관심은 있었지만, 언어의 장벽과 시간 부족 등등으로 인하여 논문 읽기를 망설였다면 여길 주목해 주세요!

이번 뉴스레터에서 ‘미리 보기' 할 논문은 바로 GPT-2입니다! (위 이미지를 클릭하면 원본을 확인하실 수 있습니다.)

본 내용은 ChatGPT를 적극 활용하여 작성되었음을 알려 드립니다. (고마워요, ChatGPT! 👍)


🧐 GPT-2…?

GPT(Generative Pre-Trained Transformer) 시리즈는 OpenAI에서 발표한 대규모 언어 모델군의 개발에 관한 연구 논문입니다. 2가 있다면 1도 있겠죠? GPT는 1, 2, 3의 총 세 가지 시리즈가 나와 있어요. GPT 논문 시리즈는 자연어 처리에 관한 새로운 가능성을 열고, 혁신을 선도했다는 점에서 의의가 매우 큽니다!


그런데 1도 아니고, 3도 아니고 GPT-2를 소개하는 이유는?

최신 연구인 GPT-3은 1조 개에 가까운 단어와 1750억 개의 매개변수를 사용해 성능을 개선하였지만, GPT-2와 같은 언어 모델을 사용하였습니다. 즉, 언어 모델과 관련해서는 GPT-2가 곧 최신 논문이라고 할 수 있는데요!

그렇다면 GPT-2에서는 어떠한 연구가 있었을까요? GPT-2에서는 supervised learning 기법의 한계(특정 task를 학습하기 위해 데이터를 라벨링해야 하는 문제)로 인해, zero-shot 러닝 기법을 이용하여 연구를 진행하였으며, 그 결과 기존에 연구했던 연구들과는 달리 Unsupervised-learning 기법만으로도 학습이 가능해졌습니다.

좀 더 자세하게는 아래 내용으로 확인해 보시죠!


서론

해당 논문에서는 비지도 학습 방식, *zero-shot task transfer 방법으로 연구를 진행했습니다.

기존에 연구했던 모델은 사전 학습(pre-training)과 지도 세부 학습(supervised fine-tuning)의 결합으로 만들어졌기 때문에 다소 좁은 범위의 문제에만 적용할 수 있는 한계점이 있었는데요. 이번엔 지도 학습을 제외하여 좀 더 범용적인 모델을 만들고자 했습니다.

(*zero-shot: 모델이 학습 과정에서 배우지 않은 작업을 수행하는 것)



본론

  • 기존 언어 모델(Language Model, ML)에 관해 먼저 살펴보겠습니다.
  • 아래는 기존 모델의 수식입니다.
  • p(output | input) (p는 조건부 확률)


  • 이와 달리 최신 모델은 같은 입력이라도 어떠한 task인지에 따라 결과가 달라질 수 있도록 했습니다.
  • p(output | input, task) (p는 조건부 확률)
  • 예시1: (프랑스어 번역문(output) | 영어 텍스트(input), 프랑스어 번역(task))
  • 예시2: (질문에 대한 대답(output) | 문서, 질문(input), 대답(task))


Training Dataset

GPT-2 모델은 웹에서 사람이 필터링한 텍스트 데이터셋을 사용해 훈련되었습니다.

데이터셋엔 *카르마가 3 이상인 레딧(Reddit) 게시물의 링크 4,500만 개가 포함되었고, 위키백과의 기사는 제외되었어요. 이런 과정을 거쳐 최종적으로 40GB의 텍스트가 확보되었습니다.

(*카르마 : 미국의 초대형 커뮤니티 사이트, 레딧에서 활동을 하면 쌓을 수 있는 점수)


입력 표현(Input Representation)

입력 텍스트를 표현하기 위해 Byte Pair Encoding(BPE)을 사용했습니다. 글자와 단어의 중간 단위를 사용함으로써 256개의 *토큰으로 제한되었던 어휘를 보다 효율적으로 사용할 수 있게 되었어요.

(*토큰 : GPT-2 모델이 입력 데이터를 표현하고 처리하는 데 사용하는 텍스트의 단위)


Model

GPT-2 모델은 GPT-1과 비슷한 Transformer 구조를 사용했는데, 차이점에 대해 간략히 정리해 보면 아래와 같습니다.

  • 레이어(layer) 정규화가 각 하위 블록(sub-block)의 입력으로 옮겨졌습니다.
  • 이는 곧 GPT-2 모델의 각 레이어가 다음 레이어로 전달되기 전에 정규화된다는 것을 의미하는데요. DNN(deep neural networks)에서 발생할 수 있는 vanishing gradient problem을 방지하는 데 도움이 됩니다.
  • Residual path의 누적에 관한 초기화 방법이 잔차 레이어의 가중치에 1/√N을 곱하는 식으로 변경되었습니다. (N: residual layer의 수)
  • (Residual path라는 것은 레이어 간의 최소 경로를 의미합니다.)
  • 토큰과 batch 사이즈가 증가했습니다. 즉, 모델이 한 번에 더 많은 데이터를 처리할 수 있으므로 더 길고 복잡한 텍스트를 생성할 수 있게 되었다는 의미입니다.


결론

​​총평

다양한 기준으로 여러 테스트를 거친 결과, GPT-2 모델은 대부분의 테스트에서 우수한 성능을 보였지만 번역에서는 성능이 떨어진다는 평가를 받았습니다.

조금 더 상세히 보자면, 독해에서는 좋은 성능을 보였고, 요약에서는 기본적인 수준의 성능을 보였는데, 이를 기반으로 연구자들은 실제 활용하기에는 무리가 있다고 평했습니다.

또한 *BERT와 비교해 모델의 단방향 접근 방식의 비효율성에 대해 논의했어요.

(*BERT : 구글이 개발한 NLP 사전 학습 방법)


의의

해당 연구는 모델을 추가적으로 학습시키지 않는 zero-shot 방식을 사용해 개발한 모델이 다양한 작업에서 활용될 수 있는 가능성을 보여 주었습니다.



리뷰 한마디!

🍖 SH 님(DS): 언어 모델을 다양한 Task로 사용하려고 시도한 연구 방식이 상당히 놀라웠습니다. 앞으로의 연구가 더욱 기대되는 논문이었습니다.


논문 미리 보기는 앞으로 특별 인터뷰와 번갈아가며 찾아올 예정이니, 많은 관심 부탁드려요!

다음 특별 인터뷰의 주인공👤은 과연 누구일까요? (두근두근)

> 여기에서 한번 찾아보시죠! <




🏃‍♂️ 지금 바로 참여하세요!

현재 진행 중인 대회들을 소개합니다!


[ 월간 데이콘 ChatGPT 활용 경진대회 ]

세계 최초 ChatGPT 활용 경진대회가 열렸습니다! ChatGPT와의 질답을 통해 AI 프로젝트를 수행하는 코드를 완성하세요.


[ 데이콘 베이직 전화 해지 여부 분류 경진대회 ]

통화 데이터를 사용해 전화 해지 여부를 분류하는 모델을 만들어 보세요. 초보자분들도 데이콘에서 제공하는 Baseline 코드를 참고하면 쉽게 참여할 수 있답니다!


도전하고픈 대회의 이미지를 클릭하면, 해당 대회로 이동됩니다!




🤩 데이콘 지금은

데이크루 4기 수상자 발표! 🎉

최우수상은 ‘아파트 실거래가 예측’ PBL을 공들여 제작한 ‘한남더힐’ 팀이 수상하게 되었어요! 우수상을 수상하신 ‘반박자’ 팀, 장려상을 수상하신 ‘윤슬’, ‘클래식팥양갱’ 팀까지 모두 진심으로 축하드립니다! 또한 비록 아쉽게 수상은 하지 못했지만, 활동 기간 동안 열정을 다해 참여한 다른 팀들도 모두 정말 수고 많으셨습니다. 👏

이후 데이크루 5기 소식도 곧 찾아올 예정이니, 이번에 활동하지 못해 아쉬웠던 분들은 다음 기회를 기다려 주세요!


데이콘 팀은 지금 생성 AI 탐구 중!

최근 게시판에서 미드저니(Midjourney)와 관련한 게시물을 자주 보셨을 텐데요! 미드저니는 텍스트나 이미지를 입력하면 그에 부합하는 이미지를 생성해 주는 인공지능 모델입니다.

이건 또 못 참죠! 데이콘 팀에서도 이 미드저니를 사용해서 데이콘을 형상화해 보았습니다.



어떤가요? 평소 생각하셨던 데이콘의 이미지와 비슷하신가요? 😁

데이커 여러분도 본인만의 이미지를 생성해 보세요. 미드저니 사용법이 궁금하다면, 자유 게시판에 올라와 있는 ‘미드저니' 글들을 살펴보시는 것을 추천합니다!




📢업데이트 소식


신규 문제 기반 학습(PBL) 오픈!

⚽ 축구선수 유망 여부 예측, 💰 재정 데이터 시각화 프로젝트


혹시, 저희 뭐 달라진 거 없나요? 👀

데이콘 교육 탭 리뉴얼 오픈!


> 새단장한 교육 페이지 보러 가기 <




에디터 한마디 💬


이번 뉴스레터에서는 데이콘 팀원분의 한마디를 전해 드립니다!

👓 SP 님: 데이스쿨 오프라인… 불태웠습니다. 🫠

녹아내리고 있는 SP 님을 비롯해 데이콘 팀이 열심히 준비 중인 데이스쿨 오프라인, 접수 마감이 얼마 남지 않습니다! 마지막까지 많은 관심 부탁드려요! (신청하신 분들은 입금 기한⏰을 꼭 확인해 주세요.)

다음 뉴스레터는 더욱 알찬 내용을 담아 찾아오겠습니다. 2주 뒤에 만나요! 🤗




이번 뉴스레터는 어떠셨나요? 아래 버튼을 눌러 간단한 감상평이나 피드백을 보내 주세요!

데이커 여러분의 작은 관심이 에디터에겐 큰 힘이 됩니다. 💪

> 3초면 충분합니다! <


로그인이 필요합니다
0 / 1000
파이썬초보만
2023.03.18 11:59

좋은 글 잘봤습니다

DACON.YC
2023.03.21 15:31

파이썬초보만 님, 감사합니다! 😊

HiMyNameIsDavidKim
2023.03.21 22:44

혹시 데이크루 이번에는 안하나요? ㅠㅠ 존버중인데...

DACON.YC
2023.03.22 09:15

안녕하세요, HiMyNameIsDavidKim 님.
다음 5기 데이크루는 4월 중으로 모집이 진행될 예정입니다.
구체적인 사항은 추후 알림 게시판에 공지될 예정이니 참고 부탁드리겠습니다!
감사합니다. 😊