도보다모 | 멀리서 바라보는 AI 세계 탐구일지

트랜스퍼 러닝? 업스트림과 다운스트림에 대하여 본문

AI | 역사와 기술

트랜스퍼 러닝? 업스트림과 다운스트림에 대하여

도보다모 2024. 3. 2. 23:09

1. 트랜스퍼 러닝

 

트랜스퍼 러닝, 무슨 뜻일까요?

 

트랜스퍼 러닝(Transfer Learning)은 머신러닝의 한 분야로, 특정 *태스크를 학습한 모델을 다른 태스크 수행에 재사용하는 기법을 말합니다.

 

*태스크(Task)

모델이 수행해야 하는 문제나 작업을 뜻합니다.

우리가 '대규모 데이터셋'이라 말할 때의 이 데이터 집합이나, 이를 통해 달성해야 하는 목표가 이에 포함됩니다.

 

 


말하자면, 사람이 모르던 것을 배울 때 그가 평생 쌓아왔던 지식을 사용하는 것인데요.

예를 들어 우리가 기존에 자전거를 타는 법을 알고 있다고 합시다.

자전거를 잘 타려면 균형 잡는 방법, 운전대를 움직이는 방법, 패달을 밝아 속도를 높이는 방법 등을 이해하고 있을 때 자전거와 유사한 오토바이를 새롭게 배우게 되는 거죠.

그러면 여기서 자전거 타기가 기존의 지식이 되고 오토바이가 새로운 학습이 됩니다.

그리고 이 상황이 바로 " 태스크(Task)", "오토바이 타기 학습"이 됩니다.

 


인공지능 분야에서는 이 개념이 더 직접적으로 적용되는데요.

예를 들어 K라는 인공지능(AI) 모델에게 개를 구분하는 법을 학습시켰다고 가정해 봅시다.

K AI는 이 모델을 기반으로 늑대 등 새로운 동물을 학습할 때 이미 이해하고 있는 개와 고양이의 특징을 활용합니다. (개과인 늑대에서 유사한 특징, 예로 눈 모양이나 귀, 털 모양 등)

이러면 개를 모르는 상태에서 늑대의 특징을 처음부터 학습시키는 것보다 훨씬 빠르고 효율적으로 학습시킬 수 있습니다.

즉, 트랜스퍼 러닝을 활용하면 태스크를 바로 학습할 때보다 모델의 학습 속도가 빨라지고, 새로운 태스크를 학습할 때 필요한 데이터의 양을 줄여주며 전반적인 학습 효율을 높여줍니다.

그래서 BERT나 GPT 등 최신 AI는 트랜스퍼 러닝을 적용하고 있습니다.

트랜스퍼 러닝 개념도
트랜스퍼 러닝 개념도


그림에서 태스크 A는 업스트림(Upstream) 태스크라고 부르고, 태스크 B는 이와 대비된 개념으로 다운스트림(Downstream)이라고 부릅니다.

업스트림과 다운스트림은 데이터나 정보가 물처럼 흘러가는 과정(처리 과정)에서 상류와 하류 같은 순서를 나타냅니다.

사람이 눈앞에 사물을 인지할 때, 눈으로 먼저 형태나 크기 등을 포착하고 이 정보를 뇌로 전달해야겠지요?

바로 이 단계가 업스트림이며 데이터를 수집하고 전처리하는 과정과 비슷합니다.

다운스트림은 뇌가 눈으로 받은 정보를 분석하고 해석해 '아 눈앞에 있는 건 사과구나! 인식하는 단계와 같습니다.

준비된 데이터를 기반으로 실제 처리(학습, 인지, 판단 등)을 수행하는 과정입니다.



그래서 자연어처리에서 태스크 A는 다음 단어 맞히기, 빈칸 채우기 등 말의 문맥을 이해하는 과제이며, 태스크 B는 문서 분류, 개체명 인식 등 우리가 풀고자 하는 자연어 처리의 구체적인 문제들이 됩니다.

