brunch

You can make anything
by writing

C.S.Lewis

by 뭅즤 Dec 09. 2022

AI 모델 개발이 쉽지 않은 이유

AI 엔지니어의 업무


알파고를 시작으로 가장 최근의 DALL-E, ChatGPT까지 우리가 알고 있는 AI 기술력은 이미 상당히 우수합니다. 하지만 AI 개발팀과 협업하시는 분들은 개발팀에서 “그건 안된다. 불가능하다”, “시간이 많이 필요하다"라는 등의 말을 꽤 자주 듣습니다. 음... 이들은 그저 일하기 싫어하는 사람들일까요? 오늘은 이들의 마음을 조금이라도 살펴보기 위해 인공지능 모델 개발이 쉽지 않은 이유와 다른 기술과의 차이점에 대해 알아보도록 합시다.


*AI 모델 개발

AI 엔지니어는 특정 문제를 해결하거나 데이터에서 의미 있는 결과를 도출해 내기 위한 AI 모델을 개발합니다. AI 분야의 경우 학회가 굉장히 활발하기 때문에 대부분의 AI 프로젝트 정보를 논문에서 찾을 수 있습니다. 논문에는 특정 프로젝트에 대한 상세한 설명과 제안하는 알고리즘과 실험 방법에 대한 설명이 있기 때문에 AI 모델 개발에 필요한 정보를 얻을 수 있습니다. 또한 대부분 논문과 함께 실험에 사용한 코드 또한 깃허브에 공개하기 때문에 AI 엔지니어는 논문과 소스 코드를 함께 활용할 수 있게 되는 것이죠. 

때문에 AI 모델을 개발하기 위한 시작은 관련 프로젝트의 논문을 찾아보면서 다른 사람들(기업)은 어떻게 비슷한 문제를 해결했는지 찾아보는 것입니다. 논문을 보면서 관련 분야의 지식과 노하우를 습득하고 현재 기업에서 풀어야 할 문제에 더욱 잘 맞는 방법은 무엇인지 고민해야 합니다. 그 과정 속에서 데이터 전처리나 뉴럴 네트워크의 수정 등을 거쳐 필요한 AI 모델을 개발하게 되는 것입니다.



AI 모델 개발이 쉽지 않은 이유


인공지능 모델 개발이 쉽지 않은 이유로는 데이터 확보에 대한 어려움, 인건비, 개발 시간 소요, 성능 이슈, 유지 보수의 어려움 등이 있지만 사실 결국 따지고 보면 모두 '돈' 문제입니다. 좋은 인공지능 모델을 개발하기 위해서는 기업이 충분한 시간과 돈을 투자해야 하는데, 현실은 늘 쉽지 않습니다. 대부분의 기업은 당장의 이윤이나 비용절감 또한 중요한 문제이기 때문입니다.


때문에 사실 인공지능 모델을 개발하기 전에 과연 이 문제를 풀기 위해 AI 기술이 필요한지, 필요하다면 정말 회사의 이윤과 연결될 수 있는 기술인지에 대한 충분한 검토가 필요합니다. 


지금부터 조금 더 자세하게 인공지능 모델 개발이 쉽지 않은 이유들에 대해 알아보겠습니다.  


데이터 확보

인공지능 모델은 예측값과 정답과의 차이를 줄여가는 방식으로 학습합니다. 인간이 학습하는 것처럼 정답지와 해설지를 보고 문제를 푸는 방법을 꼼꼼히 익혀나가는 방식이 아니라 그저 문제와 정답 정보만을 가지고 학습하는 것이죠. 때문에 성능 좋은 딥러닝 모델을 만들기 위해서는 상당히 많은 수의 데이터가 필요합니다. 데이터가 많아야 딥러닝 모델이 풀어야 할 문제와 정답 간의 상관관계를 파악할 수 있기 때문입니다.


이처럼 딥러닝 모델 학습에서는 데이터가 정말 중요한데요. 데이터 확보가 쉽지 않은 이유는 [입력정보] - [정답] 이 함께 있는 양질의 데이터를 확보해야 하기 때문입니다. 인공지능이 학습하기 위해서는 정확하고 규격화된 정답 정보가 필요하고, 이를 만들기 위해선 많은 인력과 시간이 필요합니다. 또한 작업자가 각각 다른 기준을 가지고 정답 정보를 만들게 되면 모델 학습에 혼란을 야기할 수 있기 때문에 주의가 필요합니다. 다 만들어진 데이터의 검수도 필수적인 작업이지만 수많은 데이터를 검수하는 것 또한 쉽지 않습니다. 


