이 아티클은 <AI 시대, 인재로 거듭나기> 시리즈의 1화입니다. “세상에 영향력을 끼치고 싶어서 AI/LLM 엔지니어가 됐습니다.” 의대를 준비하던 생명공학도는 프로그래밍에 가슴이 뛴다며 스스로 생각하는 기계를 만들기 위해 의학전문대학원이라는 꿈을 과감하게 포기한 후, 프로그래머로 커리어를 전환했다. 그리고 현재 그는 여전히 생각하는 기계(AI)를 개발하기 위한 과정을 재미있게 즐기는 중이다. (현) 김성주 네이버 클라우드 AI 리서치 엔지니어, 테크 리드 (🔗링크드인) 네이버 AI 리서치 엔지니어, 테크 리드 Nomad Connection AI Researcher 내가 한 고민이 누군가의 편리함이 될 수 있다면 Q. 처음부터 AI/LLM 엔지니어를 꿈꾼 것은 아니라고요. 어떤 계기로 AI 분야에 관심을 갖게 되신 건가요? 원래는 생명공학도였어요. 의학전문 대학원이 한창 생기던 입시 시절, 의학전문 대학원에 가려면 생명공학과가 가장 유리하다고 해서 선택하게 된 거죠. 그런데 컴퓨터는 예전부터 워낙 좋아했어요. 전자기기에 관심이 많아서 아이패드를 활용해 책을 읽거나 필기를 하는 등 최신 기기 활용하는 걸 즐겼거든요. 그때는 아이패드 같은 전자기기를 자주 활용하던 때가 아니었는데도 불구하고요. 그러다 한번은 사용하던 필기 앱에 불편함을 자주 느끼게 되면서 ‘직접 앱을 개선하거나 그게 안 된다면 내가 직접 앱을 만들어 보면 어떨까’란 생각을 하게 됐어요. 자연스럽게 프로그래밍에 관심을 갖게 됐고요. 그 과정에서 개발에 가장 기초로 활용되는 C언어를 처음 접하게 됐고, C언어를 배우면서 프로그래밍을 너무 잘하고 싶다는 생각에 가슴 깊숙한 떨림도 느끼게 됐어요. 그래서 의학전문대학원에 가려던 시험 준비도 중단하고, 프로그래머가 되기 위해 AI 대학원으로 진학하게 됐죠. Q. 생명공학도에서 AL/LLM 개발자라니, 쉽지 않은 선택이셨을 것 같아요. AI 대학원 졸업 후에는 어떤 일들을 해보고 싶으셨는지도 궁금해요. 대학원의 경우 처음에는 컴퓨터 비전 대학원으로 진학했는데요. 중간에 네이버와 카카오 같은 빅테크 기업이 많이 연구하고 활용하는 ‘자연어 처리 분야’로 연구 분야를 변경했어요. 그 당시 컴퓨터 비전은 공장 자동화 같은 분야에서 많이 활용됐기 때문에 주로 지방에 공장이 많았는데, 저는 빅 테크 기업에 가고 싶었거든요. Q. 지금 네이버에 다니고 계시니, 원하던 목표를 이룬 셈이네요(웃음). 그런데 AI 개발자는 구체적으로 어떤 직무들로 나눌 수 있는지 궁금합니다. AI 개발자로 묶을 수 있는 스펙트럼은 굉장히 넓은데요. 크게 네 가지 직무를 소개해 볼게요. 💻 AI 리서치 과학자(AI Research Scientist) AI 리서치 과학자는 기본적으로 선행 연구를 위한 실험과 논문 작성이 주된 업무예요. 그러나, 회사에 따라 제품에 기여하는 연구에 더 초점을 맞춘다거나 제품에 바로 활용할 수 있는 AI 모델을 만들기도 하죠. AI 리서치 과학자가 되기 위해서는 박사 학위가 있어야 하고, 석사나 학사의 경우에는 논문 실적이 좋아야 하는데요. AI 학회에서 논문 심사가 통과(Accept) 돼야 자격 조건이 주어집니다. 💻 AI 리서치 엔지니어(AI Research Engineer) AI 리서치 엔지니어는 제품을 위한 모델 개발과 연구에 넓게 발을 걸쳤다고 볼 수 있어요. 실제 서비스에 활용될 모델을 만들고, 서비스 내부에서 일어나는 상황과 정보를 활용해 모델 개선 및 실험하는 역할을 하죠. 동시에 예상치 못한 문제들을 해결하기 위한 아이디어를 고민하면서 실험을 통해 서비스를 개선하는데, 실험의 내용이 참신하다고 느끼면 해당 내용을 바탕으로 논문 작성을 하기도 합니다. AI 리서치 엔지니어의 경우 학/석/박사 기준은 따로 없지만, 깃허브(Github)에 AI 연구 관련 실적을 올리거나 논문 작성 실적 및 연구 경험이 있어야 회사에 지원할 수 있는 자격 조건이 주어집니다. 지원 요건이 높지 않은 만큼 채용 기회가 많을 거라고 느낄 수 있지만, 업계 내에서 GPU 병목 문제로 인해 AI 연구 자원이 부족해 실험에 제한적인 환경이 잦아서 생각보다 많은 채용을 진행하고 있지는 않아요. 💻 AI 앱 개발자(AI Application Developer) AI 앱 개발자는 기존에 공개돼 있는 LLM 모델을 활용해 프롬프트 엔지니어링(Prompt Engineering), 플로우 엔지니어링(Flow Engineering, ReACT 등의 Agent를 만들기 위한 프롬프팅) 등의 방법을 활용해 RAG(검색 증강 생성) 등의 체인을 만들거나 벡터 검색 모델 등 AI 서비스를 프로덕트화하기 위한 개발 업무를 수행합니다. 시장 수요가 가장 많으며, AI 활용이 필요할 때 어떤 AI를 활용해야 하는지 판단할 수 있는 능력과 이를 판단하기 위한 넓은 모델의 스펙트럼의 이해가 필수입니다. 특히 AI 앱 개발자는 일반 개발자와 달리 본인이 만든 제품의 평가도 수행할 수 있어야 합니다. 단지 AI API를 사용해서 서비스를 만들었다는 관점에서 벗어나, 계속 성능을 개선할 수 있는 방법을 이해하고, 개선된 부분을 측정하기 위한 다양한 모델 평가 방법도 알고 있어야 합니다. 💻 MLOps/LLMOps 엔지니어 AI 모델을 배포하는 역할을 수행하는 개발자라고 생각하시면 됩니다. 챗GPT도 계속 새로운 버전이 공개되듯, 새로운 AI 모델이 배포되면서 실제 서비스에 반영될 수 있게 서비스를 주기적으로 관리할 수 있는 시스템을 만드는 역할을 수행합니다. 과거부터 현재까지 상황에 대한 시각화를 통해 데이터를 어떻게 처리할지 고민하며, 안정적인 AI 서비스를 운영하기 위한 역할을 수행합니다. Q. 다양한 AI 개발 직무 중 AI 리서치 엔지니어가 되신 이유가 있다면요? 저는 어떤 현상의 근원을 탐구하고, ‘왜’라는 것을 물으며 본질을 탐구하는 걸 좋아합니다. 그렇기에 연구와 실험하는 것도 좋아하죠. 특히 AI 리서치 엔지니어는 LLM 분야에서 스스로 생각하는 기계를 만들어보고 실험할 수 있기 때문에 선택하게 됐어요. 그뿐만 아니라 AI 리서치 엔지니어는 자신이 만든 AI 서비스로 세상에 영향력도 끼칠 수 있어요. 한번은 네이버 클로바 스피커에 들어가는 AI 시스템을 개발한 적이 있는데요. 주변 친구들이 ‘클로바 스피커 덕분에 삶이 여유로워졌어.’란 이야기를 할 때면 굉장한 뿌듯함을 느끼기도 했어요. 요즘은 사내 깃허브 코파일럿(Github Copilot) 같은 코드 생성 AI 서비스를 개발하는 중이에요. 동료 개발자분들이 깃허브 코파일럿이 아닌 제가 만든 코드 생성 AI를 활용하고 있는데, 이런 영향력을 끼칠 수 있다는 게 너무 즐거워요. 공유하는 게 자연스러운 네이버 개발 문화 Q. 네이버에서 네이버 클라우드로 근무지를 변경하셨고, NLP Engineer에서 LLM Engineer로 직무를 변경하셨어요. 회사와 직무를 바꾸게 된 이유가 있으신가요? 먼저 NLP와 LLM에 대해 간단하게 말씀드리자면, NLP는 컴퓨터가 인간의 언어를 이해하고 해석 및 생성할 수 있게 하는 기술이고요. LLM은 NLP의 한 분야로, NLP에 소요되는 데이터보다 훨씬 많은 데이터를 활용하기 때문에 수천 권의 책을 읽고 다양한 주제로 논의할 수 있는 전문가처럼 자연스럽게 글을 쓰고 이해할 수 있는 능력을 가진 기술을 말합니다. 즉, NLP라는 개념의 하위에 LLM이 존재하기에 현재 하는 일이 이전에 하던 일들과 크게 다르지 않다고 생각해요. 그리고 네이버에서 네이버 클라우드로 옮기게 된 계기는 전사적인 조치였어요. 클로바, 파파고와 같은 AI 조직 모두 네이버에서 네이버 클라우드로 옮겨졌고요. Q. 네이버의 개발 문화는 어떤가요? AI 개발자들의 개발 능력을 최대치로 올릴 수 있게 도와주는 개발 문화가 있는지 듣고 싶어요. 네이버는 AI 개발자들이 본인의 실험했던 경험은 물론이고, 직/간접적인 모든 경험까지 모두 공유하고 피드백하는 문화를 가지고 있어요. 외부의 연사들을 초청해 교육적으로 개발 역량을 키울 수 있는 환경도 마련하고 있고요. 예를 들어, 사내 기술 공유 행사인 ‘엔지니어링 데이’를 열거나 국내 최대 규모의 개발자 콘퍼런스 ‘Deview’를 주관하며 AI 개발 경험과 실험 경험을 자유롭게 공유할 수 있도록 힘쓰고 있어요. 이런 내용들은 나중에도 볼 수 있도록 아카이빙해서 언제든 공부할 수 있게 시스템적으로 구축이 잘돼 있답니다. Q. 네이버가 자체 LLM 모델인 하이퍼클로바 X(Hyperclova X)를 개발한 이유가 궁금합니다. 물론 오픈 AI의 챗GPT API를 활용해도 되지만, 네이버가 자체 LLM 모델을 만든 이유는 국내 AI/LLM 시장의 주도권과 외부 기술 의존도를 탈피하기 위해서예요. 자체 LLM을 개발하지 못한다면 AI 자동화 서비스를 개발하면서도 해외 기술에 의존할 수밖에 없고, 비용 또한 계속 지불을 해야 하기 때문에 직접 LLM 모델을 개발할 필요가 있었죠. 네이버의 LLM 모델이 나온 이후 이를 활용한 다양한 서비스가 등장했고, 그 여파로 AI 개발자 채용도 많이 늘어나면서 선한 영향력도 끼쳤고요. AI와 LLM은 우리 삶을 어떻게 바꿔 나갈까 Q. AI & LLM은 주로 어떤 분야에서 활용되나요? LLM는 대다수의 문제를 해결할 수 있기도 하고, LLM을 사용하면 생산성을 높일 수 있기에 현존하는 거의 모든 기존 AI 기능에 붙어 활용할 수 있다고 봅니다. 예를 들어, 뉴스 키워드를 추출할 때 LLM에 프롬프팅을 통해 뉴스 키워드 추출 명령만 내리면, 추출을 위한 AI 모델을 만들지 않아도 돼요. 어떤 특정 장문의 문장을 요약하기 위한 모델 역시 이전에는 직접 한 땀 한 땀 만들어야 했다면, 이제는 LLM에게 질문을 던지고 바로 답변을 얻을 수 있죠. LLM 덕분에 AI 기능을 만드는 게 수월해졌어요. Q. 성주 님은 다양한 활용 분야 중 코드를 생성하는 LLM 분야에서 개발 및 연구를 하고 계시는데, 혹시 해당 분야를 선택하시게 된 계기가 있나요? 챗GPT가 나온 이후 네이버 클로바의 많은 조직이 챗GPT 같은 서비스를 집중해서 개발하게 됐어요. 챗GPT의 가장 큰 장점 중 하나는 코드 생성에 있어 특출난 능력이 있다는 건데요. 저 역시 이전부터 AI를 활용해 코드를 생성하는 분야에 관심이 있었는데, 이런 관심을 잘 알고 있는 네이버 클라우드에서도 제게 코드 생성 LLM 개발 분야를 맡아 업무를 진행해 달라고 요청이 들어왔기 때문에 본격적으로 시작하게 된 거예요. 그러니 특정한 계기가 있다기보다는 ‘나에게 온 기회를 잘 잡았다’라고 표현하는 것이 맞겠네요. Q. 코드 생성 LLM 분야의 트렌드와 흐름은 어떤가요? 오픈 AI의 GPT-3 모델이 등장하게 되면서 LLM이 코드를 생성할 수 있음을 이해하게 됐어요. 그래서 특정 코드를 작성했을 때 그다음 적절하게 작성해야 하는 코드가 어떤 코드인지 알려주는 추천 기능이 먼저 개발됐죠. 이후 챗GPT가 등장하면서 AI와 소통하는 방식이 대화형으로 바뀌었고, 실시간으로 개발 문제를 도와줄 수 있게 질문을 하면 바로 응답도 받을 수 있게 됐어요. 기술이 발전함에 따라 코드 인터프리터(Code Interpreter) 기능이 등장하면서 LLM 자체 기술이 생성한 코드를 직접 실행하고 분석하는 과정까지 가능해졌고요. 현재는 LLM이 직접 특정한 프로그램 개발 요청을 받게 되면, 브라우징부터 실행→결과→보고 분석 프로그램까지 한 번에 구성해 하나의 소프트웨어까지 직접 만드는 것도 가능해요. 예시로 하나 설명드리자면, 데빈(Devin)이라는 AI 소프트 엔지니어가 등장했는데요. 일반적으로 우리가 알고 있는 챗GPT와는 약간의 차이가 있어요. 아래 표를 보면 이해가 쉬울 겁니다. AI 엔지니어 데빈과 챗GPT의 차이점을 설명한 표 (제공 : 객원 에디터 L / 제작 : 원티드) 표를 보시면 아시겠지만, 이제 복잡한 엔지니어링 작업을 자율적으로 처리하면서, 정확하고 효율적으로 수천 가지 개발 업무와 관련된 결정을 내릴 수 있게 됐어요. Q. 개발한 LLM 모델을 서비스화하기 위한 상품화(Productization) 과정에서 오류 혹은 문제들이 발생하기도 하는데, 이때 LLM 모델에서 고려해야 할 요소들이 있나요? 잘하는 측면과 잘하지 못하는 측면을 명확히 구분해서 사용자(고객)에게 안내할 수 있어야 해요. LLM은 답변의 정확성과는 별개로 무조건 답변할 수 있는 능력을 갖고 있는데요. 파이썬(Python)이나 자바스크립트(Javascript) 기반의 개발 언어에서는 정확도가 더 높은 코드 생성 능력을 보일 수 있는 반면, 다른 개발 언어에서는 그보다 약한 정확도의 답변을 낼 수도 있거든요. 그러니 이러한 포인트를 사용자(고객)에게 사전에 인지시켜야 하겠죠. 또한, LLM 모델을 평가하는 것도 중요합니다. 과거 AI 모델에서는 모델 평가 시 질문에 대한 답변의 정확도를 찾을 때 범주 내에서 답을 찾을 수 있어서 AI 모델이 올바른 답변을 했는지 아니었는지 정확하게 이해할 수 있었어요. 그러나, 자연어라는 것은 어떤 질문에 대한 정답을 만드는 과정이 쉽지 않습니다. LLM 모델이 만든 정답과 내부에서 합의한 정답을 비교했을 때, 어떤 답변이 정확한지 판별하기 어렵거든요. Q. 어떨 때 답변의 정확도를 판별하기 어려운 건가요? 예를 들어 ‘오늘 날씨 어때요?’라는 표현을 영어로 번역해 본다고 가정해 볼게요. A : What’s the weather like today? B : How's the weather like today? 위 두 문장 모두 날씨가 어떤지 묻는 의미를 가지고 있습니다. 그러나 A는 ‘What’이라는 의문대명사를, B는 ‘How’라는 의문 부사를 사용했죠. 이처럼 의미는 같지만, 사용하는 단어가 다를 경우 A와 B 중 어떤 답변을 더 맞는 답변이라고 판별해야 할지 기준을 정하기가 쉽지 않습니다. 이런 어려움을 해결하기 위해 어떤 LLM 모델의 응답이 더 좋은지 평가하는 연구들이 최근 많이 진행되고 있습니다. 그중에는 ‘챗봇 아레나(Chat Arena)’라는 방법론이 있는데요. 위의 예시처럼 A와 B 영어 표현 중 어떤 표현이 영어로 번역됐을 때 자연스럽거나 혹은 더 정확하다고 느껴지는지 사람들에게 선택하게 해 모델을 경쟁시키는 거예요. 그럴 경우 더 많은 선택을 받은 모델의 표현이 정답으로 여겨지기도 하죠. 응답하는 표현 방식이 자연어이기 때문에 기계적이지 못하고 더욱 복잡한 경우들도 있어서 챗봇 아레나 외에도 다양한 평가 방법론이 계속해 등장하는 중이에요. Q. 코파일럿(Copilot), 소스그래프(Sourcegraph), 듀엣 AI(Duet AI for Developers) 등 다양한 코드 생성 LLM 서비스들이 있죠. 이러한 서비스들과 비교할 때, 성주 님이 연구하고 계신 코드 생성 LLM 서비스의 장점은 무엇이라고 생각하시나요? 네이버 하이퍼클로바 X는 다른 코드 생성 LLM들과 다르게 GPU의 제약 사항에 있어 영향을 덜 받기 때문에 코드 자동완성 시 더 좋은 모델을 활용할 수 있어요. 구글이나 코파일럿의 경우 전 세계 모든 개발자들이 활용하는 LLM이라서, 부하를 처리하기 위한 GPU 자원이 많이 소비되기 때문에 보통 저렴하거나 좋지 못한 성능의 LLM 모델을 활용하죠. 그러나 네이버는, 네이버 개발자 모두가 사용한다고 해도 수천 명 내외이기 때문에 트래픽을 충분히 견딜 수 있어서 안정성은 물론이고, 성능 측면에서도 더 높습니다. 또한, 아직 개발 전이긴 하지만 곧 사내 정보를 이해하는 AI도 제공할 예정이에요. 그렇게 되면 다양한 코드 생성 LLM 서비스들과 다르게 사내 Custom 코드 생성 LLM 서비스도 개발 가능합니다. 사내에서 만들어진 데이터를 가지고 모델 성능을 올려 더 정확하게 코드 추천도 가능하죠. 결국 서비스들에서 나온 데이터가 모델의 성능 향상에 도움이 되면서 사용자 맞춤 서비스를 만드는 데 보다 적합한 역할을 수행할 수 있을 거예요. Q. 후배 LLM 개발자분들께 말씀해 주시고 싶은 한 마디가 있다면 무엇일까요? 첫 번째, LLM도 머신러닝이기 때문에 머신러닝의 기본기를 잊지 않고 수행하는 것이 중요합니다. 많은 AI, LLM 신기술이 범람하다 보니 최근 공개되는 여러 연구, 실험들에서는 기본적인 부분을 많이 놓치는 것 같거든요. 하지만, LLM도 머신러닝이기 때문에 언제나 머신러닝의 기본기를 잊지 않고 실험을 하는 것이 중요해요. 평가 지표 설정, 학습 데이터 양에 따른 성능 커브 그리기 등 기본기를 먼저 지키며 문제를 해결하는 것이 정답에 가까워지는 지름길이에요. 두 번째, 데이터 센트릭 어프로치(Data centric approach)가 효율이 가장 좋습니다. 어떤 문제를 AI로 해결할 때, 모델 구조나 학습 방법을 바꾸는 것보다는 ‘어떻게 데이터를 더 빠르게 획득할지’ ‘데이터를 어떻게 2배 또는 10배로 수집할지’ ‘어떻게 데이터의 품질을 높일지’를 고민하고 적용하는 것이 가성비 관점에서 더 유리할 거예요. 세 번째, 문제를 정의하는 능력을 키우세요. 아시다시피 LLM은 프로그래밍 문제를 해결하기 위한 툴이에요. 과거 프로그래밍은 어셈블리, C언어 등의 로우 레벨(low level)로는 배우기 어려웠고, 접근하기도 어려웠습니다. 하지만, 요즘은 초등학생도 파이썬을 배우고, 여러 가지 프레임워크들이 출현하며 프로그래밍 접근 자체가 쉬워졌어요. AI 덕분에 많은 사람이 쉽게 프로그래밍이라는 툴을 활용해서 문제 해결을 할 수 있게 됐죠. 그러니 ‘문제 해결’ 능력은 기본적으로 가지고 있어야 합니다. 이제 무엇이 문제인지 ‘문제 정의’하는 능력이 더 중요해질 거예요. 문제 정의 능력이 다른 사람과 나를 차별화하는, 변별력을 높일 수 있는 능력이 될 거라 생각해요. 질문에 대한 답변을 잘 하는 것보다 질문을 잘하는 능력이 더 중요해진다는 것이죠. AI 리서치 엔지니어의 퇴근 후 일상 Q. 얼마 전 콘퍼런스 연사로서 발표를 하셨다고요. 회사 밖에서의 성주 님 모습이 궁금합니다. 때때로 KRNET이라는 정보통신산업진흥원에 논문을 발표하거나 현재 연구하고 있는 분야인 코드 생성 LLM의 트렌드를 공유합니다. 지난 2월에는 교육 서비스 플랫폼 패스트캠퍼스가 주최한 AI 콘퍼런스 2024 Gen Con에 연사로 참여해 코드 생성 LLM의 이해부터 현재 흐름에 대한 발표도 했고요. Q. 연구나 강연 외에 다른 취미가 있으신가요? AI와 개발 관련 영상들을 보면서 학습하고 정보를 습득하는 게 저의 즐거움이에요. 최근에는 경제 유튜브 채널 <***나혼자부자***>에 올라온 콘텐츠를 즐겨 보면서 경제 공부도 하고 있네요(웃음). Q. 성주 님께 AI/LLM의 의미는 무엇인가요? 사실 제 MBTI가 엄청난 ‘N(직관형)’이라 근원을 탐구하는 걸 즐겨요. 좀 추상적인가요? 평소에도 ‘왜’라는 궁금증을 가지며 사물의 본질을 생각하곤 하거든요. 사실 어렸을 때부터 ‘인간이 왜 존재하는지’ 더 나아가 ‘인간의 뇌는 기계적으로 동작하거나 영혼을 통해 동작하는 걸까?’ 같은 궁금함을 가지고 있었어요. 그런데, AI/LLM을 연구하기 시작하면서 ‘지능이란 건 신이 없어도 개발할 수 있는 게 아닐까’란 생각을 하게 됐죠(웃음). 어찌 보면 AI/LLM은 저의 어릴 적 궁금함을 풀어주는 만능열쇠 같기도 하네요. LLM을 연구하다 보면, 인간의 뇌가 어떻게 동작하는지 유추가 되기 때문에 새로운 사실을 깨닫는 순간이 많은데 저는 그 순간이 즐거워요. 그래서 이 일이 여전히 재밌는가 봅니다. 👉 <AI 시대, 인재로 거듭나기> 시리즈 보러 가기 글 객원 에디터 L 사진 김성주 제공