업스트림 태스크를 학습하는 과정은 *프리트레인(Pretrain)이라고 부릅니다.

 

*프리트레인(Pretrain)

태스크를 수행하기 전에 대량의 데이터셋을 사용해 사전에 학습하는 과정을 말합니다.

그림과 같이 프리트레인이 선행된 모델은 다른 모델들에 지식을 전이해 태스크에 대해 더 빠르게 적응할 수 있게 합니다.

 

 


 

2. 정보의 '상류' 업스트림 태스크

 

업스트림 태스크를 좀 더 알아볼까요?

사람이 쓰는 자연어의 문맥을 이해하려면 각 단어에 뜻(라벨)을 붙여 AI가 학습하면 될까요?

그게 가능하다면 AI는 지금보다도 더 정확한 답변을 내놓을 수도 있겠지만, 실상 사람들이 쓰는 무궁무진한 문맥들을 일일이 학습시키는 것은 효율적인 면에서도, 기능적인 면에서도 좋지 않습니다.

그래서 업스트림 태스크의 대표적인 태스크로 단어 맞히기를 적용하는데요.

GPT 계열 모델이 바로 이 태스크로 프리트레인을 수행하고 있습니다.

예를 들어 '내가 OO의 국모다'라는 문장에서 'OO 높은 확률로 '국모'라는 단어로 맞추는 것이 단어 맞히기입니다.

모델이 대규모 말뭉치를 업스트림 태스크를 통하면 이전 문맥을 고려했을 때 어떤 단어가 그다음에 오는 것이 확률적으로 더 자연스러운지 알 수 있게 됩니다.

사람들이 보기에 더 자연스럽고 풍부하게 이야기를 이어가는 것처럼 보이게 하는 것이죠.

이처럼 다음 단어 맞히기로 업스트림 태스크를 수행한 모델을 언어 모델(Language model)이라고 합니다.

 


 

3. 정보의 '하류' | 다운스트림 태스크

 

앞서 모델 학습에서 업스트림 태스크로 프리트레인하는 이유는 결국 다운스트림 태스크를 잘하기 위해서입니다.

우리가 눈앞에 물체가 어떻게 생겼는지, 어떤 냄새가 나는지 등을 파악하려는 이유는 뇌가 이 물체를 잘 맞추기 위해 데이터를 처리하는 것이니까요, AI도 같은 목표로 데이터를 전처리한 것입니다.

그래서 다운스트림 태스크의 본질은 '분류'가 됩니다.

상류에서 준비된 정보를 가지고 실제로 컴퓨터를 학습하는 것이죠.

자연어 처리에서 다운스트림 태스크는 그래서 사전 학습된 언어 모델을 특정한 언어 관련 문제에 적용해 성능을 향상하는 작업을 말합니다.

몇 가지 예시를 말씀드리자면,

 

1) 감정 분석(Emotion Analysis or Sentiment Analysis)

말뭉치에서 전처리된 텍스트가 긍정적인지 부정적인지, 또는 중립적인지를 분류할 수 있습니다.

문장을 이루는 각 단어를 토큰화하여 수치화하기 때문인데요.

이를 통해 영화나 드라마의 리뷰, 소셜 미디어 포스트 등 사용자의 의견이나 반응을 분석할 수 있습니다.

 

 

2) 기계 번역(Machine Translation)

하나의 언어로 된 텍스트를 다른 언어로 변환하는 과정입니다.

영어 문장을 한국어로 바꾸거나 한국어를 일어로 바꾸는 등의 번역을 말합니다.

 


이처럼 다운스트림 태스크들은 실제로 사용할 수 있는지, 사용했을 때 자연스럽게 보이는지를 평가하는 데 중요한 역할이며 특정 문제를 해결하기 위해 모델을 어떻게 개선해 나갈 수 있는지를 파악할 수 있습니다.