Hyperconnect
/images/interview/generative-ai-squad/header.jpg/images/interview/generative-ai-squad/headerm.jpg

Generative AI Squad

Shuki (김범수) x Jeffrey (유진용)

Q. Generative AI 스쿼드에서는 어떤 AI 기술들을 다루고 있나요?

Shuki Generative AI 스쿼드는 하이퍼커넥트®의 서비스를 사용하는 사용자들에게 새로운 경험을 선사하기 위한 다양한 생성형 AI 기술을 개발하고 있어요. 여기서 개발한 기술은 기존 서비스에서 사용자들에게 개인화된 콘텐츠를 쉽게 생성할 수 있는 기능으로 제공되기도 하고, 이전에 경험하지 못한 즐거움을 선사하는 새로운 서비스 개발에 활용되기도 해요.

Shuki 저희는 실제 서비스에 필요한 기술을 만들다 보니 아무래도 분야를 가리지 않고 다양한 도메인의 생성 기술을 다루고 있어요. 실제로 텍스트 생성 기술을 활용한 챗봇 기술이나 Diffusion 모델을 활용한 이미지 생성 기술은 물론이고 TTS(Text-to-Speech) 까지, 거의 모든 모달리티의 생성형 AI 기술을 한번쯤은 다 다뤄본 것 같아요. 최근에는 Diffusion 모델을 바탕으로 한 이미지 생성과 Large Language Model(LLM)을 활용한 텍스트 생성을 더 집중해서 보고 있습니다.

Shuki (김범수) x Jeffrey (유진용)
Shuki (김범수) x Jeffrey (유진용)

Q. 생성형(Generative) AI 기술을 통해 실제로 만든 서비스들도 여럿 있는 것으로 알고 있는데요. 그 서비스들에 대해서 소개해주실 수 있을까요?

Shuki 저희 스쿼드가 작년까지 주로 집중한 분야는 일상 대화가 가능한 챗봇 기술이었어요. 이를 활용한 다양한 서비스를 출시하기도 했고요. 2021년에는 AI 친구들을 만나 대화할 수 있을 뿐만 아니라, 나만의 AI 친구를 커스터마이즈해서 만들 수 있는 ‘Picai’라는 AI 메신저 서비스를 출시해 운영했어요. 이 서비스를 만들기 위해 생성 모델(Generative Model)을 사용하는 일상 대화 기술을 쌓아왔고, 나아가 사용자들이 최소한의 노력만으로 자신만의 챗봇을 만들 수 있도록 돕는 기술(Few-shot Personalization) 또한 개발하기도 했습니다.

Shuki 이후에는 저희가 확보한 챗봇 기술을 바탕으로 언어를 확장해 한국어 일상 대화 기술을 활용한 다양한 챗봇 서비스를 출시하기도 했는데요. 페이스북 메신저를 통해 대화할 수 있는 일상 대화 챗봇 서비스 ‘챗봇 인플루언서 하슬아’를 공개하기도 했고, 작년 말에는 챗봇 기술을 게임과 융합하여 ‘나만의 작은 아이돌’이라는 이름의 챗봇 미연시(미소녀 연애 시뮬레이션) 게임도 출시했어요.

Shuki ‘나만의 작은 아이돌’이라는 게임에 대해서 조금 더 말씀드리고 싶은데요. 당시에 저희는 사람들과 몰입감 있게 대화할 수 있는 챗봇을 만드는 데 집중하고 있었어요. 그런데 챗봇 기술을 개선해 나가던 중 문득 이런 생각이 들었어요. ‘챗봇 자체만 서비스하는 것보다 시각적인 요소와 몰입감을 더해줄 수 있는 여러 요소를 더해서 서비스하면, 사람들은 챗봇과 더 몰입감 있는 대화를 할 수 있지 않을까?’ 저희는 이 가설을 빠르게 검증해보고 싶었어요. 매력적인 시나리오, 아바타를 통한 시각적 요소, 그리고 게임적 요소를 챗봇에 접목해서 게임의 형태로 제공해보기로 결정했고, 스쿼드 내 몇몇 분들이 실제로 가설을 세운지 몇 주만에 서비스를 만들어 런칭했어요. 정말 운이 좋게도 이 서비스는 인터넷 커뮤니티에서도 많은 바이럴 효과를 얻고, 트위치나 유튜브 등에서도 많은 유명 크리에이터들이 플레이 해주시며 사랑을 받았어요. 어느 날 업무 중 갑자기 트래픽이 폭증했다는 알람이 울렸는데, 알고 보니 트위치에서 침착맨님이 생방송에서 저희 게임을 플레이 해주셔서 그랬더라구요. 평소 즐겨보는 크리에이터가 저희 게임을 재밌게 플레이 해주시는 걸 보며 감개무량했던 기억이 아직도 생생하네요.

