brunch

You can make anything
by writing

C.S.Lewis

by 인용구 Sep 02. 2024

저는 뭘 하고 있는 걸까요

알려주실 분

1. 롱테일 인식(Long-tailed recognition, LTR) 문제는 머신 러닝에서 극심한 데이터 불균형을 다루는 연구 주제이다. 기존의 이미지 분류(Image classification) 문제는 보통 범주 간 데이터 수가 유사한 데이터셋 위에서 다루어졌는데, 현실에서 데이터셋을 구성한다고 하면 모든 범주의 데이터 수를 균일하게 맞추는 것은 상당히 어려운 일이다. 예를 들어 동물 데이터셋을 구성한다고 했을 때, 주위에서 쉽게 볼 수 있는 고양이나 개, 햄스터 같은 경우는 영상을 수백, 수천 장을 수집하는 것도 무리가 아니지만 멸종위기종인 반달가슴곰의 영상을 그만큼 수집하는 것은 비용이 많이 들거나 상황에 따라서는 아예 불가능할 수도 있다. 실제로 롱테일 인식 분야에서 다루는 iNaturalist 데이터셋은 5000종 이상의 생물 데이터를 다루고 있는데, 가장 데이터 수가 적은 범주에 비해 가장 데이터가 많은 범주는 그 수가 400배 이상 차이가 날 정도로 불균형이 심하다.

"The iNaturalist Species Classification and Detection Dataset", CVPR 2018

    위의 그림과 같은 데이터 분포를 롱-테일 분포(Long-tailed distribution) 또는 파레토 분포(Pareto distribution)이라고 한다. 사회과학에서 종종 거론되는 2080 법칙 - 상위 20%가 전체 부의 80%를 소유한다 - 를 처음 발견한 빌프레드 파레토(Vilfred Pareto)에서 따온 이름이다. 이때, 전체 데이터의 많은 비율을 차지하는 소수의 상위 범주들을 머리(head), 데이터가 적은 하위 범주들을 꼬리(tail)라고 부른다.

    이러한 데이터 불균형에 대한 고려 없이 딥러닝 모델을 학습시키면 모델은 머리 범주에 대해 큰 편향(bias)을 갖는다. 마치 모든 범위를 골고루 공부하지 않고 시험 범위의 앞부분 문제만 엄청 열심히 풀어본 학생과 비슷하다. 학습 데이터에서 많이 보이는 것은 머리 범주니까, 꼬리 범주에 대한 분류 정확도를 희생하더라도 머리 범주를 잘 분류해 내는 것에 집중하는 것이다. 그 결과로 데이터가 적은 꼬리 범주에 대해서는 분류 성능이 거의 나오지 않는데, 이를 해결하고자 하는 것이 롱테일 인식 문제이다.


2. 대학원에서 롱테일 인식 문제를 연구하는 것에 나는 어느 정도 자부심을 느끼고 있었다. 첫째로, 이상적인 데이터셋이 아니라 주위에서 직접 볼 수 있는, 현실의 불균형이 실재하는 상황에서 딥러닝 모델을 활용하기 위한 연구라는 것. 학습 데이터가 많을수록 성능이 증가한다는 단순한 머신 러닝의 전제 위에서, 비용 문제로 인한 데이터 취득의 한계를 인정하고 그것을 해결하는 롱테일 인식 문제는 실용성 측면에서 매력적인 주제였다.  

    둘째로, 나의 진보적인 정치 성향과 맞는달까. 숫자에 밀려 소외되는 집단에 대해 더 많은 관심을 기울이도록 모델을 설계하는 것, 적은 수의 샘플만으로도 그 집단의 특징을 파악할 수 있도록 더 좋은 표현을 학습하는 것. 이는 공학적인 문제를 넘어서서, 계층 간 불평등을 완화하고 약자들을 더 잘 대변하기 위한 사회 정의를 고민하는 과정이기도 했다. 실제로 소외 계층, 꼬리 범주에 더 큰 가중치를 부여하여 모델을 학습하였을 때 전체 분류 성능이 오르는 것을 확인하였을 때는 퍽 감동적이기까지 했더랬다. AI 연구에서도 데이터의 불균형으로 인한 모델 편향은 중요한 윤리적 이슈이기 때문에, AI의 무차별적인 "침공" 속에서 단순히 최신의 기술을 좇는 것이 아니라, 현실적이고 윤리적인 문제를 해결하는 연구를 한다고 생각했다.

 

