AI친구 에이닷에게 말하는법 가르치고 있어요

인터뷰
AI친구 에이닷에게 말하는법 가르치고 있어요
[인터뷰] SK텔레콤 GLM모델링팀 김진님
2022. 08. 24 (수) 15:57 | 최종 업데이트 2022. 09. 27 (화) 15:24
"저녁은 뭐 먹을 거예요?”

SK텔레콤의 ‘에이닷(A.)’ 앱을 켜자, 캐릭터가 먼저 말을 걸어왔다. SK텔레콤이 지난 5월 선보인 인공지능(AI) 친구 '에이닷'이다. 이미 친숙한 AI비서와 다른 점이라면 캐릭터의 외모부터 목소리, 말투까지 골라 꾸밀 수 있다는 점이다. 말 그대로 비서보다는 친구를 지향한다. 일정을 등록해주고, 필요한 서비스를 찾아주는 것을 넘어, 내가 좋아할 만한 음악과 영화를 추천해주고, 끝말잇기나 수다를 떨며 함께 놀수도 있다. 그야말로 나만의 친구인 셈이다. 

이런 새로운 기술을 보면 일단 놀랍다. 내가 만나는 서비스는 '에이닷'이라는 캐릭터지만, 캐릭터가 세상의 빛을 보기까지 만들어 교육시킨 누군가가 있을테니까. 우리는 이들을 '개발자'라 부른다! 

이런 새로운 기술은 어떻게 만들어지는 걸까? 에이닷이 지금의 대화 실력을 갖게 된 데는 'SK텔레콤만의 장비'가 있었기에 가능하다는데, SK텔레콤 GLM모델링팀에서 에이닷의 언어 선생님 역할을 하고 있는 김진님에게 물었다. SK텔레콤 개발자들이 애용하는 업무 프로그램부터 에이닷의 미래까지. 
 
- 안녕하세요. 현재 SK텔레콤에서 어떤 일을 하고 계시나요?

SK텔레콤 GLM모델링팀의 김진입니다. 저는 인공지능 대화 서비스인 ‘에이닷’에서 대화를 가능하게 해 주는 언어 모델 개발 업무를 하고 있습니다.


-'GLM모델링'이라, 아무래도 개발자가 아니신 분들에게는 생소한 이름일 것 같은데요. 조금 더 자세히 설명해주신다면요? 

SKT의 인공지능 대화 서비스인 ‘에이닷’ 앱을 써 보셨나요? 앱을 실행해 에이닷 캐릭터에게 말을 걸면, 캐릭터가 말의 의미를 이해하고, 적절한 대화를 이어갑니다. 에이닷이 말을 이해하고 스스로 할 말을 만들어내는 것이 바로 언어 모델의 역할이죠. 저희 팀에서는 언어 모델을 잘 학습시키기 위해 좋은 데이터를 고르고 학습 환경을 조정하고 새로운 학습 방법을 연구하고 있습니다. 


-에이닷의 언어 선생님이라고 할 수 있겠네요. 굉장히 흥미로워보이는데요. 어떻게 이런 연구를 시작하게 되셨나요? 

사실 처음부터 언어 관련 분야로 시작한 것은 아니었어요. 예전부터 문법, 맞춤법, 표준어 등 언어에 흥미는 있었지만, 직업으로까지 생각하지는 않았어요. 프로그래밍에 흥미를 가진 것은 초등학교 3학년 때 컴퓨터 학원을 다니면서였죠. 어른이 되면 게임 개발자가 되고 싶었어요. 그래서 컴퓨터공학과에 입학했는데, 공부를 하다보니 인공지능 분야가 유망해 보이더라고요. 당시에는 지금처럼 인기있는 분야는 아니었지만 미개척 분야라서 앞으로 할 일이 많아 보였거든요. 그래서 대학원에 진학했습니다. 

졸업하고는 한동안 스마트폰 앱을 개발했는데, 옆 팀에서 하던 자연어 업무가 재미있어 보이더라고요. 당시 새로운 기술로 인공지능 스피커가 떠오르던 시기에 SK텔레콤에서 좋은 기회가 생겨서 옮기게 됐습니다. 
 
-처음 인공지능 스피커가 말하는 것을 듣고 깜짝 놀랐던 때가 떠오릅니다. 어쩜 그렇게 잘 알아듣고 적절한 대답을 해주는지 정말 신기하더라고요. 요즘에는 어떤 연구를 하고 계시나요? 