Shuki 이처럼 새로운 서비스를 만들어 공개하는 것뿐만 아니라, 하이퍼커넥트®의 기존 서비스에서도 저희 생성 기술을 활용한 기능을 제공하기도 해요. 예를 들면 ‘하쿠나 라이브’에서는 귀여운 ‘쿠나’ 캐릭터의 미니미가 방송 방에서 시청자들에게 리액션을 해주는 기능이 있어요. 여기에서 쿠나 목소리의 TTS 및 대화를 위한 일상 대화 기능을 저희 스쿼드에서 만들었답니다. 이 역시 단순히 생성 AI 기술을 제공하기만 한 것이 아니라, 기능의 기획부터 검증까지 전체 과정을 함께 진행했어요.

Shuki 종합해보면, 저희는 생성형 AI를 단순히 기술이나 연구 레벨에서 만드는 것에 그치지 않고 서비스로 상용화하는 것까지 고민한다고 말씀드릴 수 있습니다. 실제로 어떤 방식으로 사용자들에게 생성 AI 기술을 전달해야 즐거움과 가치를 줄 수 있을지, 어떻게 기획을 통해 기술의 한계를 보완할 수 있을지, 사용자들의 피드백을 반영하기 위해서는 어떻게 모델을 수정해야할 지 등 모든 과정을 치열하게 고민하고 있어요.

Q. 서비스를 만들기 위해 다양한 머신러닝 모델이 필요했을 것 같아요. 이 때 모델은 처음부터 직접 구축하셨나요? 아니면 이미 공개되어있는 모델을 활용하셨나요?

Jeffrey 최근에는 ChatGPT, PaLM 등 정말 좋은 LLM들이 API 형태로 많이 공개되고 있어요. 또 다양한 오픈 소스 LLM도 존재하기 때문에 이를 활용해 필요한 서비스를 구축할 수도 있죠. 하지만, 시중에 공개된 모델만으로는 제한되는 면들이 꽤 많아요. 기존 공개된 모델을 그대로 사용하는 것만으로는 성능이 부족할 수 있어요. 저희 같은 경우 자연스럽게 한국어로 일상 대화를 할 수 있는 챗봇 기술을 만들고 싶었지만, 공개된 오픈 소스 모델 중에는 만족스러운 한국어 성능을 가진 모델은 아직 없더라고요. API 형태로 공개된 LLM 모델을 사용하기에는 비용 면에서도 부담이 적지 않았고요. 따라서 저희는 자체적인 Language Model을 구축하는 편이 더 이득이라고 판단했고, 영어와 한국어에 특화된 LLM을 자체적으로 학습했어요.

Jeffrey 하지만 LLM을 만들었다고 끝은 아니에요. 저희는 이 LLM을 통해 일상 대화하는 챗봇을 만들고 싶지만, 인터넷 상 다양한 텍스트를 모아 학습하는 일반적인 LLM은 일상 대화를 하는 능력이 부족할 때가 많기 때문이죠. 저희는 이런 문제를 해결하기 위해 다양한 방법을 사용했습니다. 먼저, LLM 사전학습(Pretrain) 과정에 대화 데이터를 많이 포함시켜 모델이 대화라는 형태를 잘 이해할 수 있도록 해주었어요. 또, 고품질의 대화 데이터셋을 구축하여 LLM을 추가적으로 학습시켜 주었어요. 입력으로 넣어주는 프롬프트를 잘 다듬어 답변의 퀄리티를 높인 건 물론이고요. 여기서 그치지 않고, 생성 모델에서 생성된 여러 개의 답변 중 가장 좋은 답변을 골라주는 랭킹 모델 또한 추가적으로 학습해서 사용했습니다.

