마키나락스는 2022년을 맞이해 새로운 성장 모멘텀을 준비하고 있습니다. 새로운 글로벌 스탠다드를 제시할 AI 프로덕트 ‘마키나락스 링크(Link)’와 ‘마키나락스 런웨이(Runway)’를 연내 잇달아 출시하며 글로벌 테크 리더로의 도약을 시작할 예정인데요.

이 중 Link는 베타 테스트를 마치고, 오는 3월 출시를 앞두고 있는데요. Link는 주피터(Jupyter) 노트북 환경에서 작성한 머신러닝 관련 코드 스크립트를 MLOps에서 활용 가능한 파이프라인으로 전환해주는 도구입니다. 데이터 사이언티스트가 익숙하지 않은 K8S 지식 등 MLOps 활용을 위한 기술적 허들을 제거하고, 파이프라인/셀 단위 결과물 및 피드백 공유 등의 기능을 탑재해 현재 64%에 불과한 Jupyter 결과물의 재사용 비율을 크게 증가시킬 것으로 기대되고 있습니다.

오늘은 마키나락스의 머신러닝 모델 개발 솔루션 Link를 만드는 MLOps제품화팀 엔진 파트에서 함께 하고 있는 휘연 님의 인터뷰를 준비했습니다. 휘연 님은 마키나락스에서 전문연구요원으로 첫 커리어를 시작해, MLOps 엔지니어로서 Link 제품을 개발하며 “사용자와 소통하는 제품을 만드는 것에 보람을 느끼고 있다”고 하는데요. 지금부터 휘연 님의 이야기를 만나보세요.

휘연 님은 입사 전 어떤 분야를 연구하셨나요?

저는 대학원에서 진화 연산(Evolutionary Computation) 을 이용한 최적화 분야를 연구했습니다. 진화 연산은 유전 알고리즘, 진화 전략, 유전 프로그래밍을 포함하는 학문 분야인데요. 컴퓨터 과학의 다양한 분야 중 인공지능에서 세분된 분야로 볼 수 있습니다.

학업 외적으로는 모교 학우들을 대상으로 카카오톡 플랫폼을 활용한 알림 챗봇 서비스를 운영해본 경험이 있어요. 서비스 시작 당시, 학교 시스템이 모바일을 지원하지 않아 모든 공지를 PC로 확인해야 하는 불편한 환경이었어요. 강의실에 도착해서 휴강된 걸 알게 되는 것도 다반사였죠. 이러한 시스템의 불편을 개선하고자 수강하는 강의의 공지사항과 과제 등 다양한 정보를 실시간으로 알려주는 챗봇 서비스를 4년간 운영했었습니다.

마키나락스에 합류하게 된 계기는 무엇인가요?

다른 회사에서 전문연구요원으로 일하고 있던 학교 동기를 통해 마키나락스를 알게 되었어요. 그 친구가 잡 포털을 보다가 괜찮은 회사인 것 같다고 추천을 해주더라고요. 저도 살펴보니 업무도 재미있을 것 같고 문화도 괜찮을 것 같아 홈페이지를 통해 지원해 입사하게 됐습니다.

처음에는 MLOps Platform팀의 MLOps 엔지니어로 조인을 했었는데요. 예전에 AD Kit(Anomaly Detection Kit)가 기획됐을 때 API 관련 협조 요청이 있어서 그 업무를 하다가, 현재는 MLOps제품화팀에서 일하고 있어요.

MLOps제품화팀은 무슨 일을 하나요?

저희는 지금 Link라는 제품의 출시를 앞두고 있어요. Link는 데이터 사이언티스트가 친숙한 환경에서 쉽고 빠르게 파이프라인 및 모델을 개발하고, 공유와 협업을 할 수 있도록 돕는 툴이라고 말씀드릴 수 있는데요. 크게 기획, 프론트엔드, 백엔드, 엔진 파트로 나뉘어 일하고 있는데, 저는 엔진 파트에서 Link 제품의 기능을 위한 Python 커널 및 프론트와 통신하는 부분을 구현하고, 제품의 빌드와 배포를 담당하고 있습니다.

MLOps제품화팀의 개발문화는 어떤가요?

MLOps제품화팀은 제품을 만드는 팀이다 보니 ▲사용자의 pain points를 해결하고 사용자 경험을 개선하는 제품을 만드는 것 ▲사용자가 비용을 지불하고 살 수 있는 제품을 만드는 것을 목표로 삼고 있습니다.

공통의 목표 아래 저희 팀에는 활발히 아이디어를 공유하고, 적극적으로 질문하고, 서로 도와주는 분위기가 형성돼 있어요. 일하면서 이슈가 생겼을 때는 빠르게 공유해서 긍정적으로 마인드로 함께 해결책을 찾습니다. 공유하는 것을 고민하기보다는 공유한 다음에 고민하자는 것이 저희 팀의 그라운드룰이에요.

마키나락스에서 커리어적으로 성장했다고 느끼는 포인트가 있다면요?