언어 모델은 아직 발전할 여지가 많이 있어요. 지금까지 개발한 모델은 기억력에 한계가 있었어요. 대화를 할 때 최근에 한 몇 마디만 기억하고 오래된 대화는 잘 기억을 못했죠. 최근에 이 문제를 극복할 수 있는 방법을 연구 중인데 긍정적인 결과가 나오고 있습니다. 개선한 모델이 상용화되면 에이닷이 사용자가 과거에 한 말까지 잘 이해하고 기억해서 적절한 응답을 할 수 있게 될거예요. 


-인공지능이 과거에 했던 이야기까지 기억해 대답을 한다니, 정말 놀라운데요. 세세한 대화까지 기억하고 이야기를 나누는 진짜 나만의 친구라는 생각이 들 것 같아요. 이런 새로운 기술들을 보면 '어떻게 이게 가능하지?' 싶거든요. 이런 새로운 기술은 어떤 프로그램을 활용해 만들어내는지도 궁금하고요. 인공지능, 언어모델 분야에 관심있는 분들이라면 어떤 기술을 잘 익혀 두는 것이 좋을까요? 

저희는 비주얼 스튜디오 코드(VS Code)를 주로 사용해서 개발하고 있습니다. 과거에는 무거운 유료 툴을 사용하는 경우도 많았는데 VS Code는 실행 속도가 빠르고 가격도 무료이기 때문에 매우 유용합니다. 현재 언어 모델 개발은 파이썬(python) 언어에서 딥러닝 프레임워크인 파이토치(pytorch)를 활용해서 하고 있어요. 아무래도 프로그래밍 언어와 프레임워크에 능숙하면 좋겠죠. 또 최신 논문을 읽고 구현할 필요가 있기 때문에 빠르게 배우시는 분이 잘 맞을 것 같습니다.


-실제 업무를 하시면서 추천하고 싶은 프로그램이나 툴이 있다면요? 

코딩을 도와주는 코파일럿(copilot)이라는 프로그램이 있어요. VS Code나 인텔리제이 등에 플러그인으로 붙어서 동작하는데요, 개발자가 코드 일부만 작성하면 나머지를 자동으로 완성해 줍니다. 최근에 유료화돼 아쉽지만 아마 많은 분들이 유료라도 사용할 것 같아요. 그만큼 유용하니까요. 

그밖에 VS Code에서 개발을 도와주는 도구가 여러 가지 있는데요, 파이썬 포매팅을 자동으로 맞춰주는 Black Formatter, 소스코드 관리를 도와주는 GitLens, 깃헙(GitHub) 활동을 VS Code에서 할 수 있게 해 주는 GitHub Pull Requests and Issues, 마크다운 문서를 편집할 때 미리보기를 보기 편하게 해 주고 정확한 서식을 맞추게 도와주는 Markdown Preview Enhanced와 markdownlint, CSV/TSV 파일을 읽을 때 각각의 열을 색깔로 구별해 주는 Rainbow CSV 등을 쓰고 있어요. 

터미널에서는 oh-my-zsh를 사용하는데 예전에 입력했던 명령을 기억했다 추천해 주는 zsh-autosuggestions이 매우 유용합니다. 좀 어렵나요? 하지만 개발자가 되고 싶은 분이라면 한번쯤 살펴보시면 분명 도움이 될 거예요. 
 
-요즘 개발자가 워낙 핫하게 떠오르다보니, 개발자를 꿈꾸는 분들 정말 많으시더라고요. 아마 김진님이 하시는 일을 보며 '나도 해보고 싶다'고 생각하시는 분들 많으실텐데요. 개발자가 되고 싶은 분들께 '이렇게 준비하라' 조언을 해 주신다면요? 

가장 중요한 것은 기본기인 것 같아요. 학생이라면 자료구조, 알고리즘, 컴퓨터구조 등 기본을 다지는 것이 좋습니다. 앞으로 새로운 기술을 배우고 난관에 부딪혔을 때 탄탄한 기본기가 있으면 문제의 원리를 스스로 파악하고 해결할 수 있을 거예요. 

프로그래밍 언어를 한 개 정도는 깊게 익히는 것이 좋습니다. 파이썬과 같은 스크립트 언어를 익혀두는 것도 도움이 되죠. 당장 취업을 앞두고 있다면, 가고 싶은 회사들의 채용 공고를 보고 어떤 기술을 요구하는지 확인하세요. 일단은 업계에서 인기 있는 기술을 익히는 것이 유리합니다.