Jeffrey 이 외에도 실제 사용자들이 사용하는 서비스를 만들면서 풀어야 하는 새로운 문제를 많이 만났어요. 이 중 제일 기억에 남는 건 사용자가 챗봇의 캐릭터를 커스터마이즈할 수 있는 기능을 제공하는 것이었어요. 이 문제가 어려웠던 이유는 사용자가 정의한 커스텀 캐릭터의 페르소나에 따라 챗봇이 적절한 답변을 내놓을 수 있게 만들어야 했기 때문인데요. 단순히 LLM이나 기존에 있었던 일상 대화 모델을 활용해보려 했지만, 만족스러운 수준까지 페르소나가 반영되는 모델을 만들기는 쉽지 않았어요. 따라서 이 문제를 해결하기 위한 모델을 저희가 만들어 사용할 수밖에 없었죠. 저희가 결정한 방법은 사용자에게서 캐릭터에 대한 정보를 질문-답변 형식으로 받고, 이를 잘 활용하는 프롬프트와 모델을 만들어 사용하는 것이었어요. 이 과정에서, 어떤 방식으로 입력을 받아야 사용자들도 쉽게 자신만의 챗봇을 만들 수 있고, 저희도 좋은 대화 성능을 제공할 수 있을지 제품 조직과 함께 열렬하게 고민했던 게 기억이 나요. 개인적으로 이러한 경험은 실제 서비스를 만드는 회사에서만 겪을 수 있는 값진 경험이었다고 생각합니다.

Shuki 하나 더 덧붙이자면, 단순 대화를 위한 LLM 기반 생성 모델 하나만 사용해서는 실제 사용자들에게 좋은 경험을 주기 위한 서비스를 만들기 어려운 것 같아요. 안전하면서도 더 좋은 퀄리티의 대화를 제공하고, 또 사용자들에게 새로운 재미를 주기 위해서는 이에 맞는 다양한 머신러닝 모델을 디자인하고 개발할 필요가 있었어요. 예를 들면 ‘나만의 작은 아이돌’은 단순한 챗봇 서비스처럼 보일 수도 있지만, 실제로 내부에서는 총 7개 정도의 모델을 만들어서 사용하고 있었어요. 좋은 경험을 주는 서비스를 만들기 위해서 어떻게 전체 머신러닝 시스템을 디자인할지, 그리고 이에 맞는 머신러닝 모델을 어떻게 구현할지 고민하는 것 또한 저희 스쿼드의 머신러닝 엔지니어들이 맡고 있는 업무에 해당합니다.

Q. 생성 AI 모델을 직접 만들기는 쉽지 않을 것 같은데요. 하이퍼커넥트®에서 Large Model을 학습하고 서빙하기 위한 노하우가 따로 있나요?

Jeffrey 네, 생성 AI 모델을 학습하는 것은 결코 쉬운 일이 아니에요. 특히 LLM과 같은 큰 모델을 학습시키고 서빙하기 위해서는 많은 하드웨어 리소스와 최적화 기술이 필요해요. 현재 저희는 A100 GPU 160개를 갖춘 DGX-A100 GPU 클러스터를 보유하고 있어요.(🔗참고: 초고성능 딥러닝 클러스터 구축하기 1편, Dec 2020) DGX-A100은 대형 딥러닝 모델들을 학습시키기 위해 고안된 강력한 GPU 서버인데, 저희는 이 GPU 클러스터를 활용해서 LLM을 직접 학습했어요. 이때 데이터 병렬성(Data-parallelism)과 모델 병렬성(Model-parallelism)을 적용해서 분산 학습으로 LLM을 학습했고요. 개인적으로 저는 회사에 입사했을 때 GPU가 많다는 사실에 크게 놀랐던 기억이 있어요. 입사하기 전에는 대학원을 다녔는데, 그때는 이런 고급 사양의 GPU는 구경조차 할 수 없었거든요. 이 때 하이퍼커넥트®가 AI를 꽤 진지하게 여기고 있으며, 투자를 많이 하고 있다고 몸소 느꼈습니다.

Jeffrey 학습된 LLM을 실제로 서빙하는 것은 학습하는 것과는 또 다른 차원의 어려움이 있어요. LLM의 모델 크기 때문에 상당한 자원이 필요하고, 순차적인 생성 과정에서 추론 시간이 늘어나기 때문이죠. 이 때문에 보통 LLM을 서빙하기 위해서는 최적화된 추론 엔진을 사용해요. 저희는 NVIDIA에서 오픈 소스로 내놓은 FasterTransformer 엔진을 사용하고 있었는데, 이 오픈 소스 엔진에는 저희에게 필요한 일부 기능들이 없었어요. 하여 하이퍼커넥트® 내에서 모델 서빙을 전문적으로 수행하는 ML Platform팀과 함께 이 엔진을 원하는 용도에 맞게 수정해서 사용했습니다. 예를 들면, 답변 생성 과정에서 앞부분과 연속해서 중복되는 토큰들이 나올 경우 답변 퀄리티가 낮아지는 것을 발견했어요. 생성 과정에서 이를 사용하지 않도록 하는 구현이 필요했죠. 이를 위해 FasterTransformer 소스를 포크한 뒤, 이 기능을 추가해서 사용했습니다.

Q. Generative AI 스쿼드에서 논문도 많이 작성한 것으로 알고 있는데요. 작성한 논문 자랑도 해주세요!

Shuki 저희 스쿼드는 특히 일상 대화 분야에서 다양한 논문을 작성했는데요. 그 중 몇 가지 연구를 소개드릴게요. 저희가 생성 모델을 바탕으로 한 챗봇을 처음 서비스화하던 시점에는 지금처럼 생성 모델을 서빙하기 위한 최적화 엔진이 잘 발달되어 있지 않던 때였어요. 때문에 감당할 수 있는 수준의 비용으로 모델을 서빙하기 위해서는 다양한 최적화가 필요했어요. 이를 위해 저희 팀에서는 두 가지 방법의 최적화 기법을 연구했습니다.

Shuki 첫 번째 연구에서는 무겁고 느린 생성 모델을 직접 서빙하는 대신 이를 훨씬 가볍고 빠른 검색(Retrieval) 모델로 대체하여 서빙하는 방법을 제안했어요. 생성 모델보다 검색 모델을 사용하는 것이 훨씬 대화 성능이 떨어지기 때문에, 대화 성능을 올리기 위해 생성 모델의 지식을 검색 모델에 증류하기 위한 다양한 방법을 제안했습니다. 이 연구는 2021년 EMNLP 학회에서 Findings로 발표되었어요. (🔗참고: Distilling the Knowledge of Large-scale Generative Models into Retrieval Models for Efficient Open-domain Conversation, Nov 2021)

Shuki 두 번째 연구에서는 단순히 생성 모델을 사용하는 대신 검색 모델과 생성 모델을 섞은 ‘Exemplar-based Generation model’을 사용해서, 작은 사이즈의 생성 모델을 사용해도 좋은 대화 성능을 낼 수 있는 방법을 제안했습니다. 검색 모델과 생성 모델을 섞는 방법을 Retrieval-augmented generation 방법이라고 부르고, 관련해서는 RAG나 KIF등의 방법들이 널리 알려져 있어요. 그런데, 이 방법들을 저희가 풀었던 일상 대화 문제에 바로 적용하면 잘 학습이 되지 않아요. 일상 대화 문제에서 Retrieval-augmented generation 모델의 학습을 가능하게 하는 기법을 제안한 것이 이 논문의 핵심 포인트였죠. 이 연구는 ACL2022에서 열린 NLP4ConvAI라는 워크샵에 공개되었고, Outstanding Paper로 선정되었습니다. (🔗참고: Understanding and Improving the Exemplar-based Generation for Open-domain Conversation, May 2022)