대학원에서 연구하는 것도 보람 있는 일이었지만, 저의 개인적인 성향상 사용자가 있는 상용 서비스가 더 흥미를 느끼는 것 같아요. 앞서 말한 챗봇 서비스의 운영을 종료할 때 이용자들이 ‘덕분에 편하게 학교에 다닐 수 있었다’고 남겨준 댓글을 보면서 보람 있다고 느꼈어요. 그래서 전문연구요원 복무가 끝난 이후에도 사용자들과 소통할 수 있는 업무를 하고 싶습니다.

예전에 개인적으로 서비스를 운영했을 때는 배포하고 유지·보수하는 과정이 조금 서툴렀던 부분이 있는데, 마키나락스에서 실제 제품을 개발하며 효율적으로 자동화하고 개선하는 방법을 연구하며 조금 더 성장한 것 같아요. 그리고 출시를 앞둔 제품의 개발에 참여했다는 것 자체도 개인적으로 큰 커리어가 되리라 생각합니다.

업무 외적으로 만족하는 부분은 어떤 것이 있을까요?

회사 분위기 자체가 굉장히 젊은 분위기예요. 나이에 상관없이 주니어들도 시니어들도 함께 다양한 소모임에 참여하며 역동하고 있다는 느낌을 받고 있어요. 또한, 궁금한 것이 있으면 적극적으로 물어보고, 적극적으로 도와주는 분위기가 정말 좋다고 생각합니다.

또 마키나락스의 사옥은 강남대로에 위치하고 있는데요. 지하철도 가깝고, 버스 노선도 매우 많아서 교통이 편리하거든요. 개인적으로는 집과의 출퇴근 거리가 가까운 것도 정말 좋습니다. (웃음)

어떤 분들이 MLOps제품화팀에서 함께 했으면 하시나요?

현재에 만족하지 않고, 사용자들이 간지러워할 만한 부분을 찾고 긁어줄 수 있는 방법을 아는 분이면 좋을 것 같습니다. 저희 팀은 데이터 사이언티스트가 더 쉽고 빠르게 데이터를 분석하고 모델을 개발하도록 돕는 툴을 만드는 팀이거든요. 툴을 만드는 팀인만큼, 사용자들의 불편함을 고민하고 어떻게 하면 개선할 수 있을지 아이디어를 함께 나눌 수 있는 분과 함께 하고 싶습니다.

또한, 새롭고 다양한 기술을 습득하는 데 흥미가 있는 분이면 좋을 것 같아요. 사용자 기능을 만드는 데 있어서 다양한 지식을 탐색하고 학습하면서 개발하는 경우가 많거든요. 그렇기에 새로운 기술에 호기심을 갖고 서로 공유하며 함께 성장할 수 있는 분이 오시면 좋겠습니다.

반도체의 설계, 생산 설비의 경로, 항만의 선박 스케줄링, 클라우드 시스템의 자원할당, 운송경로, 물류거점. 이들의 공통점은 무엇일까요? 바로 조합최적화를 통해 향상된 결과를 낼 수 있는 과업이라는 점입니다.

오늘은 산업의 다양한 조합 최적화 문제를 풀고, 나아가 새로운 시장가치를 발견하고 있는 COP(Combinatorial Optimization Problem)팀의 핵심 엔지니어 명우식 님의 인터뷰를 준비했습니다. 우식 님은 전문연구요원으로서 지난해 7월부터 마키나락스와 함께 하며 주문형 반도체(Application Specific Integrated Circuit, ASIC) 설계에서의 조합최적화 문제를 해결하고 있는데요.

대학원에서 연구했던 분야와 밀접한 프로젝트를 수행하며 마키나락스에서 연구와 커리어의 조합 최적화를 찾아가고 있는 우식 님의 이야기, 지금부터 함께 하세요!

우식 님은 입사 전 어떤 분야를 연구하셨나요?

저는 중국에서 유학을 하며 정밀기계공학을 전공했습니다. 한국에는 많이 없는 학과라 생소할 수도 있는데, 반도체 설계·광학 등을 다루는 학문 분야로 보시면 될 것 같아요. 저희 학과에서 주관한 CBICR이라는 AI 연구센터는 중국 내 다수 학과가 참여하는 큰 규모였는데요. 주로 AI 칩 가속 하드웨어를 연구하는 곳이에요. 저는 여기서 데이터 전송에 관한 연구를 하며 AI의 핵심 알고리즘을 더 알고 싶었고, 그중 한 갈래인 강화학습(Reinforcement Learning) 분야를 선택했어요.

특정 목적의 하드웨어를 설계한 후에 인공신경망의 연산을 실행하기 위해서는 ▲컴퓨터 연산으로 이뤄지는 프로세스를 그룹화하는 논리적 맵핑 (Logical mapping) ▲논리적으로 맵핑된 오브젝트들을 실제 가속 하드웨어 기능코어에 할당해 병렬연산 속도를 높이는 물리적 맵핑 (Physical mapping) 단계를 거쳐야 하는데요. 물리적 거리가 멀어지면 데이터 전송시간도 길어지기 때문에 연결 관계가 높은 요소들은 가까이, 낮은 요소들은 멀리 배치하는 것이 물리적 설계에서 중요합니다. 이 과정에서는 수백에서 수천개까지 달하는 코어들의 순서 흐름도, 상관관계 등을 함께 고려해야 하므로 사람이 수행하기는 다소 어렵죠.