또한 양질의 데이터는 어떤 카테고리를 포괄적으로 아우를 수 있는 데이터여야 합니다. 예를 들어 여러 동물을 분류할 수 있는 인공지능을 만들 때 강아지 데이터로 몰티즈만 가지고 있다면 베들링턴 테리어를 강아지로 판별할 수 있을까요? 또는 서있는 앞모습의 강아지 이미지만 가지고 있다면 누워있는, 앉아있는 강아지를 강아지라고 판별하지 못할 수도 있습니다. 이처럼 데이터를 구축하기 위해서는 하나의 카테고리가 가지는 정말 다양한 형태의 데이터를 최대한 많이 모아야 합니다.


음… 그런데 이런 의문을 가지는 분이 계실 것 같습니다. “공개된 데이터가 굉장히 많고 공개된 학습된(pre-trained) 모델도 많지 않나요?” 대부분의 AI 분야에 공개된 퍼블릭 데이터셋이 많은 것은 사실이고 이렇게 공개된 데이터셋으로 어느 정도 수준의 모델을 개발할 수는 있습니다. 하지만 기업에서 실질적으로 활용하기 위한 AI 모델을 만들기 위해서는 공개된 데이터셋 외에 풀고자 하는 문제에 더욱 적합한 양질의 추가적인 데이터가 꼭 필요합니다. 기업에서 원하는 수준의 정확도가 90% 라면 공개된 데이터셋으로만 학습한 경우 80% 정도의 성능만 나올 수도 있다는 뜻입니다. 


금융, 의료 분야와 같이 특수한 분야인 경우에는 순수 데이터를 모으는 것 자체가 쉽지 않은 경우도 많습니다. 보안 문제 때문에 함부로 데이터를 사용할 수 없는 분야이거나 예외 케이스에 대한 데이터가 굉장히 적은 경우입니다. 금융 분야에서 이상 거래를 탐지하거나 의료분야에서 특정 비정상 정보를 탐지하는 모델을 만들기 위해서는 정상 데이터와 비정상 데이터를 균형 있게 확보해야 하지만 대부분의 경우 비정상 데이터가 확연히 적은 경우가 많습니다.


AI 모델 학습에서 데이터는 정말 중요하지만 앞서 살펴본 여러 이유들 때문에 양질의 데이터를 확보하는 것은 정말 쉽지 않습니다. 



DALL-E 가 생성한 연어 이미지


한 가지 예시만 보고 다음 이야기로 넘어가도록 하겠습니다. 텍스트를 입력하면 사진이나 그림을 생성해 주는 DALL-E 모델에게 ‘Salmon in the sea(바닷속의 연어)’라는 입력을 넣어 봤습니다. 그랬더니 위와 같은 연어 회가 바닷가에 덩그러니 놓여 있는 이미지를 생성해 줍니다. 제가 상상한 그림은 물고기 형태의 연어가 바닷속을 헤엄치는 것이었는데 말이죠. 이러한 문제 역시 데이터에서 비롯되는 것입니다. 구글에 ‘연어’를 검색만 해봐도 알 수 있듯이 검색 결과에는 연어 요리가 대부분입니다. 올바른 학습을 위해서는 연어, 연어회, 연어 스테이크 등의 텍스트와 올바른 이미지가 적절하게 매칭된 상태로 분류되어 있어야 하지만 그렇지 않은 경우 딥러닝 모델이 ‘연어'라는 텍스트를 연어회 이미지와 매칭시켜 버리는 경우가 생기는 것이죠.  

 

성능 하락 & 유지보수

양질의 데이터로 인공지능을 학습시키서 성능 좋은 모델을 만들어 냈더라도 여기서 끝이 아닙니다. 개발한 인공지능 모델에 실제 유저의 데이터가 유입되면서 성능이 떨어지기 때문입니다. 많은 분들이 딥러닝 모델은 사용할수록 점점 더 똑똑해진다고 알고 계신 경우가 있지만 이는 사실이 아닙니다. 딥러닝 모델은 학습을 거듭하며 성능이 좋아지는 것이지 실제 필드에서는 점점 성능이 떨어지게 되어 있습니다. 이는 전자제품처럼 하드웨어가 낡아서 성능이 떨어진다는 개념이 아니라 인공지능 모델을 학습시킬 때 사용한 데이터의 다양성에 비해 실제 필드에서 유입되는 데이터의 다양성이 더 크기 때문에 발생하는 현상입니다. 인공지능 모델 개발 시 고려하지 못했던 케이스의 데이터가 유입되는 경우가 많기 때문입니다. 또한 예를 들어 패션 업계처럼 새로운 제품이 발 빠르게 출시되는 업계에서 사용하는 AI 모델의 경우 새롭게 출시되는 제품이 입력으로 들어가는 경우 올바른 예측을 하기란 쉽지 않습니다.