3. 그런데 최근, LTR의 연구 동향이 크게 바뀌고 있다. 기존의 LTR 연구는 ResNet-32, ResNet-50 등의 CNN 기반 모델들을 사용해 실험을 진행했었다. 요즘이야 ViT (Visual Transformer) 기반의 무겁고 커다란 모델들도 등장해서 여러 분야에서 이용되고 있지만 LTR은 응용 분야라기보다는 좀 더 이론을 다루는 분야니까. 기존의 연구들과 동등한 비교를 위해서라도 동일한 구조의 모델을 사용해서 실험을 진행하는 것이 당연한 일이었다. 그런데 작년을 기점으로, ViT 모델이 LTR에 등장하기 시작한 것이다. 그것도 파운데이션 모델이.

    파운데이션 모델(Foundation Model)은 말 그대로 여러 AI 문제에 활용할 수 있는 범용적인 "기초" 모델이다. 이들은 Meta, OpenAI 같은 거대 테크 기업에서 막대한 자본과 학습 자원을 투자해 미리 학습한 모델로, 대표적으로 CLIP 같은 경우에는 V100 GPU 256대 2주간 학습을 진행했다. 이러한 모델은 평범한 대학원 연구실에서는 학습을 시키는 것이 불가능할 뿐만 아니라, 가능하더라도 엄청난 전력 소모 및 탄소 배출을 야기, 환경 파괴에도 지대한 영향을 미친다. 사람들이 저마다 파운데이션 모델을 학습할 수는 없으니 CLIP 등 일부 모델들은 모델의 파라미터 값들을 모두 공개해서 연구에 활용할 수 있도록 하기도 한다. 물론 이렇게 학습시킨 모델은 기업이 엄청난 투자를 통해 얻어낸 자산인 만큼, 실제 서비스에 사용하는 모델들은 공개하지 않는 경우도 대다수다. 대표적으로 ChatGPT도 모델의 세부내용은 공개하지 않은 채 이용하는 사람들에게 비용을 청구하고 있다.

    파운데이션 모델을 LTR 연구에 쓰는 것은 여러모로 반칙이다. 이전의 ResNet 모델들과의 단순 비교에도 부당함이 있지만, 이들이 어떤 학습데이터를 사용했는지 알 수 없기 때문이다. 내가 읽은 논문은 CLIP 모델을 사용해서 실험을 진행했는데, CLIP은 4억 개의 이미지-텍스트 쌍(!)을 인터넷에서 취득해 학습했다고만 나와있고 구체적으로 어떤 이미지들을 사용했는지는 알려주지 않는다. 그 말은 이미 모델이 반달가슴곰 영상을 수백 장 이상 학습 과정에서 보았을 수도 있다는 말이다. 이들을 LTR 데이터셋에서 추가학습하고 비교하는 것은, 마치 고등학교 과정까지 선행을 마친 중학교 3학년이 중학교 1학년과 같은 시험을 보면서, 시험 범위에 대한 교재는 같은 것을 사용했으니 문제가 없다고 말하는 것과 같다. 실제로 CLIP을 사용한 모델은 아무런 추가 학습을 거치지 않고도 기존의 LTR 벤치마크 최고 성능을 훨씬 상회하는 결과를 얻어낼 수 있었다.


"Long-Tail Learning with Foundation Model: Heavy Fine-Tuning Hurts", ICLR 2024

심지어 추가학습에 사용되는 학습 비용은 기존의 ResNet 학습에 필요한 자원보다 훨씬 적었다. ImageNet-LT 데이터셋 기준 내가 실험할 때는 GPU 4대로 하루 종일 학습을 진행해야 했는데, 파운데이션 모델을 추가학습 하는 것은 GPU 1대로 4시간이면 충분했다. 성능도 높고, 비용도 덜 드는데 왜 안 쓰냐?라는 것이었다.


4. 나아가 OpenAI의 이미지 생성 모델을 활용, 꼬리 범주의 영상을 추가로 생성하겠다는 방법도 등장했다. 영상을 직접 구하는 게 어렵다고요? 그럼 AI한테 시켜서 영상을 만들면 되잖아요. LTR 문제가 더 이상 LTR 문제가 되지 않는 것이다. 좀 더 구체적으로 설명하면 다음과 같다. 먼저, 1) ChatGPT한테 보유한 영상을 보여주고 이미지에 대한 특징을 서술하라고 한다. 그리고 2) 그 문장을 이미지 생성 모델 DALL-E에 입력으로 넣어 영상을 생성하라고 한다. 2)번의 과정을, 3) 만족스러운 결과가 나올 때까지(...) 반복해서 데이터셋을 보강한다.

"LTGC: Long-tail Recognition via Leveraging LLMs-driven Generated Content", CVPR 2024

    참고로, ChatGPT를 유료로 사용하더라도 일정 횟수 이상 모델을 사용하거나, 코드 기반의 API를 사용하게 되면 입력 토큰마다 비용을 지불하게 한다. DALL-E도 마찬가지다. 그러니까, 저 위의 1, 2, 3 과정을 반복하는 동안 연구자들은 OpenAI에 막대한 비용을 지불한 것이다. 그러나, 와! LTR 문제를 해결했다! 역시 돈으로 해결되지 않는 문제는 없다니까~

    ... 아니나 다를까, 성능은 놀라웠다. (그런데 실험 재현을 못 함. 생성한 이미지를 공유하지 않거든요. 확인해보고 싶으면 돈 내고 직접 실험하라는 거죠..?)