또한, 여러 종류의 신경망을 제거하고 다시 다른 위치에 재할당하고 하는 반복적인 수행은 빠른 속도를 필요로 합니다. 그래서 필드에서도 부득이하게 결정론적인(deterministic) 알고리즘을 많이 쓰고 있습니다. 이러한 문제를 강화학습을 통한 조합 최적화로 해결할 수 있다는 구글의 연구를 접하고 흥미를 느껴 이 분야를 연구했습니다.

마키나락스에 합류하게 된 계기는 무엇인가요?

군대는 어차피 가야하고, 앞으로 연구를 계속하더라도 필드에서 일할 수 있는 기회는 군 복무 이후에도 더할 나위 없이 좋은 경험이잖아요. 제가 회사를 알아보기 시작할 때 강화학습을 메인으로 하는 회사가 거의 없었는데요. 우연히 지금 같은 팀에서 일하고 있는 경민 님의 포스팅을 보게 됐어요. 저는 강화학습 분야를 하고 싶었고 반도체와 조합 최적화에도 관심이 많은데, 마침 마키나락스 COP팀에서 이걸 다 하고 있더라고요. 그래서 다른 곳은 알아보지 않고 고민 없이 바로 지원했습니다.

COP팀은 무슨 일을 하나요?

마키나락스의 COP(Combinatorial Optimization Problem)팀은 산업의 다양한 조합 최적화 문제를 풀며 기술 노하우를 습득하고, 나아가 새로운 시장가치를 발견하는 것을 목표로 하고 있습니다. 현재 저희 팀은 반도체 설계의 전문가 그룹인 ASICLAND와 APLabs와 함께 ASIC 반도체 설계, 그중에서도 Floorplan에 강화학습을 적용하는 과제를 수행하고 있습니다. 저희 팀에 관심이 있으신 분들은 마키나락스 테크 블로그 포스팅과 DEVIEW 2021 발표 영상에서 더 많은 정보를 얻으실 수 있을 거예요.

COP팀의 개발문화는 어떤가요?

저희 팀은 업무 산출물을 명시적이고 투명한 방법으로 공유하는 것을 지향하고 있어요. 그리고 팀원들간의 리뷰의 피로를 낮추기 위해 최대한 단순한 형태로 산출물을 내고자 하고 있고요. 또한 이슈가 발생했을 때 자주 논의를 하면서 개인이 혼자 고민하기보다는 팀 차원에서 원인을 분석하고 개선하고자 노력하고 있습니다.

마키나락스에서 커리어적으로 성장했다고 느끼는 포인트가 있다면요?

사실 대학원 졸업 후에 무조건 박사 과정을 가야겠다고 생각했거든요. 석사 연구를 마치고 직장에서 일을 하다 보니, 이제 커리어를 이어가고 싶은 마음과 연구를 하고 싶은 마음이 반반이 된 것 같아요. 연구할 때는 아무리 작은 것이더라도 학술적인 의의가 있다면 ‘Why?’라는 질문을 던지며 파고들어 그에 대한 답을 알아내는데요. 반면에 회사는 이익 창출을 목적으로 하다 보니, 어떤 문제에 대해 ‘Why?’라는 질문보다 실질적으로 어떻게 적용할 것인지에 집중을 하는 것 같아요. 이 두 가지를 모두 경험해봤다는 점이 하나의 성장 포인트인 것 같습니다.

또 제가 대학원에서 연구를 할때는 기능 구현을 목표로 코드를 작성해 원하는 결과만 나오면 되기 때문에 코딩에 대한 이해도가 굉장히 낮았었어요. 실무에서 일하면서는 실제 필드에 적용하기 위해 계속해서 설계를 하고, 개선을 하고, 리팩토링을 꾸준히 주기적으로 하거든요. 개인적으로 코딩을 많이 하며 현업에서 일하고 있는 전문가분들의 노하우들을 경험해 볼 수 있는 것도 성장 포인트라고 느껴요.

업무 외적으로 만족하는 부분은 어떤 것이 있을까요?

제가 생각하는 마키나락스의 가장 큰 장점은 ‘자율성’이에요. 출퇴근과 재택근무가 자유롭고, 휴가가 무제한인데 휴가를 쓸 때도 아무도 왜 쓰냐고 안 물어보고 정말 자유로운 분위기에요. 제가 군인 신분이니까 사실 저한테는 해당이 안 되지만요.(😂)

스타트업이 대체로 수평적인 문화이긴 하지만, 저희 회사는 그중에서도 정말 수평적 문화를 갖고 있다고 느껴요. 상사라고 권위를 세우는 사람도 없고, 의견을 제시하면 추후에 어떤 형태로든 반영이 되면서 모두가 서로의 말을 귀 담아 듣는다는 것도 많이 체감하고요. 아, 그리고 입지가 좋다는 것도 장점이라고 생각합니다.😁

어떤 분들이 COP팀에서 함께 했으면 하시나요?

