안녕하세요, 에디터 SA입니다. 여러분은 인공지능에 대해 얼마만큼 알고 계신가요? 인공지능, 혹은 AI는 우리와 가깝지는 않지만, 많은 곳에서 이야기가 나오다 보니 이제 막 낯가림이 끝나가는 중인 말인 것 같은데요. 알고리즘? 구글의 알파고? Chat GPT? 혹은 SF영화에서 봤을 법한 빡빡머리(?) 로봇을 떠올리시는 분도 있겠습니다. 왜냐하면, 저도 그렇거든요.
저는 지금까지 다양한 분야의 프로젝트를 기획하고 경험해 왔어서, 인공지능에 대해서도 다른 사람들이 아는 만큼, 혹은 그보다 조금 더 많이 알고 있다고 생각했었는데요. TEN의 구성원으로 함께하게 되면서, ‘인공지능’에 대해 본격적으로 접하게 된 후… 글쎄요, TEN에서 제가 마주한 ‘인공지능’에 대한 정보들은, 제가 알던 것과 사뭇 달랐습니다. 아무래도 ‘나는 인(공지능)알못이다.’라는 생각을 지울 수 없게 만들더라고요. 근데, 이런 사람, 정말 저 하나뿐인 걸까요?
인공지능이 중요하다, 앞으로 더 중요해질 것이다, 와 같은 이야기들은 차고 넘치는데, 아직 인공지능이 뭔지, 머신러닝이 뭔지, 딥러닝은 또 뭔지… 어리둥절해하거나 당황하는 분들이 많이 계실 거로 생각해요. 그래서! 제가 직접 공부하고, 또 TEN에서 알게 된 인공지능 이야기를 여러분과 함께 나눠 보려고 합니다. 오늘은 그중 첫 번째 주제로, 인공지능과 함께 자주 언급되는 ‘머신러닝’ 그리고 ‘MLOps’에 대해 알아볼게요. 😊
[ 인공지능, 일단 알겠어요. 머신러닝은 뭔가요? ]
인공지능은 지금까지 사람만이 해내던 복잡한 일들을 기계가 할 수 있도록 만드는 것입니다. 그러려면 기계는 사람의 지능, 정보 처리 방식을 모방해야 하겠지요? 사람은 어떤 것을 배우고 익혀서, 그 결과 어떤 일을 해내게 되는데요. 인공지능도 이 방식을 따릅니다.
사람의 생각과 행동을 말로 규정하기가 어려운 것처럼, 인공지능도 여러 관점에서 정의되고 있습니다. 인간처럼 생각하거나 (Thinking Humanly), 인간처럼 행동하거나 (Acting Humanly), 이성적으로 생각하거나 (Thinking Rationally), 이성적으로 행동하는 (Acting Rationally) 관점이 존재해요. 물론 감정적인 영역도 인간의 지능을 구성하는 큰 부분이겠지만, 인공지능의 학술적인 정의에서는 그 부분을 아직 고려하고 있지 않습니다. 기계가 행복함, 슬픔, 아쉬움을 이해할 수 없으니까요. 😂
인공지능을 만드는 방법 중 가장 중요하다고 알려진 것이 바로 ‘머신러닝(machine learning)’이에요. 머신러닝은 쉽게 말해, 컴퓨터가 ‘알아서’ 학습할 수 있도록 하는 방법입니다. 예를 들면, 누군가의 정보를 입력했을 때, ‘TEN’에서 일하고 있다는 조건이 맞는다면 빨간불이 켜지는 프로그램을 만든다고 가정해 볼 게요. 프로그래밍을 한다면 ‘TEN’이라는 글자가 입력한 직장 정보와 일치하면 빨간불이 들어오도록 개발자가 작업해야 하는데요. 하지만 머신러닝은, 어떤 사람의 정보를 넣었을 때 빨간 불을 켤 수 있는지, 그 조건을 알아서 찾아갑니다. 여러 개의 데이터를 검토한 다음, “TEN이 직장 정보에 있어야 불을 켠다”하고 기계가 패턴을 찾아 조건을 학습하게 만드는 거죠.
[ MLOps는 ML Lifecylce을 관리하는 것이다! ]
머신러닝에 대한 설명에서 짐작하셨겠지만, 머신러닝에는 수많은 데이터가 필요해요. 데이터가 많으면 많을수록, 발견하여 정리, 학습된 조건의 정확도는 더 올라갈 거고요. 그 과정이 마냥 쉽지는 않을 거예요. 이상한 데이터도 있을 수 있고요. 위의 예를 다시 가져온다면, 회사 이름을 ‘TEN’이라고 적는 사람, ‘텐’이라고 적는 사람, ‘주식회사 텐’이라고 적는 사람 등 데이터의 내용도 제각기 다르기 마련입니다. 그리고 이 데이터를 기반으로 학습시켜서, 의도한 대로 정확하게 서비스에 얹어서 배포하는 일이 쉽지는 않겠죠? 특히 요새는 대규모 데이터를 다루는 AI 시스템이 많으니 더 그럴 거예요.
또한 머신러닝은 자동화에 초점이 맞춰져 있기 때문에 모델 관리가 더더욱 중요해요. 그 과정에서 개발, 학습하는 과정과 운영하는 과정이 완전히 나뉘어 있다면, 안정적으로 운영하기가 힘들겠죠. 그래서 유기적으로 운영하려다 보니 그것도 쉽지 않은 일이에요. 데이터는 끊임없이 변화하고요. 개발/학습한 모델에 대한 Needs도 계속 변하고 있죠. 이런 상황들을 논의하고 조율해 나가려 하는데, 데이터 사이언티스트, 머신러닝 엔지니어 등 협업하는 구성원마다 각자 언어가 달라 소통도 쉽지 않고요... 데이터를 다루는 사람은 모델 구축 및 평가에 특화되어 있다 보니, 실제 배포한 이후의 요구 사항에 대응하는 과정이 순탄하지만은 않습니다. 😵💫이렇듯 복잡한 이슈들이 맞물려 있는 일이다 보니, 개발하고 학습하는 과정이 얼마나 생산성 있느냐, 그리고 그 결과 정리된 모델을 얼마나 안정적으로 운영할 수 있느냐가 정말 중요한 일이 되었어요.
그래서, DevOps의 개념을 머신러닝에 도입한 MLOps라는 방법론이 주목받게 되었답니다. 머신러닝의 과정을 더 생산성 있게 개발하고, 안정적으로 운영하기 위한 방법을 MLOps라고 부르고 있는데요. MLOps는 단순히 머신러닝의 학습 과정만을 고려하는 것은 아니에요. 데이터를 수집하고 분석하는 단계부터 시작해서, 머신러닝 모델을 배포하고 모니터링해서 다시 데이터의 수집으로 돌아가는 전체 순환 과정, 즉, AI Lifecycle을 다루는 방법론입니다.
MLOps가 무엇인지 검색해 보신 분들이라면, MLOps Lifecycle이라는 그림을 보신 적이 있으실 거예요. 머신러닝에 Dev와 Ops의 과정을 도입, 정리한 무한대 기호가 얽힌 그림이에요. MLOps의 대상이 되는 AI Lifecyle을 바탕으로, 데이터 사이언티스트, DevOps 엔지니어, IT로 구성된 협업 과정들이 어떤 순서로 진행되어야 하는지 정리되어 있습니다. 그림의 글자를 순서대로 따라 읽기만 해도, 어떤 프로세스가 있는지 전반적으로 파악할 수 있답니다.
저도 “아! ML+DevOps의 개념인가 보군!” 하는 직관적인 이해가 되는 자료라 도움이 됐어요.😊 다만, 머신러닝 모델의 배포와 관리에 중점을 두고 있다는 점, ‘머신러닝’의 특성상 데이터 관리도 중요하게 여긴다는 점, 그리고 인공지능 모델의 버전 관리, 테스트와 배포 등 운영 중인 모델의 지속적인 관리를 고려하는 사이클이라는 점에서 DevOps와 차이가 있겠습니다.
MLOps는 머신러닝 과정에서 엔지니어들이 마주하게 되는 고민들을 언제 점검하고 해결할 수 있는지를 정리한 방법론이기에, 실제로 많은 도움이 된다고 해요. 단계별로 적절한 점검을 하고 해결해 나가니 AI 모델의 출시 시간을 단축할 수 있고, 모델의 정확도도 개선되며, 그 결과들을 기반으로 한 거버넌스를 준수하도록 만들 수 있을 테니까요.
한편, 구글에서는 머신러닝 모델을 개발하고, 모델을 얹은 소프트웨어를 개발하는 워크플로에 대해 이렇게 설명하고 있어요.
데이터를 찾아 준비하고, 모델을 개발한 다음 데이터로 머신러닝 모델을 학습시켜요. 모델 학습은 모델 학습 후 모델의 정확도를 평가하고, 초매개변수를 조정하는 과정을 포함합니다. 그리고 이 학습된 모델을 배포하게 되는데요. 이 모델에 예측 요청을 보내면, 배포된 모델은 온라인 예측, 일괄 예측을 거치게 돼요. 이 예측된 내용을 모니터링하면서 머신러닝 모델과 모델 버전을 관리하면, 더 생산성 있고 안정적인 머신러닝 모델을 만들 수 있게 되겠지요? 만약 이 과정 중에 문제가 있다면, 문제가 발생한 과정의 전 단계, 혹은 전전 단계로 돌아가 다시 작업해야 하는 경우도 당연히 있겠지요.
머신러닝, MLOps에 대한 전반적인 내용을 톺아 보았습니다. 처음 머신러닝과 MLOps를 접하시는 분들께 도움이 되는 정보였으면 좋겠네요. TEN에서는 오늘 이야기한 MLOps 과정에서 인공지능 인프라를 효율적으로 관리하고 운영할 수 있는 솔루션 ‘AI Pub’을 서비스하고 있답니다. 언젠가 여러분과 인공지능 인프라의 중요성에 관해서도 이야기해 볼 수 있었으면 좋겠어요. 😊
'Tech & Product > AI, 더 쉽게' 카테고리의 다른 글
인공지능 프레임워크, 좀 더 알아보자 : 텐서플로우 (Tensorflow) 편 (0) | 2023.07.28 |
---|---|
AI계의 셀럽 ChatGPT에게 도커(docker)에 대해 묻다 (0) | 2023.07.13 |
머신러닝, 딥러닝의 프레임워크, 이렇게 많았어? (0) | 2023.06.29 |
인공지능 및 IT 용어 정리 (0) | 2021.11.02 |
MLOps란 무엇일까요? (0) | 2021.08.09 |