산업의 미래을 위한 AI 만들기

AI 스타트업 MakinaRocks 윤성호 대표님의 강의를 기반으로 작성된 포스트입니다.

Latest progress in AI

여러분들은 자동차 생산 공정에 가보셨나요? 생산 라인에 있는 로봇들이 자동차를 만들게 되는데, 이러한 로봇들의 움직임은 컴퓨터로 프로그래밍 된 대로 움직입니다. 이러한 로봇들이 노후화되면 고장을 일으키게 되는데, 실제 공장에서 수십년동안 일 하신 분들은 로봇의 소리만 듣고도 고장을 탐지할 수 있다고 합니다. 최근에는 AI 기술들이 발전하다 보니까, 로봇에 사용되는 전류 값 들을 AI가 학습하여 정상 패턴에 대하여 인지하고, 비정상이 발생했을 때 오류를 잡아 낼 수 있다고 합니다.

그렇다면 이렇게 빠르게 발전하고 있는 AI가 어떻게 제조업을 혁신할 수 있을까요?


한국은 세계적인 제조업 강국입니다. 제조업이 전세계 GDP에서 차지하는 비율이 약 16% 정도라고 합니다. 무역에서는 약 70%를 차지하고 있고, 모든 산업을 통틀어 50% 이상이 제조업에 투자되고 있다고 합니다. 많은 서비스 산업이 발전하고 있지만, 여전히 제조업이 전 세계적인 산업에 매우 중요한 한 축을 차지하고 있습니다.

반도체 생산 공정에 있는 ASML 사의 EUB 장비는 한 대의 가격이 약 2,000억 원 정도 입니다. 그만큼 반도체 산업은 고부가가치 산업이고, 많은 투자를 필요로 합니다. 이렇게 비싼 장비를 사용하는데 불구하고, 반도체 생산 라인에 문제가 발생하기도 하고 불량품이 나오기도 하며, 생산 라인이 멈추기도 합니다. 이러한 예상치 못한 고장을 줄이기 위하여 AI 기술을 활용합니다.


Andrew Ng 교수는 열 개 정도 되는 모델로 수 억명에 달하는 사람들에게 서비스를 제공할 수 있다고 했습니다. 반면에 제조업 측면에서는 제조사 마다 각각의 모델이 하나씩 필요하다고 말합니다. (회사마다 제조하는 품목이 다르기에, 최적화를 위해서는 정말 다른 데이터를 활용해야 하기 때문입니다.)

MLOps가 industry에서 더 중요한 이유

제조업 AI는 model의 개수가 굉장히 많기 때문에 이러한 model들을 data scientist들이 일일이 관리하는 것은 매우 힘든 일 입니다.


ML이 어떤 특정 문제를 해결하기 위하여 개발하고, 데이터를 수집하고 분석하고, 실제로 배포하기까지의 전 과정을 ML Lifecycle이라고 합니다. 우리는 이러한 과정이 위 사진 처럼 진행되기를 기대하지만, 실제로 AI를 하다보면 이러한 과정이 절대 선형적으로 진행되지는 않습니다. 많은 기업들이나 AI를 연구하시는 분들을 만나다 보면, 각각의 단계의 퀄리티를 높이는 데 중점을 두고 계신 분들이 많습니다. 물론 각각의 단계를 완벽하게 만드는 것이 중요하지만, ML 프로젝트를 가장 효과적으로 하는 방법은 각 단계를 정말 빠르게 돌아보는 것입니다. 문제 정의를 하고, 데이터를 수집한 다음, 모델링을 하고 나서 부족한 부분에 대해 확인해보고 데이터 수집을 다시 한다던가, 배포를 해보고 모델링을 다시 하는 등의 과정이 반드시 필요합니다. 따라서 성공적인 ML 프로젝트의 핵심은 굉장히 빠르게 iteration을 반복하는 것입니다.


그런데 여기서 어려움이 발생합니다. 모델을 개발하는 개발 환경과, 배포하는 배포 환경의 차이로 인해서 빠른 라이프사이클을 실제로 수행하는 것이 어렵다는 것입니다. 여기서 MLOps라는 개념이 등장합니다. AI를 만든 이유는 배포를 해서 어떤 특정 값들을 예측한다거나 시스템 안에서 무언가를 서비스 하기 위함인데, 시스템적인 고려가 없을 때 AI가 실제 세계에 임팩트를 만들기 어렵습니다. ML을 잘 돌리기 위해서는, ML 이외에도 정말 많은 부분들을 필요로 합니다. Data collection 시스템도 있어야 하며, Data verification도 이루어 져야 합니다. 또한 모델들을 관리하는 Metadata management도 수행되어야 하고, 모델의 성능이 유지되는지 탐색하는 monitoring도 필요합니다. 이러한 전체적인 operation system architecture가 고려되지 않는다면, 우리가 만든 시스템이 엄청난 양의 maintenance cost를 발생시킬 것입니다.