주니어 개발자는 개발자의 마음가짐에 대한 책들을 읽으면 좋을 것 같아요. <실용주의 프로그래머>, <클린 코더>, <그로스 디벨로퍼>, <이펙티브 엔지니어> 등의 책을 추천합니다. 현재 하고 있는 업무 분야의 기술을 깊게 익히면서 인접 분야의 기술을 익히면 T자형 인재로 성장하는 데 도움이 될 것입니다.

개발 능력뿐 아니라 커뮤니케이션 능력도 중요하죠. '상대방의 의도를 파악하고 내 의도를 전달한다'. 단순해 보이는 능력이죠. 하지만 함께 회의를 하고 나서도, 서로 이해한 것이 다른 상황을 겪다 보면 무시할 수 없을 거예요. 내 의도와 의견을 정확히 전달하고, 상대방의 이야기를 정확히 파악하는 것도 연습과 노력이 필요해요. 무엇보다 중요한 개발자의 역량 중 하나라고 생각해요. 
 
-개발자들은 조직을 선택할 때 '개발 문화'를 가장 중요하게 고려한다고 해요. 또 개발을 더 쉽고 빠르게, 수준높게 하기 위해서는 지원과 장비도 무시할 수 없을 테고요. SK텔레콤의 개발 문화는 어떤지 궁금한데요. 장비 지원 등은 만족할 만한 수준인가요? 

최근 개발자 지원을 강화하고 있어요. 개발자를 위한 커뮤니티인 데보션(devocean.sk.com)을 통해 사내외 개발자들과 기술 교류가 활발히 되고 있어요. SK텔레콤 주도로 만들었지만, SK그룹 다른 계열사 구성원, 그룹 밖 개발자들도 들어올 수 있죠. 또한 Tech HR 부서가 따로 있어서, 개발 프로그램이나 도서 구매를 지원해 줍니다. 

저희는 슈퍼컴퓨터*를 보유하고 있습니다. 초거대 AI를 학습하기 위해 활용하고 있죠. 최근의 언어 모델은 규모가 커서 콜랩과 같은 무료 장비로 학습하기는 사실상 불가능해요. 업무적으로 슈퍼컴퓨터가 있다는 것은 매우 다행스런 일이죠. 

*슈퍼컴퓨터: SK텔레콤은 초거대AI 모델 성능 강화를 위해 전 세계 슈퍼컴퓨터 순위 85위에 오른 'SKT타이탄'을 보유 중이다. 국내에서 슈퍼컴퓨터를 자체 운영하는 회사는 삼성전자, 네이버 그리고 SK텔레콤 세 곳뿐. 기존 고성능 컴퓨터에서 일주일 넘게 걸일 AI모델학습도 슈퍼컴퓨터는 몇 시간 만에 완료할 수 있다고. 
 

-슈퍼컴퓨터라니 SF영화에서 봤던 그런 장비 아닌가요? 슈퍼컴퓨터를 직접 활용해 일한다니, 개발자 특히 AI업무를 하는 분이라면 누구나 욕심날 환경일 것 같습니다. 상상했던 것을 실제로 만들어낼 수 있는 환경과 장비를 갖췄다는 얘기일 테니까요. 그런데 SK텔레콤은 재택근무를 자유롭게 할 수 있는 것으로 유명하잖아요. 아무래도 집과 회사의 업무 환경은 차이가 날 수밖에 없을 것 같은데, 어떤가요? 

저희팀은 대부분 개발을 서버에 접속해서 원격으로 하기 때문에 근무 장소는 별로 중요하지 않아요. 다만 집중을 위해서 집에 업무 공간을 따로 마련해두고는 있죠. 회사에서 집에서도 문제없이 근무할 수 있도록 장비구입비를 지원해줘요. 덕분에 모니터를 한 대 구매해 사용하고 있습니다. 

물론 아무래도 집이다 보니 개인적으로 마련한 장비가 있긴 해요. 예를 들어 개발을 할 때 모니터는 두개 이상 있으면 훨씬 편리하거든요. 한 화면에는 개발 도구를, 다른 화면에는 업무에 참고할 수 있는 웹 페이지나 업무용 메신저 등을 띄워 놓는 식으로요. 또 아무래도 앉아있는 시간이 길다 보니 높이 조절이 되는 스텐딩 데스크가 개인적으로 편하더라고요. 회사에서 이런 추가 장비 지원까지 해주면 좋을 것 같긴 해요. 이 자리를 빌려 아쉬운 점을 살짝 말해보자면요. 에이닷이 잘 되면 가능하겠죠? 더 깜짝 놀랄 에이닷이 곧 나올 겁니다. 기대해주세요. 
저작권은 SK텔레콤에 있으며, 무단 배포를 금지합니다
#기업스토리