인공지능(AI)이 미래의 먹거리이며 다양한 산업 분야에 적용된다는 말은 많이 들었어도 정확히 어떤 분야에 어떻게 적용되고 있다고 단정짓기에는 아직 무리가 있다. AI가 많이 발전한 것은 맞지만 여전히 여러 산업 분야에서 비즈니스화 되기 위한 시도 과정에 있기 때문이기도 하다.

AI는 수집된 데이터를 통해 분석 결과를 제공하는 기본 구조로 구현된다. 스마트 제조의 경우 비교적 데이터가 정형화 돼 있고, 분석 결과를 통해 얻어지는 제어값 또한 큰 틀을 벗어나지 않기 때문에 AI가 활발히 사용된다고 볼 수 있다.

하지만 그 외의 분야에서는 어떤 결과값을 원하고, 그에 따라 어떤 데이터가 필요한지를 모르거나 수많은 데이터를 가지고 있음에도 어떻게 가공해서 비즈니스화 시켜야 되는지 가늠이 되지 않은 경우가 많다.

그런 이유로 기업의 AI 담당자는 인공지능 기반 비즈니스 모델 구축 사례에 유독 주목한다.

차량 공유 플랫폼 대표 기업인 쏘카의 인공지능 적용 사례는 주목할 만 하다. 쏘카는 차량, 고객, 사용 이력, 지역 등 다양한 형태의 데이터를 가지고 비즈니스 효율화를 이끌었다. AI 융합 비즈니스 개발 컨퍼런스에서 쏘카 박경호 AI팀장이 발표한 내용을 토대로 그 방법을 살펴본다.

쏘카는 다양한 데이터를 활용해 비즈니스 효율화를 이끈다. / 쏘카
쏘카는 다양한 데이터를 활용해 비즈니스 효율화를 이끈다. / 쏘카
쏘카가 AI를 활용하려했던 이유

카셰어링 서비스에서 가장 필요한 부분은 운영이다. 카셰어링 분야에서 운영 이슈는 탁송, 세차, 배차, 주차, 차량 정비, 고객관리(CS) 등이 있다. 이러한 이슈는 소비자들의 이동 경험에 직결된다. 소비자들이 서비스를 이용하는 데 있어 이러한 이슈에서 문제가 발생되면 그에 대한 경험은 서비스 이용률에까지 영향을 미친다.

하지만 관리자 즉, 사람이 이를 하나하나 관리하는 것은 쉽지 않다. 가령 관리자 1명이 차량 20대를 운영관리하는 경우를 보면, 차 내/외부는 깨끗한지, 주유는 돼 있는지 등을 돌아보면서 관리할 수 있다. 만약 수가 늘어나면 더이상 기존의 관리 프로세스를 지속할 수 없다.

2021년 기준, 매니저 한 명이 200대를 관리하는 것으로 파악됐다. 한 사람이 20대 관리하는 것과는 차원이 다르다. 운영 차량이 2만대에서 4만대로 늘어난다면 한 사람이 400대를 관리해야 한다.

2024년 쏘카의 관리 차량이 10만대라고 예측한다면 1명의 관리자가 1000대를 운영해야 한다. / 쏘카
2024년 쏘카의 관리 차량이 10만대라고 예측한다면 1명의 관리자가 1000대를 운영해야 한다. / 쏘카
쏘카는 크게 세 가지 부분을 변화시키고자 했다. ▲운영 자동화 : 한 명의 운영 매니저가 좀더 자동화해서 서비스를 운영할 수는 없을까? ▲운영 효율화 : 어떻게 하면 운영 매니저가 차량을 운영할 때 조금 더 간결하고 효율적으로 운영할 수는 없을까? ▲더 나은 툴과 프로세스 : 어떻게 하면 더 나은 툴과 프로세스로 차량을 운영할 수 있을까? 등이다.

AI(인공지능)나 머신러닝이 부각되기 시작하면서 기업이나 연구소 등에서 ‘AI를 도입해보자’라는 요구가 많다. 반면 쏘카의 경우 AI를 도입하지 않으면 살아남을 수 없다는 위기 의식이 더 컸다. 고객도 늘어나고 쏘카존도 늘어나고, 이를 충족시키기 위해 증차하고 있기 때문에 AI는 선택이 아닌 필수였던 것이다.

과연 AI가 필요한가?

적재돼 있는 데이터베이스에서 원하는 테스크를 해결하는 상황을 가정해보겠다. 첫 번째 수행 작업은 데이터 추출이다. 데이터를 추출하는 쿼리 스크립트(Query Script) 작업을 하게 될 것이다. 수집한 데이터를 기반으로 트레이닝 데이터셋과 테스트 데이터셋을 만들 것이다. 트레이닝 데이터셋에서 모델을 학습시키고, 테스트 셋에서 그 모델을 검증한다. 이를 기반으로 모델을 학습시킨다.

마지막으로는 해결하고자 하는 타깃 레이블에서 벗어난 데이터를 처리하는 것이다. 앞서 과정을 진행하게 되면 태스크와 무관한 데이터가 현실에서는 발생할 것이다. 이를 OOD(Out Of distribution)라고 지칭한다. 예를 들면, 카셰어링 서비스 운영 중이므로 차량 관련 이미지만 있어야 하는데, 고기 사진, 강아지 사진, 셀카 등이 여기에 포함될 수 있다. 이러한 이미지들이 비즈니스에 적용되면 문제가 발생되기 때문에 걸러줘야 한다. 이렇게 마무리가 된다.

전통적인 AI 프랙티스 과정 / 쏘카
전통적인 AI 프랙티스 과정 / 쏘카
이제 다른 태스크를 해결하는 과정을 보겠다. 앞 부분과 똑같다. 쏘카는 이러한 전통적인 AI 구축과정에 질문을 하나 던졌다.

"과연 이게 효율적일까?"

우선 전통적인 AI 프렉티스(Conventional AI Practice)에서는 ‘배포의 부담’이 있다. 태스크마다 생기는 모델과 산출물(Artifact)을 배포해야 하고, 학습시킬 때 사용했던 데이터셋, 모델 웨이트 파일, 스크립트 파일 등 엄청나게 많이 발생하는 코드 자산들을 관리해줘야 한다는 것이다.

태스크마다 반복되는 작업도 문제다. 데이셋이 중복되는 경우도 많다. 예를 들어 차량의 파손과 정상, 차량의 오염과 정상을 구분하고 싶다면, 정상 데이터는 여러 번 사용하게 되는데 매번 동일한 데이터를 불러오고 적용하는 것은 분명 비효율적이다.

쏘카의 세 가지 방법

쏘카는 세 가지 방법 ▲도메인 벤치마크 데이터셋(Domain Benchmark Dataset) ▲리프리젠테이션 학습(Learned Representation) ▲엠엘옵스 플랫폼(MLOps Platform)을 마련했다.

1. 도메인 벤치마크 데이터셋(Domain Benchmark Dataset)

AI 관련 논문을 보면, 퍼블릭 벤치마크 데이터셋에서 연구하는 경우가 많다. 그런 논문 연구는 대부분 이미지 도메인에서는 이미지넷(ImageNet), 선(SUN), 싸이파(CIFAR)-10/100 등의 데이터셋에서 학습을 진행하고 검증도 진행한다.

NLP(자연어처리) 도메인 같은 경우는 스쿼드(SQuAD, 자연어 독해) 데이터셋이나 글루(GLUE, 자연어 이해), 혹은 한국 버전으로 공개된 클루(KLUE) 같은 데이터셋에서 주로 작업을 진행한다. 연구적인 도메인에서는 이렇게 퍼블릭 벤치마크 데이터셋이 있다. 하지만 현실은 다르다. 이미지넷에서 사용한 데이터셋을 우리(쏘카) 도메인에 그대로 사용하기 어렵다. 무언가 도메인 문제를 풀고자 한다면 도메인에 최적화 된 데이터셋을 만들어주는 과정이 필요하다.

쏘카의 경우 크게 네 가지 플로우에서 이미지, 텍스트 등의 데이터가 발생한다.
1) 유저의 쏘카 서비스 이용 전/후 – 쏘카를 사용하기 전 앱으로 차량 내/외관을 촬영하는 이미지 데이터(사용자들이 업로드하는 데이터)
2) 쏘카플랜 인수 및 양도(월 단위 카셰어링) – 쏘카는 월 단위 렌트 서비스가 있는데 인수하고 양도할 때 발생하는 데이터
3) 쏘카 차량 세차 – 유저들이 직접 세차해서 올린 이미지들이 적재되고 있다.
4) 쏘카 차량 경정비 – 차량이 파손되거나 수리되었을 때의 차량 사진은 사용자 및 공업사에서 업로드 해주고 있다.