무엇보다 이 분야에 대한 흥미가 가장 중요할 것 같아요. 최근 들어 조합최적화에 강화학습을 이용하려는 사례가 많이 늘어나고 있는데 이런 트렌드를 잘 따라갈 수 있는 분이면 좋을 것 같아요. 하지만 오랜 기간 동안 여러 문제에서 많은 발전이 이루어진 전통적인 방법들에 대해서도 두루 관심이 있으신 분이면 좋겠어요. 꼭 강화학습을 고집하지 않는 분이면 더할나위 없이 좋을 것 같아요. 앞으로 마키나락스와 저희팀에게 많은 관심 부탁드려요!

마키나락스는 2022년을 맞이해 새로운 성장 모멘텀을 준비하고 있습니다. 이 모멘텀을 이끄는 주역은 바로 MLOps제품화팀입니다. MLOps제품화팀은 마키나락스가 올해 출시를 준비하고 있는 제품들의 기획과 개발을 주도하는 역할을 맡고 있습니다.

오늘 인터뷰의 주인공은 지난해 4월부터 전문연구요원으로 마키나락스와 함께 하고 있는 MLOps제품화팀의 김재연 님입니다. 재연 님은 Engine 파트에서 MLOps 엔지니어로서 큐브플로우(Kubeflow) 기반의 MLOps 플랫폼의 개발과 운영을 맡고 있는데요.

전문연구요원으로서의 커리어, MLOps 엔지니어가 하는 일, 그리고 마키나락스의 개발문화에 관한 이야기를 재연 님의 인터뷰를 통해 만나볼까요?

재연 님은 입사 전 어떤 분야를 연구하셨나요?

저는 학부에서 물리학, 대학원에서 수치해석학을 전공했습니다. 수치해석학은 간단히 말해 손과 연필만으로 풀기 어려운 수학 문제의 정답을 컴퓨터를 이용해 근사치를 구하는 방법을 연구하는 학문인데요. 순수학문을 연구하고 싶어서 석박사 통합과정으로 대학원에 진학했고. 세부 전공도 순수해석학 분야를 선택했었습니다.

그런데 막상 연구를 하다 보니 실생활에 가까운 분야, 예를 들면 데이터분석이나 인공지능에 관심이 생기더라고요. 그래서 더 빠르게 현업에서 일해보고 싶어 석사 과정으로 전환하고 세부 전공도 응용수학 분야인 수치해석학으로 변경해 전문연구요원 자리를 찾게 되었어요.

마키나락스에 합류하게 된 계기는 무엇인가요?

마키나락스는 제가 전문연구요원으로 일하고 있는 두 번째 회사인데요. 이전 회사에서 일할 때 마키나락스에서 낸 논문을 보고 회사를 알게 됐어요. 현재 함께 일하고 있는 심상우 박사님, 임용섭 박사님, 병찬 님, 종섭 님이 ICLR에 출판한 논문(테크 블로그에서 자세히 보기↗)이었죠.

첫 회사에서 클라우드 개발 직군으로 일하면서 클라우드와 인공지능을 결합한 업무를 해보고 싶다고 생각하고 있었는데요. 그러던 중 개발자 글쓰기 블로그를 통해 MLOps제품화팀의 훈철 님을 알게 되었어요. 마키나락스에서는 제가 해보고 싶었던 클라우드와 인공지능을 결합한 업무를 해볼 수 있을 것 같았습니다.

이거는 여담이지만 저는 면접 과정이 정말 좋았거든요. 면접관들이 말하는 깊이와 면접자를 대하는 태도에서 되게 좋은 느낌을 받았어요. 면접을 고민하는 분들이 있다면 꼭 면접을 보시라고 권해드리고 싶어요.

MLOps제품화팀은 무슨 일을 하나요?

MLOps는 Machine Learning Operations의 약어로, 머신러닝 모델 개발(ML Development)과 머신러닝 모델 운영(Operations)에서 사용되는 문제와 반복을 최소화하고 비즈니스 가치를 창출하는 것을 목표로 합니다. 단순히 말해 MLOps는 머신러닝 모델링에 집중할 수 있도록 인프라를 만들어 자동으로 운영되도록 하는 일이라고 할 수 있습니다.

저는 팀에서 MLOps 엔지니어로서 큐브플로우(Kubeflow) 기반의 MLOps 플랫폼의 개발과 운영의 전반적인 업무를 담당하고 있습니다. 최근 MLOps를 위한 많은 도구가 세상에 나오고 있지만 아직은 머신러닝 모델 개발자들이 편하게 사용할 수 있는 수준의 도구는 없는 것 같아요.

저희 사내에서 머신러닝 모델 개발자들이 조금 더 쉽게 모델 기반의 서비스를 배포할 수 있도록 지원하는 여러 기능들을 개발해오고 있었는데요. 지금은 비즈니스로 확장되어 이 기능들을 통합된 플랫폼의 모습으로 제품화 하는 단계에 있습니다.

MLOps제품화팀의 개발문화는 어떤가요?

개발문화는 글로 존재하는 것이 아니라, 시스템으로 존재해야 한다고 생각해요. 팀장이 “자, 이제 애자일(agile)하게 개발합시다!”라고 해도 하루아침에 변할 수 없잖아요.