따라서 최근에 MLOps가 각광받고 있는데요, MLOps는 이러한 머신러닝 모델의 배포, 운영, 개발까지 포함하여 이러한 것들을 효율화 할 수 있게 해주는 일종의 체계입니다. 배포나 iteration 과정을 사람이 수동적으로 하는 것이 아니라, 자동적으로 될 수 있도록 하는 것을 내포하고 있습니다. Neural network 같은 무언가가 장착되어 특정 시스템과 연동되어 실세계에 영향을 줄 수 있는 것이 MLOps 시스템입니다.

MLOps Level 0: 빈번하게 발생하는 문제

구글에서 MLOps Level을 0부터 2단계까지 정의를 해놓았는데, 그 중 0단계는 MLOps가 없다는 것입니다.

머신러닝 엔지니어가 새로운 모델을 만들어서 백엔드 엔지니어에게 배포해 달라며 모델을 전달했다고 생각해 봅니다. 백엔드 엔지니어는 모델을 받아서 자신이 직접 돌려보게 되죠. 그러나 전달 받은 모델이 제대로 작동하지 않는 문제점이 발생합니다.

머신러닝 엔지니어와 데이터 사이언티스트들은 본인들이 사용하는 패키지가 달라서 호환성 문제가 빈번하게 발생합니다. 다시 말해 개발 환경과 배포 환경이 다른 문제점이 발생한다는 것인데, 머신러닝 엔지니어는 본인이 편하게 개발할 수 있는 환경에서 개발하지만, 배포할 때는 자체적으로 배포되는 환경을 가지고 있기 때문입니다. 모델을 자주 업데이트 하다 보면, 이러한 문제점이 엄청나게 많은 비용을 초래하게 됩니다. 따라서 실세계 AI 문제에서 이러한 MLOps architecture는 반드시 고려되어야 합니다.

Anomaly Detection

AI로 로봇의 이상 현상을 탐지하는데 있어서 기술적인 어려움들이 있습니다.


이상 현상을 감지하기 위해서 진동 센서와 같은 것들을 활용할 수 있는데, 로봇들이 공장에서 사용될 때는 진동 센서를 기본적으로 가지고 있지 않습니다. 따라서 각 축 별로 로봇에 직접 센서를 달아주어야 하는 어려움이 발생합니다. 또 다른 문제는 Dynamic environment인데, 제품이 바뀔 때마다 로봇의 동작을 새로 프로그래밍 해주어야 합니다. 마지막으로 수집된 데이터를 가지고 AI를 트레이닝 한다고 하면 수집 된 데이터에서 얻었던 패턴이, 생산하는 제품이 바뀌고 로봇의 동작이 바뀌면 달라질 수 있습니다. 특정 task를 학습한 neural network가 새로운 task를 학습 하기 위해서 새로운 데이터를 이용하면 기존에 학습했던 지식을 급격하게 잊어버리기 때문입니다.

Intelligent Control

전기차나 내연기관에 보면 energy management system이 있는데 이것은 실내나 차량 내의 온도를 제어하는 역할을 합니다. 에어컨과 같이 온도를 맞추면 설정한 온도에 맞게 실내의 온도를 바꾸어주는 시스템입니다. 기존의 방식은 PID라고 불리는 단순한 방식을 사용하고 있습니다. 현재 온도가 우리가 목표로하는 온도보다 높다고 하면, fan을 돌려서 온도를 낮춥니다. 그러다가 목표로 하는 온도보다 낮아지면 fan 속도를 낮추어 온도를 높입니다. 이러한 과정을 반복하여 목표 온도에 머무를 수 있게 하는 방식이 PID 입니다. 그러나 이러한 PID 방식은 에너지 관리 측면에서 optimal하지 않습니다.


강화 학습을 사용한 경우 PID 방식에 비해 굉장히 일정하게 특정 온도에 도달하는 것을 알 수 있습니다. 특정 온도에 도달하고 나서는 레버들의 제어가 기존 PID 대비 변형이 적게 필요한 것을 확인할 수 있습니다. 이러한 과정에서 에너지를 절약할 수 있습니다.

Optimization & Automation


반도체 칩에 굉장히 작은 소자들이 있는데, 이러한 cell들을 배치하는 경우의 수는 엄청 많습니다. 실제로 반도체 공장에서 오랫동안 일한 설계자들의 노하우를 기반으로 배치를 진행하는데, chip placement를 심층 강화 학습을 기반으로 최적화된 배치를 하는 기술 또한 발전하고 있습니다.


자동차 생산라인에서 사용되는 로봇들이 AI와 직접적인 관련은 없습니다. 실제로 로봇의 동작들은 사람이 동작을 도출하고 있고, 이러한 동작들을 도출하는데는 약 2-3개월의 시간이 소요됩니다. robotics 기술과 AI를 합쳐서 새로운 기술을 만들어 이러한 과정을 자동화하고 있습니다. 생산 라인에 있는 로봇이 용접이 필요한 부분을 잘 방문할 수 있는지 검증하고, 이후에 실제로 로봇들에게 용접점들을 배분하게 됩니다. 배분점들에 로봇이 도달할 수 있는 모션을 robotics와 AI를 이용하여 자동으로 도출 해내고, 결과적으로 로봇들이 서로 충돌하지 않고 주어진 용접 task를 정해진 시간 내에 끝낼 수 있도록 합니다.

댓글남기기