경량화 : AI in your pocket

시험점수 70점 80점 90점의 평균을 80점이라고 합니다. 여기서 평균은 대표값입니다. 여러 변량들의 공통적인 특징을 표현하기 위한 숫자가 대표값 (중앙값, 최빈값, 중위수, 평균 등)이고, 이러한 대표값 중 가장 널리 쓰이는 값이 바로 평균이지요.

이와 마찬가지로, 머신러닝 모델은 여러 데이터들이 공유하는 어떤 패턴을 표현하기 위한 함수입니다. 이 함수는 평균처럼 하나의 값이 아니라 여러 값을 동시에 표현할 수 있고, 단순한 시험점수보다는 더욱 복잡한 특징을 표현할 수 있지요. 이러한 함수 (=머신러닝 모델) 중 가장 표현력이 좋다고 알려져 광범위하게 쓰이는 함수가 딥 뉴럴 네트워크 (DNN)입니다. 아래와 같이 비유를 들 수 있지요.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/dde96724-3e14-44d1-8a4d-8a55e74712fd/figure.png

이처럼 여러 데이터의 공통적인 특징을 표현하기 위한 함수가 머신러닝 모델이기 때문에, 다양한 데이터를 아우르는 특징을 많이 표현하고 싶을수록 더욱 크고 복잡한 모델이 필요합니다. 머신러닝 기술이 좁은 실험실을 벗어나 사람의 일상생활에 적용될수록, 일상의 복잡다단한 여러 특징을 모두 담는 크고 복잡한 모델이 필요하게 되는 것은 자연스러운 흐름이 되지요.

머신러닝 모델 뿐 아니라 어떤 기술이든 초기에 큰 비용으로 성능향상을 이룬 후에는 사람 사회로 스며드는 방향이 있게 마련인데요. 지금은 흔한 컴퓨터도 개발 초기에는 아래와 같이 커다란 기계에서 고작 몇 자릿수의 단순한 계산만을 수행할 수 있었습니다. 세월이 지나면서 컴퓨터가 점점 소형화되고 주머니 안에 컴퓨터 (=스마트폰)를 들고 다닐 수 있게 되었지요. 크기는 점점 작아지고, 성능은 점점 좋아지는 방향으로 기술이 발전하는 모습입니다.

애니악 (ENIAC). 초기 컴퓨터

애니악 (ENIAC). 초기 컴퓨터

스마트폰. 후기 컴퓨터

스마트폰. 후기 컴퓨터

머신러닝 또한 아직 발전이 많이 필요한 분야고, 모델의 크기가 커짐에 따라 모델이 작동하는데 필요한 계산량도 따라서 늘어나게 되는데요. Nota는 기존의 크고 무거운 모델을 입력으로 받아서, 여기에 담긴 특징정보 중 보다 유의미하거나 중요한 정보를 남기고 덜 중요한 정보를 제거하는 압축 (compression)을 수행합니다. 이렇게 압축된 모델은 압축되기 전 모델보다 양적으로는 더 적은 정보를 담고 있지만, 모델 안에 들어있던 정보 중 덜 중요한 정보를 배제하였기 때문에 계산에 소요되는 시간이 적어지면서 비슷한 성능을 유지할 수 있게 됩니다. 크기는 점점 작아지고, 성능은 점점 좋아지도록요. 이처럼 머신러닝 기술이 반드시 거쳐가게 될 가까운 미래의 지점에 머신러닝 모델 경량화 기술이 있는 것이지요.

머신러닝 모델 경량화 프레임워크

머신러닝 모델 경량화 프레임워크

머신러닝 모델 경량화 문제를 푸는데에는 아래와 같이 다양한 사항을 고려해야 합니다.

이어서 다음과 같은 질문의 의의에 대해 좀더 알아보겠습니다.

왜 소형화는 아닌가?