예를 들어 개발팀에서 코드리뷰를 열심히 하는 문화가 있다고 자신 있게 말하려면요. GitHub에 PR(Pull Request)이 생성되었을 때 ▲자동으로 타입을 지정하는 라벨(label)이 붙고 ▲리뷰어(reviewer)가 지정되며 ▲리뷰어의 승인이 있어야 메인 브랜치에 병합되는 시스템이 자동화돼 있어야 한다고 생각해요.

감사하게도 이런 제 생각에 팀 리드와 동료들이 적극적으로 공감해주어서 입사한 뒤 이런 부분들을 많이 자동화했고, 그 결과 개발을 지속하기 편한 시스템이 이제는 조금 갖춰진 것 같아요.

‘오픈 마인드’는 회사 전체적으로 형성된 강점 같아요. 공유하는 문화가 없는 조직은 서로 시너지를 내기 어렵고, 심할 경우 다른 팀에서 무슨 일을 하는지 알 수 없는 곳들도 있는데요. 마키나락스 구성원 대부분은 오픈 마인드를 갖고 있다고 느낍니다.

실제로 슬랙, 노션 등의 툴을 통해 모든 정보가 공유되어 다른 팀에서 어떤 업무를 하는지 쉽게 파악할 수 있고요. 본인의 업무와 직접 관련이 없더라도 궁금한 분야가 있다면 언제든지 편하게 서로 물어볼 수 있는 분위기가 갖춰져 있어서, 그 과정에서 예상치 못한 시너지가 나는 경우도 많은 것 같아요.

마키나락스에서 커리어적으로 성장했다고 느끼는 포인트가 있다면요?

대기업의 경우 보안 및 최적화 이슈로 오픈소스를 거의 사용하지 않고, 대기업이 아니더라도 오픈소스를 디벨롭 한 내용을 공개하기 싫어하는 회사들도 많거든요. 그런데 마키나락스는 오픈소스를 기반으로 제품을 만들다 보니, 오픈소스의 활용/개선/공유를 장려하는 분위기예요. 자연스럽게 제품화 과정에서도 오픈소스를 많이 접하게 되고요. 이 덕분에 일하는 동안 큐브플로우(Kubeflow)라는 비영리 단체에도 들어가게 됐어요.

저는 이 점이 개발자의 커리어에 유리하다고 생각해요. 개발자의 실력을 이력서와 코딩 테스트만으로 판단하기가 사실 쉽지 않거든요. 그러다 보니 보통 GitHub을 통해 작업 내역을 체크하는 경우가 많은데, 이때 유명한 오픈소스에 기여했다는 기록이 있다면 미래의 커리어에도 큰 도움이 될 수 있다고 생각합니다.

업무 외적으로 만족하는 부분은 어떤 것이 있을까요?

동료 중에 믿고 일할 수 있는 분들이 정말 많아요. 그리고 다들 왜 열심히 하시는지는 모르겠지만(웃음), 다들 정말 열심히 일해요. 한 사람이 쳐지는 분위기면 다 같이 쳐지는 분위기가 만들어지곤 하잖아요. 저희 팀도 그렇고, 다른 팀도 보면 다들 열심히 하는 분위기라서 다 같이 긍정적인 에너지로 일하는 것이 좋은 것 같습니다.

어떤 분들이 MLOps제품화팀에서 함께 했으면 하시나요?

새로운 것을 접했을 때 두려움보다는 호기심이 앞서는 분이면 좋을 것 같아요. 저희 팀은 처음 보는 길을 개척해 나가면서 일하는 팀이거든요. 처음 가는 길이다 보니 이미 만들어진 레퍼런스가 많이 없어서, 새로운 지식을 계속 학습하고 연구하면서 개발해 나가는 경우가 많아요. 처음 가는 길 위에서 두려움을 앞세운다면 빨리 지칠 수 밖에 없을 것 같아요. 그렇기 때문에 새로운 분야에 호기심을 갖고 긍정적인 에너지를 주고 받으면서 함께 성장할 수 있는 분과 함께 하고 싶습니다.

인공지능(Artificial Intelligence)과 머신러닝(Machine Learning)의 등장이 기존의 산업 구조를 변화시키고 신사업 모델을 만들어내고 있습니다. 이에 따라 폭발적으로 생겨나는 데이터(Data)를 가공, 관리하는 작업의 비중과 중요도도 함께 높아졌는데요, 이는 현대 사회가 “소프트웨어의 시대”를 넘어 “데이터의 시대”를 맞이했음을 의미합니다.

이러한 시대의 변화와 함께 핵심 자원도 변화했습니다. 이전까지 소프트웨어의 개발에서 코드가 핵심 자원이 되었다면, 오늘날, 데이터의 시대의 핵심 자원은 코드와 데이터입니다.

옛날옛적…’소프트웨어’ 시대에 ‘데브옵스(DevOps)’가 살았는데…

데이터 시대의 머신러닝 모델 개발을 이해하기 위해서는 기존의 프로세스를 먼저 이해할 필요가 있습니다.