다양한 차량 이미지로 데이터셋을 만들기 위해서는 트레이닝셋, 테스트셋, OOD셋, 익스터널 밸리데이션의 필요하다. / 쏘카
다양한 차량 이미지로 데이터셋을 만들기 위해서는 트레이닝셋, 테스트셋, OOD셋, 익스터널 밸리데이션의 필요하다. / 쏘카
이처럼 정말 다양한 소스에서 데이터가 발생하고 있다. 위 사진과 같이 정말 다양한 차량 이미지들이 존재한다. 이 이미지 데이터들에서 정제된 데이터셋을 만들어야 한다. 먼저 모델 학습시킬 수 있는 트레이닝셋(Training Set)을 만들어야 하고 테스트셋(Test Set) -> OOD set -> 마지막으로 좀더 검수를 위한 익스터널 벨리데이션(External Validation, 현재 모델이 실제 배포되었을 때는 어떤 임팩트를 가질까, 정말 잘될까 하는 검증 데이터셋)을 만들어야 한다.

가령 데미지 디텍션이라고 부르는 차량의 파손 여부를 탐지하는 테스트를 살펴보자. 이 차량이 파손됐는지 여부를 구분해본다면 타깃 레이블로는 정상/파손 이렇게 두가지 레이블로 나눌 수 있다.

트레이닝셋에 두 가지 레이블을 갖는 바이너리 클래시파이어(binary classifier, 바이너리 인식기)를 만든다. 오염된 차량의 경우 ‘파손’이라고 인식하면 안된다. 이런 이미지는 걸러줘야 하는데, 이는 OOD 데이터셋에 포함된다.

이 태스크에만 4개의 데이터셋이 필요하다. 이런 프로세스가 지속된다면 태스크마다 데이터 개수가 너무 많이 늘어난다. 과연 이 방법이 효율적일까?

첫 번째 문제는 데이터셋의 관리가 매우 불편하다는 것이다. 이렇게 데이터셋이 많아지면 데이터셋 안에 어떤 데이터가 들어있는지도 모르겠고, 이것을 관리하기 위한 스토리지 비용도 부담된다. 이외에도 여러가지 이슈가 생긴다.

차량 파손과 오염의 이중 레이블 예시 이미지 / 쏘카
차량 파손과 오염의 이중 레이블 예시 이미지 / 쏘카
다음은 이중 레이블(Duplicated Labels)이다. 앞서 데미지 디텍션 태스크를 보면, 정상과 파손을 구분하는 바이너리 클래시피케이션(binary classification)을 진행한다. 그런데 오염 탐지 관점으로 생각해보면 정상과 오염을 구분 짓는 태스크로 변하게 된다.

파손 디텍션 태스크, 오염 탐지 태스크를 보면, 정상 데이터는 여러 번 쓰인다. 앞서 오염과 파손의 경우만 언급했지만 세차를 인증, 검수, 차량의 이미지 다루는 여러 도메인에서 중복적으로 발생하는 데이터들이 바로 정상 데이터라는 것이다. 이는 분명한 비효율이다. 태스크 마다 데이터를 생성해야 하기 때문이다.
그래서 쏘카 비즈니스에서 발생하는 여러 데이터를 포함하는 도메인 벤치마크 셋을 만들 필요가 생겼다.

예를 들어 이미지 도메인에서 다루는 이미지넷, NLP 도메인에서 다루는 글루나 클루, 혹은 스쿼드같은 데이터셋처럼 쏘카만의 비즈니스 문제를 풀 수 있는 쏘카만의 이미지넷, 쏘카만의 스쿼드를 만들고자 했다. 이것을 ‘쏘파(SOFAR, SOcar dataset For Advanced Research)’라고 부른다.

쏘카는 차량의 여러가지 상태(파손, 오염, 외부 세차, 컵홀더 상태, 매트 세척 상태, 시트 상태 등)를 파악할 수 있는 라지 스케일의 데이터셋을 구축했다.

- SOFAR 데이터 벤치마크 특징 3가지
1) 차량 내/외부 관련한 14개 클래스로 구성돼 있는 데이터셋
2) 모든 이미지들을 현실에서 직접 수집한 ‘Real-World’ 데이터
3) 전체 2만장 이상의 샘플을 가지고 있는 라지 스케일 데이터셋

쏘카 데이터셋은 곧 공개할 예정이다. 쏘카는 이런 모빌리티 에코시스템을 통해 더 많은 연구자, 개발자들이 참여해 생태계를 확산하기를 기대한다. 차량에 대한 데이터를 다루고 연구하는 환경이 만들어지는 것이 해당 산업의 규모를 키울 수 있는 방법이라고 생각한다.

2. 리프리젠테이션 학습(Learned Representation)

앞서 도메인에서 다루는 벤치마크 데이터셋까지 만들었다면, 이제 데이터를 잘 이해하는 Representation을 어떻게 잘 만들을 수 있을까라는 질문이 생기게 된다.

우리가 일반적으로 딥러닝을 통해 문제를 푼다면, 트랜스퍼 러닝(Transfer Learning)을 사용하는 것이 일반화 되었다. 이미지넷이나 마이크로소프트의 코코(COCO)와 같은 모델을 사용한다거나 혹은 클루, 스쿼드 또는 위키피디아에서 학습되어 있는 데이터를 일반적으로 많이 사용하고 있다.

여기서 또 하나 의문이 들었다.
"과연 이미지넷을 학습한 모델이 우리 차량 데이터를 잘 이해할까?"

개, 고양이, 주전자, 차 등을 구분하는 모델이 과연 차량 상태 여부를 판단할 수 있는지에 대해서는 여전히 의문이었다. 그렇다면 쏘카의 도메인에 최적화 된 리프레젠테이션 학습을 미리 확보한다면 효율성을 높일 수 있다는 기대가 있었다.

쏘카가 도입했던 AI 연구는 리프레젠테이션 학습에 대한 연구였다. 단순하게 이미지넷에서 학습된 레이어를 이용해 파인튜닝(fine tuning)을 한 것이 아니라 우리가 갖고 있는 도메인 데이터셋에 Self-Supervised Learning 이나 Contrastive Learning 같은 패러다임을 적용해서 조금 더 우리 도메인을 잘 이해하는 리프레젠테이션을 만들자고 생각했다.

파인튜닝은 기존에 학습되어져 있는 모델을 기반으로 아키텍쳐를 새로운 목적에 맞게(나의 이미지 데이터에 맞게) 변형하고 이미 학습된 모델 웨이트(Weight)로부터 학습을 업데이트하는 방법을 말한다.

차량 이미지 데이터에 적용한 Self-Supervised Learning / 쏘카
차량 이미지 데이터에 적용한 Self-Supervised Learning / 쏘카
- Self-Supervised Learning 이나 Contrastive Learning의 예시
그림처럼 차량 이미지가 있을 때 0도, 90도, 180도, 270도 4개 각도로 틀어준다. 제대로 된 이미지에 대해서는 0번 레이블, 90도는 1번 레이블, 이렇게 2번 레이블, 3번 레이블을 달아준다. 그 다음 컨볼루션 신경망(CNN, Convolutional Neural Networks)을 통해 풀어볼 수 있도록 한다.

이 과정을 의인화 해보자면, 모델이 차량 사진을 보고 ‘이건 0도’라고 판단했지만 실제 90도면, 이런 오류를 스스로 판단하고 수정하는 과정을 거치며 학습한다. 이런 학습 과정을 거치면 CNN은 데이터의 특징을 잘 이해하고 있다는 연구결과가 많다.

이렇게 차량 도메인 데이터를 통해서 리프리젠테이션 학습 과정을 거친 결과 이미지넷 웨이트 대비 작게는 1%, 크게는 8%의 성능 향상을 달성할 수 있었다.

3. 엠엘옵스 플랫폼(MLOps Platform)

쏘카는 모델링부터 실험, 나아가 배포까지를 끊김없이 제공하는 플랫폼을 목표로 하고 있다.

1) 모델링(Modeling)
쏘카는 모델링을 할 때 사이언시스트, 엔지니어들이 원하는 GPU 타입, 이미지 유형, 디스크 사이즈, 서버 리소스 등을 자유롭게 테스트에 맞게 스케일링을 진행할 수 있는 엠엘옵스 플랫폼을 운영하고 있다.

2) 실험(Experiments)
작업환경을 만들었으면, 이제 실험을 해야 한다. 실험을 하다보면, 실험의 로깅(Experiment Logging)에 대한 필요성을 느낀다. 엠엘옵스 플랫폼에는 어떤 손실 함수(Loss Function)를 사용했고, 어떤 데이터셋을 이용했고, 그 결과로 나온 성능이 얼마이고, 그렇게 학습된 모델의 웨이트 파일이나 아티팩트(Artifact)까지 저장해줄 수 있는 실험의 로깅 서비스가 포함돼 있다. 이렇게 플랫폼을 이용하면, 과거처럼 엑셀 시트에 모든 실험 결과를 저장할 필요가 없어진다.

3) 서빙(Serving)
실험을 통해 만들어진 아티팩트가 최적이라고 의사결정이 이뤄지면 실제 배포하기 위한 서빙 작업이 이뤄져야 한다.

서빙 작업에는 오프라인 인퍼런스(Inference), 온라인 인퍼런스가 있다. 오프라인 인퍼런스는 1시간 단위로 적재된 데이터를 받아 인퍼런스를 수행하는 Batch Serving이다. 예를 들어 특정 데이터베이스에 계속해서 적재되고 있는 데이터가 있다면 1시간 마다 끌어와서 인퍼런스 수행하고 적재까지 해주는 것이다. 결국에는 특정 다른 테이블에 적재된 데이터들을 인퍼런스 수행해서 다른 테이블에 모아서 분석, 엔지니어 등이 사용할 수 있도록 테이블을 만들어주는 것이다.

온라인 인퍼런스는 모델 저장 후에 바로 웹서버를 자동으로 생성해주는 기능이다. 가령 채팅 모델을 만든다면, 유저가 메시지 보내면 바로 답이 와야 한다. 바로 응답을 하는 경우에는 모델을 저장한 후 웹서버를 자동으로 띄워줘서 편리하게 온라인 서버를 이용할 수 있도록 엠엘옵스 플랫폼에 기능을 구현해두고 있다.

케이스 스터디

카 스테이트 클래시파이어(Car State Classifier)라는 사례다. 여러 소스에서 업로드 된 차량들의 이미지들을 이용해 차량의 상태를 파악하는 테스트를 의미한다.

사진을 보면, 사용자나 긱워커(Gig Workers)들이 올려준 이미지들이 데이터베이스에 쌓이게 된다. 이 이미지들을 모델이 받아서 인퍼런스를 수행하게 된다. 이 모델은 쏘파 벤치마크 데이터셋을 통해 학습되었고, 프리 트레이닝 후에 파인 트레이닝을 진행하게 된다. 그 결과로 사진을 보고 정상, 파손, 오염 등으로 분석하게 된다.

AI 도입 전 후 차량 이미지 분류 작업 비교 / 쏘카
AI 도입 전 후 차량 이미지 분류 작업 비교 / 쏘카
만약 파손으로 인식했다면 어떤 차인지 파악한 후 사고관리 부서에 인계하고, 오염이 예측됐으면 차량경험 부서에 인계한다. 그렇다면 이 AI 모델은 비즈니스적으로 어떤 가치를 가질까?

예전에는 하루에 10만장 이상 업로드 되는 이미지를 운영매니저가 다 검토해야 했다. 비효율적이고, 휴먼 에러도 있고, 무엇보다 매니저 입장에서 매우 힘든 일이다. 그런데 AI 도입 이후에는 AI가 먼저 초벌 검토한 후 운영 매니저가 보고 확인해야 할 이미지들만 전달한다. 일종의 비서 역할인 것이다. AI의 인식 및 판단 수준은 파손 부분만 보더라도 긁힘, 파임, 이격, 큰 파손 등 세부적으로 판단이 된다.

차량 이미지 분석뿐만 아니라 고객 상담 부분에도 이러한 AI 분석 시스템을 적용할 수 있다. 쏘카는 운영의 완전 자동화를 목표로, 이를 기반으로 AI가 드라이브하고 있는 오퍼레이션 엑설런스(AI-driven Operational Excellence)를 달성하고자 한다.

조상록 기자 jsrok@chosunbiz.com

#쏘카 #차량공유 #인공지능 #AI #도메인벤치마크데이터셋 #리프리젠테이션 #MLOps #CNN #모델링 #NLP #대한민국인공지능기업 #대한민국인공지능기업정보집 #대한민국인공지능대상


대한민국 인공지능 기업정보집 신청접수