Jeffrey 시애틀에서 열린 2022년 NAACL 학회에서도 연구를 발표했는데요.(🔗참고:Meet Your Favorite Character: Open-domain Chatbot Mimicking Fictional Characters with only a Few Utterances July, 2022) 실제 서비스에서 사용자가 챗봇의 캐릭터를 커스터마이즈 할 수 있는 방법을 개발하기 위해 진행한 연구였어요. 이 연구에서는 Pseudo Dialog Prompting(PDP)이라는 새로운 방법을 제안해, 캐릭터의 발언 몇 가지 예제만을 사용해서 챗봇이 특정 캐릭터를 흉내 낼 수 있게 하는 방법을 소개했어요. PDP는 검색 모델을 사용해서 캐릭터의 발언과 최대한 잘 맞는 유사한 맥락을 만들고, 이를 통해 캐릭터의 스타일을 잘 반영할 수 있는 프롬프트를 만들어요.

Jeffrey 최근 LLM 애플리케이션에서는 검색을 통해 필요한 정보들을 가져와서 프롬프트에 잘 녹여넣는 RAG 방식을 많이 사용하고 있습니다. 논문에 소개된 PDP는 캐릭터를 흉내내는 목적에 특화된 RAG 방법론이라고 해석할 수도 있을 것 같아요. 저희는 이 논문의 방법론을 확장해서 앞서 설명한 Picai 서비스의 커스텀 봇 제작 기능을 구현했는데, 어떻게 보면 필드보다 1~2년 정도 먼저 RAG 방법론을 서비스에 활용하고 있었다고 볼 수도 있겠네요. (웃음)

전 세계인이 주목하는 학회 NAACL 2022에서 발표 중인 하이퍼커넥터!
전 세계인이 주목하는 학회 NAACL 2022에서 발표 중인 하이퍼커넥터!

Q. Generative AI 스쿼드에서는 어떤 분들을 찾고 있나요? 인재상에 대해 짧게 공유해 주시면 좋을 것 같아요!

Shuki 저희 스쿼드는 서비스에 생성형 AI를 어떻게 잘 넣을지에 대한 고민이 주가 되는 만큼, 이 과정에 필요한 다양한 능력을 가진 분들을 모시려고 하고 있어요. 일단 머신러닝 지식을 기반으로 생성형 AI를 만들고, 이를 필요에 따라 더욱 발전시킬 수 있는 분이어야 하겠죠? 여기에 실제로 대규모 트래픽을 가진 서비스에 AI 모델을 통합시킬 수 있는 엔지니어링 능력을 지닌 분, 그리고 사용자들을 만족시키기 위해 AI를 어떻게 활용해야 하는지 서비스 관점에서 고민하실 수 있는 분이라면 금상첨화일 것 같아요. 생성형 AI로 실제 서비스를 만들어보셨거나 연구를 해본 분이라면 더욱 좋겠지만, 그렇지 않더라도 앞서 언급한 능력이 있는 분들이라면 빠르게 적응해서 좋은 결과를 내실 수 있으리라 생각합니다. 많은 분들의 지원 부탁드리겠습니다!

Generative AI 기술을 통해서 세상을 더 즐겁게 만들어나갈 분들을 모십니다!
Generative AI 기술을 통해서 세상을 더 즐겁게 만들어나갈 분들을 모십니다!
Global AI 경력 엔지니어 · PM 을 공개채용하고 있어요.
더 알아보기
다른 인터뷰 보러가기
ML Software Engineer 인터뷰
AI Platform Dev
AI 기술을 각 서비스에 원활하게 통합할 수 있는 플랫폼 개발 (모더레이션, 온디바이스 플랫폼 등)
Product Manager 인터뷰
AI Production
AI를 활용하여 쉽고 스케일러블하게 문제를 해결할 수 있는 플랫폼과 프로젝트 기획·운영
ML Engineer 인터뷰
Recommendation
나와 더 잘 맞는 사람을 찾게 해주는 User-User 추천 시스템
ML Engineer 인터뷰
Trust & Safety AI
서비스를 더 안전하게 만들기 위한 Vision/Audio/Text Content Understanding
ML Software Engineer 인터뷰
ML Application
AI 모델이 글로벌 각지의 유저에게 도달하도록 하는 모든 과정에서의 엔지니어링