기존 소프트웨어 개발 프로세스는 담당자가 직접 1) 코드를 제작하고 2) 제작된 코드를 코드 저장소에 저장하여 3) 코드를 배포하는 구조로 진행됐습니다. 그런데 코드를 배포하는 환경이 상이해, 추가 개발이 필요한 상황들이 발생했고, 이를 배포하는 과정에서도 사람에 의한 에러 즉, 휴먼 에러 (Human Error)가 발생했습니다.

기존 데브옵스(DevOps)의 프로세스

기존 데브옵스(DevOps)의 프로세스

이러한 불편을 해결하기 위해 반복적으로 코드를 통합하는 지속적 통합(Continuous Integration, CI)과 이를 반복적으로 배포하는 지속적 배포(Continuous Delivery, CD)에 대한 관심이 켜졌으며, 나아가 인프라, 개발 문화까지도 아우르는 데브옵스(DevOps)라는 새로운 패러다임이 생겨났습니다.

데이터의 시대, 무엇이 다를까

그렇다면 데이터의 시대에서의 머신러닝 개발은 어떻게 진행 될까요?

머신러닝 모델 개발 사이클

머신러닝 모델 개발은 가장 최신의 코드와 데이터로 함수 형태의 모델을 만드는 과정을 반복해 최고의 모델을 배포하는 과정으로 진행됩니다. 따라서 머신러닝 개발 프로세스는 기존 데브옵스(DevOPs)의 지속적 통합(Continuous Integration, CI)과 지속적 배포(Continuous Delivery, CD) 단계를 일부 동일하게 이행합니다.

다만, 머신러닝 개발은 데이터 기반의 프로세스이기 때문에 데이터가 바뀔 때마다 모델을 반복 학습시키는 지속적 학습(Continuous Training, CT)과정이 추가됩니다.

MLOps 프로세스

머신러닝 개발, 말처럼 쉽지 않다

기업은 수시로 변화하는 환경에 즉시 적용 가능한 학습 모델을 탐색하는 과정에서 어려움을 겪습니다. 우수한 성능의 머신러닝 모델을 개발해서 배포 환경에 모델을 완벽하게 적용하는 과정을 비롯해, 리소스 관리 및 ML Research (Machine Learning Research)팀과 개발 팀이 협업하는 과정에서도 종종 난관에 봉착합니다.

이러한 현실적인 어려움을 극복하기 위해 머신러닝 모델의 효율적인 개발과 배포를 가능케 하는 인프라를 구축하고, 프로세스를 자동화하는 플랫폼이 바로 ML 옵스 (MLOps)입니다. ML 옵스는 데이터, 개발, 운영 환경을 유기적으로 통합해 안정적인 개발 환경을 갖추고 모델 변화에 신속하게 대응할 수 있는 워크플로우를 제공합니다.

이번 포스팅에서는 ML 옵스의 정의 및 주요 기능 및 기술을 소개하고, ML 옵스 사용 시 얻는 이점과 도입 시의 어려움에 대해 이야기해보도록 하겠습니다.

ML 옵스란 무엇인가?

ML 옵스 (Machine Learning Operations)는 머신러닝 (Machine Learning)의 약자인 ML과 Operations의 약자인 Ops가 합쳐져 탄생한 단어로, 모델 개발 시스템과 운영 시스템을 통합하여 더욱 유연하고 효율적인 개발을 가능케 하는 도구이자 개발 환경을 뜻합니다. 소프트웨어 개발과 다르게 머신러닝 개발에는 데이터 과학 (Data Science)적 접근이 추가되기 때문에, ML 옵스에서는 코드 저장 및 배포 단계에 앞서 데이터 셋 분석 및 모델 개발을 담당하는 ML Research 팀의 역할이 추가됩니다.

ML 옵스의 구성 요소

머신러닝 모델 개발은 데이터를 가지고 모델을 개발하는 연구 환경과 개발된 모델 중 최상의 것을 운영 환경에 배포하는 배포 환경에서 진행됩니다. 연구 환경에서는 ML Research 팀이 최상의 모델을 만들기 위해 데이터를 학습하여 모델을 만드는 과정을 반복하는데요. 이렇게 개발된 최상의 모델을 배포 환경에서 동일하게 구현하여 유의미한 비즈니스 창출하는 것이 ML 옵스의 최종 목표입니다.

ML옵스의 과정을 이해하기 쉽게 가방 제작에 비유해서 설명해 보겠습니다.

한 개의 가방을 제작하기 위해서는 결정된 원재료(가죽, 버클, 원단 등)를 가지고 제작되어진 작업지시서에 따라 샘플 가방들을 제작합니다. 제작된 여러 샘플 가방 중 완성도가 가장 높은 가방이 나오면, 판매를 위해 해당 작업지시서를 공장에 전달하고 필요한 재료들의 수량을 늘려 대량 제작을 시작합니다.

머신러닝 모델 개발의 원리도 이와 동일한데요. ML Research 팀은 연구 환경에서 원재료인 데이터를 기반으로 코드를 따라 모델을 개발합니다. 몇 차례의 모델 개발 과정을 거쳐 실제 배포 환경에 최적인 모델이 나오면, 그 모델이 배포 환경에서도 동일하게 제작될 수 있도록 모델을 학습합니다.

ML 옵스의 주요 기능 및 기술

위와 같은 과정을 위해 ML 옵스는 네 가지 주요 기능 및 기술을 사용합니다.

  1. 모델 관리 (Model Management) 모델 관리는 연구 과정 중 수행한 모델들과 그 성능을 기록하는 행위입니다. 대표적으로는 오픈소스인 MLflow와 상용 소프트웨어인 Weight & Bias를 예로 들 수 있습니다. 이러한 컴포넌트로 모델을 관리할 때, 이후 다양한 배포 환경에 적절한 모델을 용이하게 선택할 수 있습니다.
  2. 모델 서빙 (Model Serving) 모델이 성공적으로 저장되면, 모델을 배포 환경에 서빙해야 합니다. 저장된 모델을 배포 환경에서 성공적으로 사용할 수 있도록 모델을 배포하는 과정을 모델 서빙이라고 합니다. 대표적인 서빙 방식에는 두가지가 있습니다.
    1) 백엔드 엔지니어 (Back-end Engineer)가 구축한 비즈니스 로직 서버에서 모델이 필요한 부분에 대해 API (Application Programming Interface) 형태로 호출하는 API 서빙
    2) 여러 데이터를 한 번에 처리하는 Batch 서빙
  3. 모델 모니터링 (Model Monitoring) 모델 서빙 단계에서는 외부 소프트웨어 컴포넌트가 API를 통해 모델로 추론 요청을 보내고, 모델은 추론 결과를 응답으로 보내는 사이클이 진행되는데요. 모델 모니터링 단계에서는 사이클이 잘 작동하고 있는지, 서빙 중인 소프트웨어가 정상적으로 동작하고 있는지, 마지막으로 적용된 모델 성능이 떨어지고 있진 않은지를 체크합니다.
  4. 지속적 학습 (Continuous Training) 머신러닝 기술을 적용한 실제 프로덕션 환경에서는 데이터가 계속 변화하기 때문에 처음과 같은 모델의 성능을 기대할 수 없게 됩니다. ML 옵스는 Continuous Training (CT)과정을 통해 변화하는 데이터에 맞추어 모델을 지속적으로 학습하고 배포해, 모델의 성능을 유지할 수 있습니다.

머신러닝 모델 개발에서 마주하는 난관

이렇게 ML 옵스는 머신러닝 기반의 솔루션을 활용하고자 하는 기업들의 문제점을 해결해주는 솔루션으로 각광받고 있습니다. 하지만 아직 ML 옵스를 도입하지 않은 많은 기업이 머신러닝 모델 개발 과정에서 다음과 같은 어려움을 겪고 있습니다.

  • 정제되지 않은 파이프라인으로 인한 부진한 진척도
    머신러닝 모델 개발 작업은 반복적이고 비선형적인 프로세스를 따릅니다. 데이터를 기반으로 하고 있기 때문에 모니터링 결과를 바탕으로 주기적인 업데이트가 필요한데요. 이를 위해서는 개발 초기 단계로 돌아가 데이터를 학습하고 배포하는 프로세스를 반복해야 합니다. 실제로 많은 기업이 이 단계를 원활하게 수행할 수 있는 정제된 파이프라인 (Pipeline)을 마련하지 못해, 모델 개발 단계에서 배포 단계까지의 진척에 어려움을 겪게 되고 이로 인해 진척이 늦어지게 됩니다.
  • 불필요한 리소스 활용 증가
    데이터의 가변성으로 인해 특정 모델을 배포하더라도 새 데이터를 기반으로 지속적인 예측, 학습 및 업데이트 작업을 거쳐야 합니다. 만약 체계화된 파이프라인이 없는 상태에서는 내부 데이터에 기반한 예측을 하려면 운영팀에서 실제 데이터를 머신러닝 팀으로 전송해야 합니다. 하지만 이 전달 프로세스에 적지 않은 시간이 소요되고, 컴퓨터 리소스 사용량도 증가하여 기존의 업무에 지장을 주게 됩니다.
  • 데이터 사이언티스트와 소프트웨어 개발자 간의 데이터 사일로
    머신러닝 기반의 솔루션 개발에는 두 축의 중요한 액터 (Actor)가 있습니다. 모델의 학습과 배포 및 최적화를 담당하는 데이터 사이언티스트 및 머신러닝 엔지니어와 모델 배포 과정을 통해 최종 모델을 서비스 형태로 구현하는 소프트웨어 개발자입니다. 머신러닝 모델 개발의 특성상 두 액터 간의 업무가 유기적으로 연결되어 있기 때문에 협업이 필요하지만, 기업에서는 두 액터가 담당하는 업무가 다르고 업무 공유가 되지 않아 협업이 어려워지는 *데이터 사일로 (Data Silo)문제가 발생합니다.
    *데이터 사일로 (Data Silo)는 조직 내에 존재하는 일련의 정보가 조직 내 다른 부서와 공유되지 않아 ‘특정 부서만의 데이터’로 남게되는 현상을 뜻합니다.
데이터 사이언티스트와 소프트웨어 엔지니어의 업무 차이

ML 옵스는 이 문제를 어떻게 해결할까

ML옵스는 변화하는 환경에 맞춰 에자일(Agile)하게 모델의 전체 수명 주기를 관리하고, 동시에 시간과 비용을 단축한다는 점에서 매력적인 머신러닝 개발 솔루션입니다. 특히 머신러닝 (Machine Learning) 사업 도입 과정에서 유지보수에 필요한 프로세스를 개선할 수 있다는 장점이 있습니다.

ML 옵스는 하나의 파이프라인에서 데이터 사이언티스트, 소프트웨어 개발자 및 운영단의 작업을 이행할 수 있도록 통합하기 때문에, 각 직군 사이에 존재했던 장벽을 허물어 서로의 업무 플로우에 대한 접근성을 높입니다.

실제 머신러닝 팀과 소프트웨어 개발자 사이의 원활한 커뮤니케이션에 머신러닝 개발 프로젝트의 완수 여부가 달려 있다고 할 만큼, 개발 과정의 큰 축을 맡은 각 직군 사이의 소통이 용이해진다면 머신러닝 모델 개발이 더욱 성공적으로 마무리 될 수 있음을 의미하기도 합니다.

또한, 최신 데이터가 유입될 때마다 실무 데이터와 분리된 환경에서 실시간으로 검증할 수 있는 기능이 제공됩니다. 이 때, 데이터 검증에 필요한 시간을 단축해, 개발 전 과정에 소요되는 시간을 단축할 수 있고, 리소스를 효율적으로 사용할 수 있습니다.

마지막으로 각 개발 단계를 효율적으로 관리하여 산출물도 용이하게 확인할 수 있는 기능을 제공합니다. 해당 모델이 어떤 데이터 셋과 코드를 활용했는지, 어떤 성능을 보이는 모델이 도출되었으며, 어떤 서비스 형태로 배포되었는지에 대한 전체 과정을 한눈에 파악할 수 있습니다. 수정이 필요하거나 새로운 기능이 필요할 경우, 필요한 업무를 한 눈에 파악해 즉시 반영할 수 있으며, 데이터 추출, 모델 학습, 반복 실험 및 결과 비교 등의 작업을 하나의 플랫폼 내에서 처리할 수 있어 높은 편의성과 효율성을 보여줍니다.

ML옵스 도입을 고려 중이라면,

ML 옵스의 주요 이점 및 기능을 이해했다면 기업은 ML 옵스를 도입하기에 앞서 마지막으로 다음의 질문을 해야 합니다.

  • 회사가 새로 구축할 파이프라인은 기존의 것과 얼마나 차이가 날 것인가?
  • 회사와 구성원들은 이러한 변화를 받아들일 심리적, 물리적 준비가 되어 있는가?
  • 프로세스 변화를 감수할만큼 기업에 가치를 가져올 수 있는 시스템인가?

아무리 좋은 시스템이라 해도 기업의 업종 및 사업 영역에 따라 시스템의 도입이 오히려 비효율적인 프로세스를 만들어낼 수도 있기 때문에 그 시스템이 정말 기업에 필요한지에 대해서 충분히 고려한 후에 도입하는 것이 중요합니다. 기업은 사전에 이러한 질문에 대해 답을 해봄으로써 비즈니스 실정에 맞춘 도입 계획을 세울 수 있습니다. 현재의 비즈니스 상황을 진단하고 비즈니스를 진행할 때 존재하는 어려움에 대해 ML 옵스가 해결해줄 수 있다고 생각되는 적절한 타이밍에 도입했을 때, 도입 효과가 극대화될 것입니다.

어떻게 데이터를 통합시킬 것인가

제품을 도입하기 위해서는 ‘머신러닝 기술을 어떻게 사용할 것인가?’라는 원론적인 질문을 넘어, ‘해당 기술을 개발하는 프로세스를 어떻게 정형화시키고 통합할 것인가?’ 에 대한 질문을 던져보아야 합니다.

마키나락스는 머신러닝 모델 개발에 특화된 전문인력들이 기업의 머신러닝 기술 도입에 대한 문제 정의 단계부터 모델 배포 및 사후 관리까지의 전 개발 여정을 돕는 엔드 투 엔드 (End-to-End)솔루션 및 서비스를 제공하고 있습니다.

데이터 모델링 작업부터 배포까지의 전 단계를 하나의 파이프라인으로 통합적으로 제공하는 제품 MakinaRocks Runway는 쿠버네티스(Kubernetes)기반으로 설계되어 온프레미스(On-premise)와 클라우드(Cloud)환경을 모두 지원하므로 기업에 더욱 적합한 환경을 선택하여 이용이 가능합니다. 이로써 각 기업은 기업의 비즈니스 실정에 맞는 머신러닝 개발 환경을 구축할 수 있으며, 오픈소스를 활용하고 있어 손쉬운 확장이 가능하다는 이점이 있습니다.

기업은 새로운 기술을 통해 변화를 이루기 위해, 앞서 이야기한 기업의 현주소를 파악하고, 다양한 상황을 고려해 기업에게 적합한 솔루션 및 시스템을 적절히 도입해야 합니다.

Use Cases
See how AI technology in anomaly detection, optimization, and predictive analytics is making industries intelligent