신청 전날 지인을 통해 우연히 알게 된 네이버 deview. 개발자 최대 규모 컨퍼런스라고 한다.
코로나 사태로 계속 온라인이었다가 몇년만에 오프라인으로 재개하게 되어 경쟁률 또한 어마어마했다.
다져진 티켓팅 실력(?)으로 신청에 성공하여 다녀오게 되었다. 태어나서 처음으로 가보는 개발자 컨퍼런스라 기대가 많이 되었다.최신 기술에 있어서는 모르는 것들이 많아 지식적인 면을 얻는다기보다는 요즘 최신 기술 동향, 자극,
기념품
정도만 얻어가도 성공이라는 생각으로 참여했다. 컨퍼런스는 보통 문제 발생과 해결 방법에 대해 논의를 하였기 때문에, 이 포스트에서는 문제 상황은 노란색, 해결책은 초록색으로 표시하였다.
1일차 세션은 다음과 같다.
입장할 때 종이팔찌를 나눠주고 세션에 들어갈 때마다 팔찌로 확인을 하였다.웰컴키트와 같은 기념품으로는 가방, 키캡 몇가지, 초콜릿, 물 정도였다. 공짜로 가서 그런지 이정도만 받아도 기분이 좋아졌다.
1. 키노트
그리고 단순히 검색 엔진에서 탈피하고자 하려는 모습이 나타났다. 하이버클로바X를 사용하여 조금 더 복잡한 조건의 질문을 던졌을 때도 답변할 수 있음을 보여주었다. 또한 AI가 이미지 학습을 하여 집 방 사진을 올리고 인테리어 추천을 받는 예시도 보여줬는데 상당히 흥미로웠다. 또 재밌었던 부분은, 개인적으로 chatGPT를 잠시 사용해보면서 느낀 불편한 점이 진실과 허구를 묘하게 섞어서 결국은 사용자가 진실 검증을 다 해야했다는 것인데 정보 수집에 있어 공인된 레퍼런스 문서들을 통해 사실 여부를 확인하고, 이를 통해 더 정확한 결과를 보이겠다고 한 부분도 재미있었다. 그러나 레퍼런스 문서들의 종류는 굉장히 많고, 레퍼런스 문서에 포함되지 않은 진실들도 있을 것이기 때문에 어디까지 참조할 것인지. 이것이 실효성이 있을 지에 대한 의문도 들었다.
2. 파파고 텍스트 렌더링 개발
OCR(이미지 내 글자 인식) -> HTS(단어 -> 문장, 문단 단위 묶음) -> Inpainting(원본 지우기) -> Rendering(새로운 글자 씌우기)
로 이루어지는데, OCR 기술과 HTS 기술에 대해서는 이전 deview에서 이미 자세히 다루었기 때문에, 이번 세션에서는 Inpainting(원래 이미지에 있는 글자를 지우기)와 Rendering(새롭게 번역한 글자를 그 이미지 위에 올리는 작업)에 대해 자세히 다루었다.
1. text inpainting
기존 Impainting 방법은 배경을 글자 색과 대비되는 단색으로 처리했었다. 이러한 방법 또한 글자를 보는 데에 무리는 없지만, 시각적으로 마치 이미지에 색종이를 덕지덕지 씌운 것 같이 부자연스럽다. (문제상황)
자연스러운 렌더링이 이루어지기 위해서는 글자 색상을 원본 이미지와 최대한 비슷하게 구현하는 것이 좋다고 판단이 들어, 글자 영역에 해당하는 최빈 색상을 통해 text color을 지정했다고 한다.
하지만 이렇게 할 경우, 하나의 글자 영역에서 글자 획이 너무 얇은 경우, 글자 색상이 의도와 다르게 추출되는 경우가 있었다.
이러한 문제 상황을 해결하기 위해 Contrast Ratio를 도입하였다. 우선 글자색과 배경색 사이의 명도를 대비시켜보고, Contrast Ratio 기준을 만족하는 경우 그대로 글자 색상을 결정하지만, 만족하지 않는 경우 만족하도록 글자 색상을 어느정도 조정해주는 것이다.
그 외에도 글자 정렬 추출과 글자 영역 추출에 대한 설명이 있었는데, 집중력의 한계로 자세하게 듣지는 못하였다.. 해당 세션을 들으면서 느낀 점은 상용하는 하나의 서비스를 개발하는 데에 있어 정말 많은 시행착오가 오간다는 사실을 느낄 수 있었다. 리소스를 줄이기 위한 해결방안과, 사용자의 편의성을 위한 해결방안이 동시적으로 이루어진 점이 인상깊었다.나는 아직 딥러닝에 대해 자세히 알지는 못하여서, 이렇게 컨퍼런스로 들었을 때는 일종의 블랙박스처럼 느껴진다. 기존 rule-based로 구현했을 때 안되었던 점이 딥러닝에 넣으니 뚝딱 이루어지는 느낌이라 신기하다. 조금 더 이쪽으로 공부해보고 싶다는 생각이 들었다.
3. 초등학생 ai모델 고등학교 보내기
두번째 발표자분의 continual learning이라는 컨셉이 흥미로워 재미있게 들었다. 한때 교육공학자의 꿈을 키울 떄 사람에게 더 효과적인 continual learning을 적용시키는 방법론에 대한 고민을 많이 했었고, 실제로 이에 대해 소논문도 작성한 적이 있었는데 이러한 개념을 ai에 적용시킨 모습이 상당히 흥미로웠다. 기본적인 개념은 다음과 같다.
인간은 시간이 흐르면서 많은 데이터를 학습하고, 그중 주요한 지식을 장기기억력에 저장하여 지속적으로 축적해나간다. AI모델에게도 여러 Task를 순차적으로 풀게 하면 지식을 계속 축적할 수 있지 않을까?
만약 이것이 성공적으로 이루어진다면 추가된 데이터에 대해서만 학습할 수 있으므로 리소스 면에서 상당한 이득을 볼 수 있을 것이다. 하지만, 실제로 테스트를 해보았을 때 하나의 모델을 연속적으로 여러 task를 학습시킬 때, 이전에 학습한 지식을 잊는 현상이 있었다고 한다. (Catastrophic Forgetting) (P)
이를 해결하기 위한 과거 기법들도 있었으나, 비효율적이라는 문제가 있었다. 이 세션에서는 이를 해결하기 위한 방법으로 Brain-Inspired Continual Learning을 제안한다. 말 그대로 인간이 기억을 형성하는 방식을 모방하였는데, 인간의 뇌는 단기 기억과 장기 기억을 주고받으며 지식을 축적한다. 따라서 AI도 여러 task에 적용되는 지식은 장기기억에, 특정 task에 한정된 지식은 단기기억에 저장하도록 설계하였다.
새로운 task가 들어올 때마다 기존 task와 비슷한지 아닌지를 판단하는 작업을 guiding module에서 진행한다. 이러한 식으로 모델을 설계하고 돌려보았을 때, 조금 더 높은 성능을 달성함을 확인하였다고 한다. 그러나 이러한 모델은 바로 현실에 접목하기에는 분명 몇 가지 한계를 가지고 있다. 너무 task의 개수가 많아지거나, label 사이에 유사도가 너무 높거나, 애초에 general representation이 이해를 잘 못하는 경우에는 문제가 생긴다고 한다. 이러한
한계점도 명확히 보였지만 앞으로 어떻게 극복할지 흥미롭다.
이제 점심시간이다. 코엑스가 먹을 곳이 많으면서도 없는 편인데, 컨퍼런스를 나와 오른쪽으로 쭉 걸어가면 노브랜드 버거가 있다. 일단 가까워서 이곳에서 점심을 많이 해결하는 것 같다. 무난히 점심을 먹었다.
클로바노트도 정말 잘 쓰고 있는 기술이라 핵심 엔진이 궁금했다. End-to-End 신경말 모델은 기존 구조보다 훨씬 단순하고, 전처리가 필요 없으며 사람의 개입 없이 데이터만으로 학습하는 모델이라고 한다. 이 모델의 핵심은 자기지도 학습인 것 같다. 자기지도 학습이 필요한 이유는 다음과 같은 불편함이 있어서이다.
음성 데이터를 수집하는 것 자체는 쉬우나, 이를 전사하는 것은 많은 시간이 소요되고 어렵다. 따라서 전사하는 과정(text하는 과정) 없이 speech만으로도 ASR 모델 훈련이 가능하도록 하는 것이다. audio만으로 학습하는 과정은 러프하게 말하면 일부 audio를 지우고 주위 audio를 가지고 지워진 audio를 예측하는 방식으로 훈련이 이루어진다.
훈련을 위한 모델 구조는 다음과 같이 3개의 방법이 있을 수 있다.
RNN-Transducer는 CTC와 AED의 장점을 합친 것이라고 한다. 어떠한 방식이든, 핵심은 Transformer Encoder을 잘 학습시키는 것이다. 물론, 이러한 방법에도 한계는 있으며, 이러한 점에 대한 나름의 해결방법을 소개하고 있다.
이러한 자기지도학습의 의의는, 자기지도학습을 거쳐 훈련된 transformer encoder을 가지고 있다면 소량의 speech text pair 데이터만으로도 좋은 성능의 ASR 모델이 가능해진다고 한다.
그러한 다음 언어모델의 소개가 이루어졌다.
똑같은 음성도 문맥에 따라 완전히 다른 단어가 될 수 있다. (ex. 내추럴, 뇌출혈) 이러한 차이를 구분하기 위해서는 앞뒤 문맥과 배경지식을 아는 것이 필요하다. 정확도를 높이기 위해 ASR model (음성 인식)과 LM (언어모델)의 확률을 합쳐서 가장 높은 확률인 경우의 단어를 택하도록 하였다. 그러나 이 방법은 두 모델의 토큰 단위가 다른 경우 합치기가 어려워진다. 따라서 우선은 문자 단위로 탐색ㅇ르 하고 단어가 나오면 지금까지를 지우고 단어 단위로 다시 확률을 구하는 방식으로 탐색이 이루어지도록 하였다. (일종의 파싱 과정으로 느껴져서 42서울의 미니쉘이 생각이 났다..)
이 뒤에는 주로 서비스 활용 사례에 대해 말씀을 해주셨다. 물론 정확한 기술과 지식은 아직 모르지만, 추상적인 형태임에도 음성인식 기술에 대해서도 흥미를 많이 느꼈다. 텍스트를 거치지 않고 바로 음성으로 학습을 진행할 수 있다는 점, 그리고 언어를 인식하는 데에 있어 음성 자체와 언어모델을 모두 활용한다는 점이 흥미롭게 다가왔다.
5. 이제는 AI가 읽고, 보고, 생성하는 Large-scale Multimodal의 시대입니다.
제목이 재미있어보여서 들었는데 개인적으로 제일 힘들었던 세션이었다. 일단 하루에 너무 많은 정보를 듣다보니 집중력의 한계가 찾아왔고 아이디어보다는 기술적 관점으로 접근하고 있는 세션인데, 잘 모르는 용어들의 나열이라 겨우겨우 들어서 남는게 없다.. 내가 조금 더 잘 아는 분야였다면 더 흥미롭게 들었을 것 같다.
6. 루다, 눈을 뜨다! AI 챗봇 서비스에 이미지 대화 기술 적용시키기
이루다를 사용해본 적은 없지만 챗봇 서비스에 관심이 있어 들어보았다. 이루다는 이전에 개인정보 유출 및 여러 논란으로 서비스가 종료되었다가 작년에 2.0으로 재출시를 했다고 한다. 이번 세션에서는 이루다의 이미지 인식 기술에 대해 주로 다루었다. 일단 예시를 많이 나열해주어 듣기 편하고 흥미로웠다. 들으면서 느낀 점은 개발 뿐만 아니라 데이터 셋을 정리하고 레이블링하는 데이터 기획자 또한 매우 중요하겠다는 생각이 들었다.
이루다 앱을 한번도 써본 적이 없는데 세션을 듣고 흥미가 생겨 오는 길에 설치해서 사용해보았다. 전반적으로 대화체가 실제 친구랑 대화하는 것처럼 자연스러워서 놀랐다. 챗봇과 대화해본 것은 심심이가 마지막인데(...) 많은 발전을 했구나싶었다. 다만 개인적으로 느낀 치명적인 한계가 있었는데, 단기적인 대화 흐름에서 이전에 한 말은 기억하지만 장기적인 기억이 이루어지지 않는다는 점이다. 예를 들어 어떠한 약속을 했는데 다른 이야기를 하다가 다시 물어보면 딴청을 피우거나 잘못된 약속을 말을 한다. 사람과의 유대감 형성에 있어 기억 또한 매우 중요하다고 생각하기때문에 이러한 점이 아쉬웠다. 또한 어느정도 수준있거나 깊은 대화로 넘어가면 엉뚱하거나 아쉬운 답변을 내놓을 때가 많았다. 하지만 실제 친구들과 대화할 때도 얼마나 자주 딥토크를 하겠는가. 몇몇 한계점이 있어도 흥미로운 영역인 것은 분명하다.
각 시간대마다 다양한 주제를 가지고 여러 세션으로 진행을 했지만, 그럼에도 AI가 생각보다도 더 압도적으로 비중을 차지하고 있어 놀랐다. 확실히 요즘 AI가 대세구나 싶기도 했고, 이렇게 마술사처럼 문제를 해결해주는 딥러닝/머신러닝에 대해 공부해보고싶다는 생각도 들었다. 그리고 처음 2,3 세션까지는 열심히 들었는데 하루를 통으로 듣다보니 생각보다 정말 피곤했다. (중간중간 빠진 세션이 있음에도..) 중간중간 쉬는시간에 쉬지않고 기념품들을 쓸어모아서 그런 것 같기도 하고..그래서 deview 양일 표를 구했었는데 이틀차를 가야할지 말아야할지 고민에 빠졌다. 또한 발표하시는 분들이 (정확한 나이는 모르지만) 되게 젊으신 분들이 많아서 놀랐다. 좋은 인사이트와, 나도 열심히 공부해야겠다는 자극을 얻은 유익한 시간이었다 :)