파인튜닝 (Fine-tuning)

컴퓨터과학·AI
한 줄 정의: 이미 대규모 데이터로 학습된 모델을 가져와, 특정 작업이나 분야에 맞게 적은 양의 데이터로 추가 학습시키는 방법입니다.

쉽게 풀면

요리를 두루 배운 셰프를 떠올려 보세요. 이 셰프는 이미 기본기와 다양한 요리법을 익혔기 때문에, 특정 레스토랑에 취업하면 며칠간 그 가게의 시그니처 메뉴와 손님 취향에 맞춰 조금만 더 연습하면 됩니다. 처음부터 요리를 다시 배울 필요가 없는 것이죠. 파인튜닝도 마찬가지입니다. 방대한 데이터로 이미 언어나 이미지의 일반적인 패턴을 배운 사전학습 모델을 가져와서, 내가 풀고 싶은 구체적인 문제(예: 의료 문서 분류, 특정 말투의 챗봇)에 맞는 소량의 데이터로 몇 단계만 추가로 학습시키는 것입니다. 처음부터 모델을 학습시키는 것보다 훨씬 적은 데이터와 시간으로도 좋은 성능을 낼 수 있습니다.

왜 중요한가

대규모 모델을 처음부터 학습시키려면 막대한 데이터와 연산 자원이 필요하지만, 파인튜닝을 활용하면 훨씬 적은 자원으로도 특정 작업에 맞춘 고성능 모델을 만들 수 있습니다. 그래서 자연어처리, 컴퓨터비전, 음성인식 등 딥러닝 전반에서 사전학습 모델을 실제 응용에 적용하는 표준적인 방법으로 자리잡았습니다. 최근에는 초거대 언어모델의 등장으로 모델 전체가 아닌 일부만 학습시키는 효율적 파인튜닝 기법이 활발히 연구되는 등, 이 개념은 실용적인 AI 배포 연구의 핵심 축으로 다뤄집니다.

논문에서는 이렇게 쓰입니다

"사전학습된 언어모델을 도메인 특화 데이터셋 5,000건으로 파인튜닝한 결과, 기존 대비 분류 정확도가 5%p 향상되었다."

이 문장은 "이미 방대한 텍스트로 학습된 모델을 가져와, 우리 분야의 데이터 5,000건만으로 추가 학습시켰더니 성능이 더 좋아졌다"는 뜻입니다. 처음부터 모델을 새로 만드는 것보다 훨씬 효율적인 접근입니다.

"의료 영상 진단 모델은 일반 이미지로 사전학습된 합성곱 신경망을 흉부 X-ray 데이터셋으로 파인튜닝하여 구축하였다."

의료 영상 분야에서는 일반 이미지로 학습된 모델을 소량의 의료 영상 데이터로 파인튜닝해, 라벨링 비용이 큰 의료 데이터의 한계를 보완하는 방식이 흔히 쓰입니다.

"저자원 언어의 감정분석 성능을 높이기 위해 다국어 사전학습 모델을 소규모 라벨링 데이터로 파인튜닝하였다."

자연어처리에서는 학습 데이터가 부족한 언어나 도메인에서 사전학습 모델의 파인튜닝이 성능 향상의 핵심 전략으로 제시됩니다.

조금 더 깊게 보면

모델 전체 파라미터를 다시 학습시키는 전체 파인튜닝(full fine-tuning) 외에도, 최근에는 LoRA(저순위 적응, Low-Rank Adaptation)처럼 일부 파라미터만 추가로 학습시켜 계산 비용을 크게 줄이는 매개변수 효율적 파인튜닝(PEFT) 기법이 널리 쓰입니다. 또한 지시문에 따라 행동하도록 학습시키는 지시 튜닝(instruction tuning)이나, 사람의 선호를 반영하는 강화학습 기반 튜닝처럼 파인튜닝의 목적과 방식도 세분화되어 있어, 논문을 읽을 때는 어떤 종류의 파인튜닝을 사용했는지 확인하는 것이 중요합니다.

주의할 점

파인튜닝을 할 때 학습률을 너무 크게 잡으면, 사전학습 때 익힌 일반적인 지식을 잃어버리는 "재앙적 망각(catastrophic forgetting)" 현상이 발생할 수 있습니다. 학습률과 같은 값은 경사하강법 과정에서 조정되는 핵심 설정이므로, 파인튜닝 시에는 보통 사전학습 때보다 훨씬 작은 학습률을 사용합니다.

관련 용어