분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
📨 [뉴스레터] 3월에 보내는 3호 뉴스레터! 🌸
데-하! 👋 데이커 여러분, 2주 동안 건강히 지내셨나요?
이번 3월 15일에 발송된 3호 뉴스레터에서는 ChatGPT가 정리한 GPT 논문 미리보기와 캐글 그랜드 마스터(!)의 솔루션, 그리고 미드저니로 그려 본 데이콘의 모습까지 알차게 준비했습니다.
설레는 마음으로 함께 시작해 보시죠!
> 지난 뉴스레터는 바로 여기!
📨 [뉴스레터 1호] 데이콘의 새로운 시도, 뉴스레터!
데이콘 뉴스레터는 2주에 한 번, 수요일에 발송됩니다! 뉴스레터를 그때그때 메일함으로 곧장 받아 보고 싶다면, ‘내 계정 관리' 하단, 마케팅 정보 수신 동의에 체크해 주세요!
월간 데이콘 코드 유사성 판단 AI 경진대회
이번 뉴스레터에서는 데이콘의 시그니처, 월간 데이콘의 ‘코드 유사성 판단 AI 경진대회’에서 2위를 차지한 vecxoz 팀의 솔루션을 소개합니다!
ChatGPT가 코딩도 할 수 있다는 사실을 알고 계신가요? 그 대단한 성능 때문에 일각에서는 프로그래밍에 종말이 오고, 노 코딩 시대가 도래할 것이라 말하는 사람도 있을 정도입니다. 👀 대체 인공지능은 어떻게 코드를 이해하고 작성할 수 있는 것일까요? 그건 바로 코드들로 구성된 데이터를 학습한 인공지능 모델이 존재하기 때문입니다!
이번에 솔루션을 소개할 코드 유사성 판단 대회에서 바로 이런 모델들이 대거 사용되었는데요! 똑같은 문제(Problem)를 해결하는 여러 코드를 데이터로 제공해서 해당 코드들의 유사성을 판단했습니다. 그럼 솔루션을 한번 본격적으로 살펴볼까요?
주어진 데이터 중 같은 Problem에서 선택한 무작위 코드 “a”와 “b”를 이용해서 긍정 샘플 “ab”를 만들고, “a”와 다른 Problem에서 선택한 무작위 코드 “c”를 이용해서 부정 샘플 “ac”를 구축했습니다.
이후 구축된 데이터셋에서 전처리 과정을 수행했습니다. 구체적으로는 모든 주석 제거, import 제거, Python2 문법으로 작성된 코드를 Python3로 변환, 다양한 종류의 공백을 모두 스페이스 공백으로 대체하는 과정을 거쳐 불필요한 토큰을 제거했습니다.
GroupKFold를 사용하여 데이터를 Problem을 기준으로 5-fold로 분할했습니다.
즉, 모델을 학습할 때 특정 Problem들만 학습시키고, 나머지는 Problem은 학습하지 않는 과정을 반복함으로써 모델의 일반화 성능을 높였습니다.
GroupKFold 방법을 사용해서 코드의 구조와 의미를 파악하는 데 뛰어난 성능을 지닌 GraphCodeBert-base 모델을 학습시켰습니다.
해당 학습 과정에서 입력된 토큰이 512개가 넘어갈 때 오른쪽부터 자르는 경우와 입력된 토큰이 512개가 넘어갈 때 왼쪽부터 자르는 경우 모두 학습시켰습니다.
이렇게 만들어진 2개의 GraphCodeBert-base 모델에서 왼쪽부터 자르는 경우에 더 가중치를 줘서 Soft Voting을 수행했습니다. 그 결과 Private Score 기준 Accuracy 0.9837로 2위를 기록했습니다.
이번 대회에서 공유된 코드들을 보면, 많은 참가자들이 모델을 학습시킬 때 입력된 토큰이 일정 수를 넘어갈 경우 왼쪽부터 자르는 쪽으로 학습시킨 것을 확인할 수 있습니다. 이는 데이터로 주어진 코드를 살펴보았을 때, 앞부분에 실제 코드의 목표와 큰 상관없는 import들이 나열되어 있는 경우가 많기 때문입니다.
하지만 처음부터 전처리를 통해 이런 불필요한 정보를 걸러낸 후, 한 모델을 왼쪽부터 자르는 경우와 오른쪽부터 자르는 경우 모두 학습시켜, 모델이 전체적인 코드에 대한 정보를 학습할 수 있게 한 것이 vecxoz 팀만의 차별점이라고 생각됩니다! 👏
그동안 데이콘에서 열렸던 NLP 대회는 자연어 데이터를 바탕으로 개최되었었는데요! 이번 코드 유사성 판단 대회는 코드 데이터를 바탕으로 열렸습니다. 그런 만큼 그동안 열린 대회들과 다른 모델들을 볼 수 있었다는 점이 독특했습니다.
GPT-2
데이콘 뉴스레터에서 선보이는 또 다른 콘텐츠, 논문 미리 보기입니다! 데이콘 DS팀에서 인공지능과 데이터 사이언스 분야에 큰 반향을 일으킨 주요 논문들의 개괄적인 내용을 요약, 정리해서 리뷰하는 코너입니다.
어느 분야든 마찬가지지만, 데이터를 다루는 분야는 특히나 빠르게 변화하기 때문에 계속해서 공부하는 것이 매우 중요하죠. 관심은 있었지만, 언어의 장벽과 시간 부족 등등으로 인하여 논문 읽기를 망설였다면 여길 주목해 주세요!
이번 뉴스레터에서 ‘미리 보기' 할 논문은 바로 GPT-2입니다! (위 이미지를 클릭하면 원본을 확인하실 수 있습니다.)
본 내용은 ChatGPT를 적극 활용하여 작성되었음을 알려 드립니다. (고마워요, ChatGPT! 👍)
GPT(Generative Pre-Trained Transformer) 시리즈는 OpenAI에서 발표한 대규모 언어 모델군의 개발에 관한 연구 논문입니다. 2가 있다면 1도 있겠죠? GPT는 1, 2, 3의 총 세 가지 시리즈가 나와 있어요. GPT 논문 시리즈는 자연어 처리에 관한 새로운 가능성을 열고, 혁신을 선도했다는 점에서 의의가 매우 큽니다!
최신 연구인 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: 모델이 학습 과정에서 배우지 않은 작업을 수행하는 것)
GPT-2 모델은 웹에서 사람이 필터링한 텍스트 데이터셋을 사용해 훈련되었습니다.
데이터셋엔 *카르마가 3 이상인 레딧(Reddit) 게시물의 링크 4,500만 개가 포함되었고, 위키백과의 기사는 제외되었어요. 이런 과정을 거쳐 최종적으로 40GB의 텍스트가 확보되었습니다.
(*카르마 : 미국의 초대형 커뮤니티 사이트, 레딧에서 활동을 하면 쌓을 수 있는 점수)
입력 텍스트를 표현하기 위해 Byte Pair Encoding(BPE)을 사용했습니다. 글자와 단어의 중간 단위를 사용함으로써 256개의 *토큰으로 제한되었던 어휘를 보다 효율적으로 사용할 수 있게 되었어요.
(*토큰 : GPT-2 모델이 입력 데이터를 표현하고 처리하는 데 사용하는 텍스트의 단위)
GPT-2 모델은 GPT-1과 비슷한 Transformer 구조를 사용했는데, 차이점에 대해 간략히 정리해 보면 아래와 같습니다.
총평
다양한 기준으로 여러 테스트를 거친 결과, GPT-2 모델은 대부분의 테스트에서 우수한 성능을 보였지만 번역에서는 성능이 떨어진다는 평가를 받았습니다.
조금 더 상세히 보자면, 독해에서는 좋은 성능을 보였고, 요약에서는 기본적인 수준의 성능을 보였는데, 이를 기반으로 연구자들은 실제 활용하기에는 무리가 있다고 평했습니다.
또한 *BERT와 비교해 모델의 단방향 접근 방식의 비효율성에 대해 논의했어요.
(*BERT : 구글이 개발한 NLP 사전 학습 방법)
해당 연구는 모델을 추가적으로 학습시키지 않는 zero-shot 방식을 사용해 개발한 모델이 다양한 작업에서 활용될 수 있는 가능성을 보여 주었습니다.
🍖 SH 님(DS): 언어 모델을 다양한 Task로 사용하려고 시도한 연구 방식이 상당히 놀라웠습니다. 앞으로의 연구가 더욱 기대되는 논문이었습니다.
논문 미리 보기는 앞으로 특별 인터뷰와 번갈아가며 찾아올 예정이니, 많은 관심 부탁드려요!
다음 특별 인터뷰의 주인공👤은 과연 누구일까요? (두근두근)
현재 진행 중인 대회들을 소개합니다!
세계 최초 ChatGPT 활용 경진대회가 열렸습니다! ChatGPT와의 질답을 통해 AI 프로젝트를 수행하는 코드를 완성하세요.
통화 데이터를 사용해 전화 해지 여부를 분류하는 모델을 만들어 보세요. 초보자분들도 데이콘에서 제공하는 Baseline 코드를 참고하면 쉽게 참여할 수 있답니다!
도전하고픈 대회의 이미지를 클릭하면, 해당 대회로 이동됩니다!
최우수상은 ‘아파트 실거래가 예측’ PBL을 공들여 제작한 ‘한남더힐’ 팀이 수상하게 되었어요! 우수상을 수상하신 ‘반박자’ 팀, 장려상을 수상하신 ‘윤슬’, ‘클래식팥양갱’ 팀까지 모두 진심으로 축하드립니다! 또한 비록 아쉽게 수상은 하지 못했지만, 활동 기간 동안 열정을 다해 참여한 다른 팀들도 모두 정말 수고 많으셨습니다. 👏
이후 데이크루 5기 소식도 곧 찾아올 예정이니, 이번에 활동하지 못해 아쉬웠던 분들은 다음 기회를 기다려 주세요!
최근 게시판에서 미드저니(Midjourney)와 관련한 게시물을 자주 보셨을 텐데요! 미드저니는 텍스트나 이미지를 입력하면 그에 부합하는 이미지를 생성해 주는 인공지능 모델입니다.
이건 또 못 참죠! 데이콘 팀에서도 이 미드저니를 사용해서 데이콘을 형상화해 보았습니다.
어떤가요? 평소 생각하셨던 데이콘의 이미지와 비슷하신가요? 😁
데이커 여러분도 본인만의 이미지를 생성해 보세요. 미드저니 사용법이 궁금하다면, 자유 게시판에 올라와 있는 ‘미드저니' 글들을 살펴보시는 것을 추천합니다!
신규 문제 기반 학습(PBL) 오픈!
⚽ 축구선수 유망 여부 예측, 💰 재정 데이터 시각화 프로젝트
혹시, 저희 뭐 달라진 거 없나요? 👀
데이콘 교육 탭 리뉴얼 오픈!
이번 뉴스레터에서는 데이콘 팀원분의 한마디를 전해 드립니다!
👓 SP 님: 데이스쿨 오프라인… 불태웠습니다. 🫠
녹아내리고 있는 SP 님을 비롯해 데이콘 팀이 열심히 준비 중인 데이스쿨 오프라인, 접수 마감이 얼마 남지 않습니다! 마지막까지 많은 관심 부탁드려요! (신청하신 분들은 입금 기한⏰을 꼭 확인해 주세요.)
다음 뉴스레터는 더욱 알찬 내용을 담아 찾아오겠습니다. 2주 뒤에 만나요! 🤗
이번 뉴스레터는 어떠셨나요? 아래 버튼을 눌러 간단한 감상평이나 피드백을 보내 주세요!
데이커 여러분의 작은 관심이 에디터에겐 큰 힘이 됩니다. 💪
파이썬초보만 님, 감사합니다! 😊
혹시 데이크루 이번에는 안하나요? ㅠㅠ 존버중인데...
안녕하세요, HiMyNameIsDavidKim 님.
다음 5기 데이크루는 4월 중으로 모집이 진행될 예정입니다.
구체적인 사항은 추후 알림 게시판에 공지될 예정이니 참고 부탁드리겠습니다!
감사합니다. 😊
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io | 전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved
좋은 글 잘봤습니다