들어가며..
AI 기술이 여러 산업에 적용이 되며 반복이 필요한 업무의 공수가 줄어들고 있다. 즉, RPA(Robotic Process Automation)가 필요한 industry에는 대부분의 기업이 AI 기술이 들어간 SW를 사용하고 있고 있고 꾸준한 니즈가 있다고 할 수 있다. 이때 문제가 되는 영역은 AI 모델의 노후화(⊂유지º관리)이다.
AI 모델의 노후화를 어렵게 생각할 필요가 없다. 간단한 응용 예시를 들어보자.
'A' 씨는 칼럼을 정리하는 일을 하고 있다. 'A' 씨는 칼럼을 ['경제', '문화', '사회', '기타']로 분류하고 있다. 사장이 'A' 씨에게 말한다. "우리 스포츠 칼럼도 받아볼까?" 'A' 씨는 멘붕에 빠진다. '스포츠' 칼럼이 생기면 '기타' 로 분류하고 있던 칼럼을 다시 확인하고 분류해야 하기 때문이다. 'A' 씨는 퇴사해야 할지 비슷하지만 요건이 바뀐 일을 다시 시작해야 할지 고민한다.
위의 예시에서 'A' 씨가 바로 AI 모델이다. 칼럼의 category 분류를 하고 있는 AI 모델은 사장의 급작스러운 요청으로 분류 작업을 멈출 수 밖에 없었다. '스포츠' 라는 새로운 요건이 생겼기 때문이다. 이것을 AI 모델의 노후화라고 말한다. AI 모델은 바뀐 요건 하에서 사용할 수 없게 되었다. 폐기 처분(=퇴사) 하거나 재학습(=바뀐 일을 다시 시작) 해야 한다.
위의 예시처럼 AI 모델의 노후화는 시간과 요건, 산업군의 특성 등에 따라 다양하게 나타날 수 있는 문제이다.
노후화를 대처하기 위한 전략
위의 예시에서 AI 모델의 노후화를 대처하기 위해서는 새로운 AI 모델을 만들거나 수정된 상황(∋요건)에 맞춰 재학습 해야 한다. 만약 당신이 사장이라면 기존에 사용하는 AI 모델을 버리고 새로운 AI 모델을 만들 것인가 아니면 재학습을 통해 기존의 지식에 수정된 상황까지 반영되어 더욱 업그레이드 된 AI 모델+ 를 사용하고자 할 것인가?
AI 모델로 업무를 자동화하길 원하는 기업은 당연히 적은 비용으로 좋은 효율을 내고 싶을 것이다. 때문에 업그레이드 된 AI 모델+ 를 사용하고 싶을 것이다. 왜냐하면 기존의 AI 모델을 폐기 처분(='A'씨의 퇴사)하기 아쉽기 때문이다. 이를 위해 Deep Learning 분야에서는 오랜 시간 AI 모델의 노후화를 대처하기 위한 많은 연구가 진행되었다.
이때.! AI 모델+ 를 만들기 위한 학습 방법이 본 포스팅에서 소개하고자 하는 Continual Learning 이다.
Continual Learning 이란?
필자는 데이터 사이언스 관련 일을 하고 있다. 그 중 NLP(=Natural Language Processing)를 하고 있다. 때문에 위의 예시도 NLP 중 NLU(=Natural Language Understanding)의 예시인 Classification(=분류) task를 말했다.
Continual Learning이란 간단히 말해서
'AI 모델이 기존의 지식은 잊지 않으면서 새로운 지식을 학습시키는 방법'
이라고 할 수 있다.
기존의 Deep Learning 모델의 단점은 아래와 같다.
- Deep Learning 모델은 한 번 학습시키면 input과 output의 형태가 고정된다.
→ y = f(x) 에서 y가 output, x가 input 이라고 이해하면 쉽다. - 만약 칼럼을 ['경제', '문화', '사회', '기타'] 중 하나로 분류하는 모델 A를 만든다면 A는 ['경제', '문화', '사회', '기타'] 4개의 종류만 분류할 수 있다.
- '스포츠' 칼럼을 분류하고자 한다면 모델 A의 구조를 바꾸어 output을 ['경제', '문화', '사회', '기타', '스포츠'] 5개로 분류할 수 있도록 재구성한 뒤, '스포츠'가 포함된 데이터를 새로 만들어 다시 학습시켜야 한다.
- 다시 학습시키는 것은 시간도 오래 걸릴뿐만 아니라 데이터를 ['경제', '문화', '사회', '기타', '스포츠'] 로 재구성해야 하기 때문에 데이터를 만들어주는 공수가 크다는 문제가 있다.
- 데이터를 재구성하는 공수가 가장 큰 문제다. 이전에 만들어 놓았던 '기타' 칼럼을 다시 읽고 '스포츠' 인지, '기타' 인지 label(=정답)을 다시 달아주고 '스포츠' 칼럼의 수가 부족한지 확인해야 하기 때문이다. 만약 '스포츠' 칼럼의 수가 부족하다면 모델은 '스포츠' 칼럼을 분류하는 능력이 부족하므로 '스포츠' 칼럼을 추가로 더 확보해야 한다.
이런 의문이 들 수 있다. 기존의 모델 A에 ['스포츠', '기타'] 데이터만 더 학습시키면 되지 않을까?
만약 모델 A에 ['스포츠', '기타'] 데이터만 학습한다면 다음과 같은 문제가 발생한다.
- ['스포츠', '기타'] 데이터만 학습한 모델 A-는 ['스포츠', '기타'] 칼럼은 잘 분류하지만 ['경제', '문화', '사회'] 칼럼 분류는 잘 못한다.
- 이것을 Catastrophic Forgetting 이라고 한다.
- 인공신경망(∈AI 모델)이 하나의 task에 대해서는 뛰어난 성능을 보이지만 다른 종류의 task를 학습하면 이전에 학습했던 task에 대한 성능이 현저하게 떨어지는 문제
우리의 목표는 기존의 칼럼 리스트인 ['경제', '문화', '사회'] 칼럼 분류를 잘 할 뿐만 아니라 새로운 요건인 ['스포츠', '기타'] 칼럼 분류 또한 잘 하는 모델을 만드는 것이다.
이를 위한 학습 방법이 바로 Continual Learning 이다.
Continual Learning 장점
필자가 생각하기에 Continual Learning 최고의 장점은 '데이터 공수 대폭 감소' 이다.
왜 그렇게 생각하는지는 다음과 같다.
- Continual Learning 학습 방법을 사용하지 않았을 때 → 기존의 AI 모델 폐기 처분 & 새로운 AI 모델 생성
- 기존에 가지고 있던 ['경제', '문화', '사회', '기타'] 분류 데이터에서 '기타' 칼럼을 다시 확인하며 ['기타', '스포츠'] 칼럼으로 분류해야 한다. 그렇다면 데이터를 만들 때 아래와 같은 사람의 공수가 들어간다.
- 기존 데이터를 다시 점검하며 새로운 요건에 맞게 수정
- '스포츠' 칼럼이 부족한지 확인
- '스포츠' 칼럼이 부족하다면 '스포츠' 칼럼 데이터를 추가로 확보해야 됨
- 기존에 가지고 있던 ['경제', '문화', '사회', '기타'] 분류 데이터에서 '기타' 칼럼을 다시 확인하며 ['기타', '스포츠'] 칼럼으로 분류해야 한다. 그렇다면 데이터를 만들 때 아래와 같은 사람의 공수가 들어간다.
- Continual Learning 학습 방법을 사용했을 때 → 기존의 AI 모델 업그레이드
- 기존에 가지고 있던 ['경제', '문화', '사회', '기타'] 분류 데이터를 수정해줘야 할 필요가 없어진다.
- 학습에 필요한 데이터는 "기존에 가지고 있던 분류 데이터" + "새로운 ['기타', '스포츠'] 데이터" 이다.
그렇다면 데이터를 만들 때 어떠한 사람의 공수가 필요할까?
- "새로운 ['기타', '스포츠'] 데이터" 만 추가해주면 됨
- 만약 ['기타', '스포츠'] 분류 성능이 낮다면, "새로운 ['기타', '스포츠'] 데이터" 만 더 추가하여 재학습 시키면 수정된 요건에 적합한 모델을 만들 수 있다.
- 기존에 가지고 있던 ['경제', '문화', '사회', '기타'] 분류 데이터를 수정해줘야 할 필요가 없어진다.
논문의 주장과 필자의 의견
논문에서는 Continual Learning 장점은 resource 감소에 있다고 한다. 여기서 resource란 것은 '데이터 재구성의 공수' 와 '학습 시간의 감소' 를 뜻한다. 하지만 필자가 읽은 Continual Learning 관련 논문들에서는 '데이터 재구성의 공수' 가 얼마나 줄어드는지, '학습 시간의 감소' 가 기존 대비 얼마나 줄어드는지, Continual Learning 학습 시 필요한 데이터의 양은 얼마나 되는지(데이터 양에 따라서 성능이 어떻게 변하는지)에 대해서는 설명하고 있지 않다.
필자가 확인하고 싶은 사항은 다음과 같다.
- Continual Learning 학습 시 데이터가 얼마나 필요한지 대략적으로 알 수 있는 실험과 결과 필요
- 다양한 task 실험 (ex. ner, cls, re, etc...)
- 각 task 마다 최소 3종류의 데이터 이상 실험하여 보편적으로 필요한 데이터의 양을 알 수 있도록 실험
- 데이터 재구성의 공수가 얼마나 줄어드는지 정량적으로 판단할 수 있는 근거 필요
- 공수의 수치를 정량적으로 얻을 수 있도록 어떻게 테스트해 볼 것인지 계획과 함께 결과를 보여줘야 함
- 테스트는 다양한 task로 실험해야 함
- 학습 시간 감소로 실시간 모델 서빙 및 업데이트가 가능한지 판단할 수 있는 근거 필요
- 기존 학습 시간 대비 Continual Learning 학습 시간 비교 가능하도록
- 기존 학습 시간 측정에 사용할 데이터셋은 어떻게 구성할 것인지, 학습 환경과 device 세팅은 어떻게 구성할 것인지 실험 계획과 함께 결과를 보여줘야 함
필자가 확인하고 싶어하는 실험과 결과는 많은 시간과 공수가 필요할 것이다. 또한 실험 계획을 세우기도 쉽지 않을 것이다. 기존 학습 방법과 Continual Learning 학습 방법의 process가 다르기 때문이다.
실제로 모델 노후화를 대비하고자 하는 고객(⊃회사)이 많이 있고, 실시간 서비스를 원하는 고객이 많아지고 있다. 때문에 위와 같은 결과는 고객의 판단에 도움을 줄 수 있는 자료이기에 필자는 위와 같은 사항을 확인하고 싶다.
다음 포스팅부터는 NLP 관련 Continual Learning 논문을 살펴보며 구체적으로 Continual Learning 에 대해 알아보도록 하자.
To Be Continued...
댓글