5. 이게 맞냐. 적잖은 현타를 느꼈다. 그러니까, 데이터 불균형 문제를 해결하는 방법은. 엄청나게 많은, 상상을 초월할 정도로 많은 데이터와 자본을 투자한 모델을 활용한다는 거잖아요. 나는 자세한 학습 과정조차 알지 못하는 거대 기업의 모델을. 무료로, 또는 일정의 사용료를 지불하며 굴종하는 것이 이 분야의 최근 '해법'이라는 거죠?

    정당하지도, 정의롭지도 않은. 그냥 성능만 높으면 장땡인. 이 분야를 어떻게 앞으로 다루어야 할까. CLIP을 사용하는 모델을 볼 때까지만 해도, '그래. 파운데이션 모델도 불균형이 심한 데이터셋에서 추가학습하려면 어느 정도 LTR 기법이 필요하니까. 그것은 중요한 문제이다. 열심히 연구해 보자.'라고 생각했었다. 그런데 LTR 문제를 데이터 '생성' 기법으로 해결하겠다는 기막힌 녀석을 보니까 기가 꺾여버렸달까. 생각해 보면 이전에도 꼬리 범주 영상의 다양성을 높이기 위한 여러 데이터 증강 기법은 있었다. 그런데, 돈으로 AI 생성 이미지를 사겠다는 저 제안은 나에게 무기력감을 심어주었다.


6. 생각해 보면, LTR이라는 문제 자체가 비현실적인 전제를 하고 있는 것일지도 모른다. 학습 데이터에 불균형이 있다면, 사실 상식적으로 생각하면 평가 데이터에도 불균형이 존재하는 것이 당연하다. 자연에서 임의로 데이터를 수집하면, 그 분포가 학습 단계든 평가 단계든 다를 이유는 없으니까. LTR은 공평하게, 평가 단계에서는 모든 범주에 대해 같은 수의 이미지를 테스트한다. 그러니까. 소외 집단의 개체 하나와, 절대다수 집단의 개체 하나를 동등한 가치로 평가한다. 그게 오히려, 비현실인 거지. 소수자는 소수자니까. 공리주의적 관점으로는 다수자를 만족시키는 것이 맞는 거지. 다수의 유권자 집단의 목소리에 더 편향되는 것은 자연의 섭리. 비장애인의 수가 훨씬 많은데, 장애인 한 명의 행복과 비장애인 한 명의 행복을 동일선 상에 두는 것이 오히려 부조리한 것이다. 모든 범주들을 공평하게 고려하겠다니, 이런 이상주의가 어디 있나.


7.  "연구자로 살아남기" 글에서, 제출했다고 말했던 논문은 보기 좋게 떨어졌다.

위의 언급한 논문들과는 조금 다르지만, 이상하게 비교를 하는 모델들이 요즘 안 그래도 '최고 성능'을 주장하면서 덜컥 덜컥 붙어버려서. 코드를 확인해 보니 ResNet-32을 썼다고 얘기해 놓고선, 훨씬 커다란 모델을 쓰질 않나. 이 데이터셋에서 학습했다고 하더니 몰래 추가 데이터를 더 사용하지 않나. 같잖은 반칙들을 쓰는 논문들이 꼬와서 표에 안 실었더니 아니나 다를까 왜 그들과 비교하지 않았냐고 시비가 걸렸다. 그 논문들의 반칙을 하나하나 해명하며, 그런 식으로 하면 우리도 훨씬 높은 성능을 보고할 수 있었다고 반박했지만 이미 숫자 비교에서 마음이 떠난 리뷰어들을 잡기에는 역부족이었다.

    그렇게 떨어진 논문을 그래도 열심히 다듬어서, 반칙 쓴 애들과 똑같은 반칙을 썼을 때는 우리 것도 충분히 좋은 숫자가 나온다는 - 불필요한 내용까지 분한 마음 억누르며 미리 추가해서. 8월에 수정한 논문을 다른 학회에 시 냈다. 이번에도 떨어지면, 지난 1년 동안의 연구 내용을 어디에도 싣지 못할 것이라는 작지 않은 우려가 든다. 그러면 새로운 아이디어로, 또 문제에 달려들어야겠지.


    어렵다. 물론 이 모든 것이 변명이라는 것을 안다. 내가 이렇게 징징대도, LTR 논문은 계속 쏟아질 것이다. 반칙 쓰는 논문이 붙었다고 억울해할 것이 아니라, 나도 반칙을 쓰면 된다. 숫자부터 높이면 된다. 그것도 못하는 놈이 무슨 박사를 하겠다고... 이미 붙어있는 논문은 3D 연구였는데, 분야도 도저히 대학원 연구실에서 분야는 아닌 같아서 졸업 연구는 이쪽으로 하고 싶다고 교수님께도 말해뒀었다. LTR 문제에 대한 애정과 자부심이 있었을 때의 일이다. 이제 어쩌지..


 Long-Tail. 꼬리가 길면. 밟힌다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari