sanguk.dev
작성완료
파인튜닝 정의

파인튜닝 정의

파인튜닝은 사전 훈련된 언어 모델을 특정 작업에 맞게 추가 학습하는 과정이다. 전체 파인튜닝과 매개변수 효율적 파인튜닝(PEFT) 방법이 있으며, PEFT는 어댑터 튜닝, 프롬프트 튜닝, LoRA를 포함한다. 과적합, 재앙적 망각, 막대한 자원 소모, 데이터 품질 및 편향 문제에 주의해야 한다.

인공지능파인튜닝

파인튜닝이란?

이미 학습되어 공개된 언어 모델(Pre-trained Language Model, 사전 훈련된 언어 모델)을 특정 작업에 맞게 추가로 학습하는 것을 말한다.

파인튜닝을 하는 이유

상당한 규모의 모델을 직접 만들고 계속 업데이트하기에는 현실적으로 불가능하다.
그래서 많은 IT 기업들은 기존의 언어 모델을 가져와 특정 작업에 맞게 추가 학습시키는 파인튜닝을 선호한다.

파인튜닝의 종류

전체 파인튜닝 (Full Fine-Tuning)

이 방법은 모델의 모든 파라미터를 새로운 데이터에 맞게 다시 학습시키는 방식이다.
모델이 이전에 학습한 내용을 완전히 잊어버릴 수 있기 때문에 천천히 조금씩 학습을 진행해야 한다.
파라미터 수가 많은 큰 모델을 전체 파인튜닝할 경우 시간과 비용이 많이 소요된다.

매개변수 효율적 파인튜닝 (Parameter-Efficient Fine-Tuning, PEFT)

PEFT는 모델의 파라미터 전체가 아닌 일부분만을 새로 학습시키는 방식이다.
전체 모델을 학습시키는 것보다 시간과 비용이 크게 줄이면서 더 나은 결과를 얻을 수 있다는 장점이 있다.
아래는 PEFT을 하는 대표적인 방법이다.

1. 어댑터 튜닝 (Adapter Tuning)

기존 거대한 언어 모델에 작은 규모의 신경망을 새롭게 추가하는 방식이다.
이 방법은 전체 모델을 재학습하는 것보다 효율적으로 모델의 능력을 확장할 수 있다.

2. 프롬프트 튜닝 (Prompt Tuning)

모델에 입력되는 텍스트에 특별한 지시사항을 추가하는 방식이다.
지시사항을 통해 모델의 작동을 원하는 방향으로 조절할 수 있다.
이 방법은 모델 자체를 변경하지 않고도 원하는 결과를 얻을 수 있는 유연한 방법이다.

3. LoRA (Low-Rank Adaptation)

작은 크기의 두 행렬을 곱한 결과를 원래 행렬에 더하는 방식으로 모델을 효율적으로 저장하는 기술이다.
이 방법은 모델의 파라미터 수를 크게 늘리지 않으면서도 효과적으로 모델의 성능을 향상시킬 수 있다.
LoRA는 특히 대규모 모델을 파인튜닝 할 때 계산 자원과 시간을 절약할 수 있는 효과적인 방법이다.

파인튜닝 주의점

과적합 (Overfitting)

규모가 작은 데이터셋을 사용해 파인튜닝을 진행할 때 모델이 해당 데이터에 지나치게 최적화되어 새로운 데이터에 대한 일반화 능력이 떨어질 수 있다. 이는 모델이 학습 데이터의 특징을 너무 세밀하게 학습해 실제 상황에서 마주칠 수 있는 다양한 경우에 대처하지 못하는 상황을 초래할 수 있다.

재앙적 망각 현상 (Catastrophic Forgetting)

파인튜닝 과정에서 모델이 이전에 학습한 일반적인 지식을 잃어버리는 현상이다. 이 현상이 발생하는 주된 이유는 모델이 새로운 작업을 학습하는 과정에서 신경망의 가중치가 변화하기 때문이다.

막대한 자원과 시간 필요

사이즈가 7B 이상 되는 언어 모델의 전체 파인튜닝은 막대한 연산 자원과 시간이 필요하다. 모델의 가중치를 업데이트해야 하므로 모델 크기에 비례해 계산 복잡도가 증가한다. 고성능 하드웨어 요구와 긴 처리 시간으로 이어져 많은 기업과 연구자들에게 실질적인 제약이 된다.

데이터의 품질과 양

파인튜닝에 사용되는 데이터가 부적절하거나 양이 충분하지 않으면 모델의 성능 향상을 기대하기 어렵다.
따라서 고품질의 관련 데이터를 충분히 확보하는 것이 매우 중요하다.

데이터의 편향

파인튜닝에 사용되는 데이터에 편향이 있다면 모델의 출력에 그대로 반영되어 심각한 윤리적 문제를 일으킬 수 있다. 따라서 데이터를 선별하고 준비하는 과정에서 편견을 가진 응답과 편향성을 최소화하기 위한 노력은 필수이다.