[생성지능개발팀 한현준 X 정택현]
ㅤ
최근 AI 분야의 급속한 발전과 함께, Diffusion 모델을 필두로 하는 생성 모델이 크게 주목받고 있습니다.
ㅤ
스마일게이트 AI센터에서는 이러한 생성 모델에 관한 다양한 프로젝트를 진행하고 있는데요,
이러한 프로젝트를 진행하던 도중 재미있는 아이디어가 떠올라서 팀에서 모바일 개발을 담당하시는 현준님과 간단한 토이 프로젝트를 진행하게 되었습니다.
ㅤ
“아이들이 모바일 환경에서 간단한 스케치를 하면 생성 모델을 통해 빠르고 자연스럽게 리터치 한다”
이것이 본 프로젝트의 주제이며 간단한 아이디어이지만 다양한 기술을 활용해보기 좋을 것 같다고 생각되었습니다.
ㅤ
실제로 모바일 장비에 설치하여 사내 유치원 등에 제공해보는 시도도 할 수 있을 것 같았고, 이에 현준님과 개인 시간을 활용하여 프로젝트를 진행하게 되었습니다.
ㅤ
본 프로젝트의 핵심 기능은 2가지로 구성되어 있으며, 이러한 기능을 모바일 환경에서 활용할 수 있도록 구성하고자 하였습니다.
ㅤ
1단계: ViT(Vision Transformer) 기반의 낙서 예측 기능
ㅤ
ㅤ
먼저, 간단한 낙서 스케치 그림을 AI 모델을 기반으로 예측하는 모델이 필요하였습니다.
사용자가 어떠한 그림을 그린것인지 알아야, 생성모델을 기반으로 리터치할 수 있기 때문이었습니다.
ㅤ
따라서, 본 프로젝트에서는 Google에서 공개한 Quick draw 데이터셋을 ViT 모델에 학습하였습니다.
ㅤ
ㅤ
이처럼 학습된 ViT 모델은 100종 이상의 낙서 그림에 대해서 높은 정확도로 추론하는 것이 가능하였으며,
이를 Android의 Canvas 클래스와 모바일 화면의 Touch 이벤트를 받아오는 화면 구성 후 ViT 모델과 연동하였습니다.
ㅤ
연동이 완료된 결과, 거의 실시간에 근접한 속도로 빠른 추론이 가능하였으며,
Touch 이벤트가 종료된 시점에서 즉시 연산을 수행하기 때문에 어린이들이 기다림 없이 바로 결과를 확인할 수 있도록 하였습니다.
ㅤ
ㅤ
추가로 만약 학습되지 않은 종류의 낙서 스케치를 진행하는 경우 간단한 UI 요소를 통해,
무엇을 그린 것 인지 알려줄 수 있는 학습 요소를 추가하였으며, 이러한 정보는 서버로 전송되어 추후 학습에 활용할 수 있도록 개발하였습니다.
ㅤ
2단계: Diffusion 기반의 Image-to-image translation 기능
ㅤ
ㅤ
다음 단계로는 낙서 이미지를 Diffusion 모델을 통해 조금 더 멋지게 리터치 하는 기능을 구현하고자 하였습니다.
ㅤ
이러한 기능 구현에 앞서 저희가 중요하게 생각했던 포인트는 최대한 낙서 이미지의 형태를 보존하는 것이 중요하다고 생각하였으며,
어린이들의 재미와 흥미를 목적으로 하는 프로젝트인만큼 그림의 퀄리티 보다는 빠른 추론속도에 초점을 맞추게 되었고, 이에 따라 Diffusion 모델을 경량화 하기 위한 다양한 기술들과 추론 속도를 개선하기 위한 flash-attention 등을 적용하였습니다.
ㅤ
이처럼 개발된 기능은 그림의 구도나 형태는 최대한 유지하면서도 최대 3초 이내에 빠른 동작이 가능하였고,
추가로 guidance scale 이나 prompt 등을 별도로 입력하지 않아도 되는 Auto prompt engineering 기술이 적용되었습니다.
이에 대한 내용은 나중에 기회가 되면 별도로 서술하고자 합니다.
ㅤ
3단계: 편의성을 위한 한국어 지원
ㅤ
마지막으로 본 프로젝트에서는 NLP 파트 석겸님의 도움을 받아서, 한국어를 지원할 수 있게 되었습니다.
서비스의 주 이용자를 어린이로 선정하였기 때문에, 영어 보다는 한글을 사용하는 것이 좋을 것 같아 도움을 요청 드리게 되었습니다.
ㅤ
이처럼 어린이들을 위해 진행한 간단한 토이 프로젝트에 관해서 소개드렸는데요,
ㅤ
자세하게 모든 내용을 상세히 기술하지는 못하였으나,
Android 환경에서 모델 로드 속도를 줄이기 위한 비동기 처리, Frontend, 그리고 모델들이 잘 동작할 수 있도록 하는 많은 디테일한 부분들을 현준님께서 작업해주셨습니다. 👏👏
ㅤ
이번에 공유 드린 프로젝트는 조금 더 다듬은 후 기술적 성숙도에 따라 사내 어린이집 등에서 활용될 수 있다면 기쁠 것 같습니다. 🙏
ㅤ
마치며, 아이디어 스케치 이후 간단한 PoC 과정에서 제작된 영상을 추가로 첨부합니다.
(본 영상은 모바일 개발 착수 전 PoC 차원에서 Streamlit을 기반으로 개발된 데모이며, 재미로 봐주시면 감사드리겠습니다)
ㅤ
ㅤ
만약, 궁금하신 점이나 피드백이 있으시다면 언제든 문의 주세요 📧
감사합니다.