때문에 이러한 현상을 개선하기 위해 배포된 인공지능 모델의 성능을 지속적으로 모니터링해야 합니다. 모니터링 결과를 분석하여 추가 데이터를 확보하여 재학습을 하거나 적절한 전후처리 기능을 추가하여 성능 하락을 막아야 하는 것이죠.


인공지능 모델을 전자제품에 비유해 보면 구매하고 고장 나지 않는 이상 쭉 사용하는 TV 같은 제품이 아니라 공기 청정기나 정수기처럼 구매 후에도 잘 관리하고 필터도 적절한 시점에 갈아줘야 하는 손이 많이 가는 제품 같기도 합니다. 때문에 정수기 관리해 주는 케어서비스가 있듯이 머신러닝 모델을 유지보수하기 위한 MLOps라는 개념이 존재하는 것이죠.  



부분 수정의 어려움 - 다른 기술과의 차이

AI 모델 유지보수에 이어지는 내용이 있어서 AI 기술과 다른 기술과의 차이점에 대해서도 간략하게 알아보겠습니다. 우선 AI 기술이 아닌 특정 알고리즘의 경우 사용하다가 문제가 발생하면 문제가 발생하는 부분을 찾아내기 비교적 수월합니다. 때문에 알고리즘을 단계적으로 분석하며 문제가 생기는 부분을 찾아서 수정할 수 있습니다. 하지만 학습을 이용한 AI 기술의 경우는 모델 안이 블랙박스와 같기 때문에 문제를 찾아내기도 힘들고, 문제점을 파악하더라도 AI 모델 자체를 수정하기 위해서는 재학습을 해야 한다는 수고로움이 발생합니다. 때문에 기획팀의 간단한 요청일지라도 AI 개발팀에서는 문제를 해결하기 위해 데이터를 추가적으로 확보해서 재학습을 진행하거나 요청사항에 부합하도록 모델 결과를 후처리 하는 기능을 추가해야 하는 경우가 발생합니다. 또는 모델이나 특정 알고리즘을 수정하기 위해 논문을 찾아보는 등의 리서치 기간이 필요합니다. 이러한 과정이 어려워서 문제라기보다는 시간이 걸리는 문제이기 때문에 보통의 경우 AI 개발팀에서는 하나의 요청으로 위와 같은 과정을 진행하기보단 여러 문제를 파악해서 한 번에 버전업을 하는 것이 효과적이라는 생각을 하게 되는 것이죠.


다시 한번 정리해 보면 AI 기술은 학습을 통해 완성되는 블랙박스 형태의 기술이기 때문에 다른 기술과 달리 특정 부분만 수정하는 것이 불가능하다는 것입니다. 때문에 유지보수 관점이 학습을 사용하지 않는 기술과 다르게 적용되는 것이죠.  



고비용

제일 처음 말씀드렸다시피 결국 인공지능 모델 개발에는 정말 많은 비용이 발생합니다. 먼저 AI 엔지니어를 고용하기 위한 인건비가 들고 앞서 말씀드린 데이터 확보나 성능 유지보수에도 시간과 비용이 많이 발생하기 때문입니다. 또한 인공지능 모델을 개발하기 위해서는 리서치 기간도 필요하기 때문에 개발 시간 또한 많이 소요됩니다. 여기서 끝이 아닙니다. 인공지능 모델은 정말 많은 데이터로 학습시키기 때문에 다수의 장비(GPU)가 필요합니다. 단 한 번의 학습으로 좋은 인공지능 모델을 만들 수 없고 수많은 실험을 해야 하기 때문에 장비를 대여해서 사용하더라도 꽤 많은 비용이 발생합니다. 


때문에 결국 AI 기술을 확보하고 싶은 기업은 시간과 비용을 투자하여 AI 기술 팀을 만들거나 기술력을 선점하고 있는 AI 솔루션 업체의 솔루션을 제공받는 방법 중 하나를 선택해야 합니다. 단순히 비용 문제뿐만 아니라 데이터 보안이나 기술 유지보수 등 여러 관점에서의 고민이 필요할 것 같지만, 무엇이 더 현명한 선택인지는 상황에 따라 다를 것 같습니다.



매거진의 이전글 자연어 처리(NLP) - 개인화, 업무 자동화의 시작
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari