본문 바로가기
AI

파인튜닝: 어떠한 데이터를 학습해야하고 어떠한 경우에 할루시네이션이 생기는 가?

by AICC 2024. 5. 21.
반응형

 

많은 기업들이 자사만의 대규모 언어 모델(LLM)을 구축하고, 내부 데이터를 학습시켜 맞춤형 챗봇 등을 도입하려는 시도를 하고 있습니다. 하지만 실제 결과는 기대와 다르게 나오는 경우가 많고, 모델이 사실과 다른 정보를 생성하는 '할루시네이션' 현상이 빈번하게 발생합니다. 이번 아티클에서는 이러한 현상이 왜 발생하는지, 어떤 경우에 할루시네이션이 잘 발생하는지, 그리고 파인 튜닝을 어떻게 하면 이러한 문제를 줄일 수 있는지에 대해 이야기해보고자 합니다.

 

대규모 언어 모델의 역할과 중요성

대규모 언어 모델(LLMs)은 방대한 양의 텍스트 데이터를 학습하여 상당한 양의 사실적 지식을 내재화합니다. 이 지식은 자연어 처리, 자동 번역, 문서 요약 등 다양한 응용 프로그램에서 우수한 성능을 발휘하는 데 필수적인 요소입니다. LLMs는 인간 언어의 복잡한 패턴을 이해하고 처리할 수 있는 능력을 갖추고 있어, 기업들이 고객 서비스, 콘텐츠 생성, 데이터 분석 등 여러 분야에서 혁신을 이루는 데 기여하고 있습니다.

정밀 조정의 필요성

하지만 LLMs가 이러한 응용 프로그램에서 원하는 행동을 정확히 수행하기 위해서는 추가적인 정밀 조정이 필요합니다. 초기 학습 단계에서 모델이 광범위한 텍스트 데이터를 통해 일반적인 언어 패턴과 사실을 배우지만, 특정 작업이나 환경에 맞춰 성능을 최적화하려면 더 세부적인 조정이 필수적입니다. 주로 지시 따르기 작업이나 인간의 피드백을 통해 이루어지는 이 과정은 모델이 특정 요구 사항을 충족하고 정확한 응답을 제공하도록 만듭니다.

추가 학습과 새로운 지식의 도전

대규모 언어 모델은 주로 사람이 생성한 출력물이나 다른 LLM을 통해 추가 학습을 진행합니다. 이 과정에서 모델은 사전 학습 시 습득한 지식 외에 새로운 사실을 접하게 됩니다. 새로운 지식과 기존 지식을 어떻게 통합할지가 중요한 과제로 떠오릅니다. 새로운 정보를 단순히 학습하여 통합할 수도 있지만, 이로 인해 모델이 사실적으로 정확하지 않은 응답을 생성할 위험도 존재합니다.

 

SliCK: 지식 분류 체계의 도입

새로운 지식의 영향을 연구하기 위해, 우리는 모델이 생성한 응답과 실제 정답 사이의 일치도를 정량화하여 네 가지 지식 범주로 분류하는 SliCK 체계를 제안합니다. SliCK는 Known(알려진)과 Unknown(알려지지 않은) 두 가지 기본 유형으로 나누고, Known 유형을 다시 HighlyKnown(매우 잘 아는), MaybeKnown(아마 알 것 같은), WeaklyKnown(조금 아는)으로 세분화합니다.

 

(a): SliCK knowledge 카테고리 , (b): 실제 예시


통제된 연구 설계

이러한 분류 체계를 바탕으로, 새로운 사실을 포함한 학습 데이터의 비율을 조절하며 모델의 성능을 평가하는 통제된 연구를 설계했습니다. 특히, 모르는 사실이 포함된 데이터로 학습할 때 모델이 기존 지식과 충돌하여 잘못된 응답을 생성하는 경향을 조사했습니다. 아래 그래프를 보면 명확하게 알 수 있습니다.

Train Known vs Train Unknown의 정확도에 대해서

 

연구 결과

 

연구 결과, 모르는 사실을 포함한 학습 데이터의 비율이 높을수록 모델의 오류 발생률이 증가함을 발견했습니다. 반면, 기존 지식을 포함한 데이터로 학습할 때는 모델이 더 나은 성능을 보였습니다. 또한, 모델은 새로운 사실을 학습하는 속도가 느리며, 학습 후반부에 과적합으로 인한 오류 발생으로 이어질 수 있음을 확인했습니다.

 

문제 해결 방법

이러한 오류와 문제를 해결할 수 있는 실용적인 관점에서 크게 2가지가 있습니다.

 

문제 해결 2가지 방법

대규모 언어 모델의 학습 과정에서 과적합 문제를 해결하기 위해 몇 가지 전략을 적용할 수 있습니다. 특히 조기 종료 기법과 학습 데이터 필터링 방법이 효과적임을 발견했습니다. 이러한 방법들은 모델의 성능을 유지하면서 오류를 줄이는 데 큰 도움이 됩니다.

 

1. 조기 종료 기법(Early Stopping)
조기 종료 기법은 모델이 학습 도중 성능이 더 이상 개선되지 않을 때 학습을 멈추는 전략입니다. 구체적으로, 모델이 학습 도중 일정 에폭(epoch) 동안 검증 데이터(validation data)에서의 성능이 향상되지 않으면, 학습을 중단하는 방식입니다. 이 방법은 다음과 같은 장점이 있습니다:

  • 과적합 방지: 모델이 학습 데이터를 지나치게 암기하여 일반화 성능이 떨어지는 과적합 현상을 방지할 수 있습니다.
  • 학습 시간 단축: 불필요한 추가 학습을 줄여 학습 시간을 단축할 수 있습니다.
  • 리소스 절약: 컴퓨팅 자원을 절약하고, 모델 개발 비용을 줄일 수 있습니다.

조기 종료 기법을 적용하면 모델이 새로운 사실을 학습하는 과정에서 발생하는 오류를 줄일 수 있으며, 최적의 성능을 유지하면서도 과적합을 방지할 수 있습니다.

 

2. 학습 데이터 필터링(Filteration of Unknown Facts)
모델 학습 과정에서 모르는 사실(Unknown Facts)을 포함한 데이터를 걸러내는 것도 중요한 전략입니다. 이를 통해 모델이 학습하는 데이터의 품질을 높이고, 잘못된 정보를 학습하는 것을 방지할 수 있습니다. 구체적인 방법은 다음과 같습니다:

  • 데이터 정제(Data Cleaning): 학습 데이터에서 잘못되거나 불확실한 정보를 제거하여 데이터의 신뢰성을 높입니다.
  • 지식 분류 체계 활용: 앞서 언급한 SliCK 체계를 이용해 데이터를 분류하고, 모르는 사실이 포함된 데이터를 학습에서 제외합니다.
  • 훈련 데이터 조정: 모르는 사실을 포함한 데이터를 최소화하고, 잘 알려진 사실(HighlyKnown Facts)과 아마 알 것 같은 사실(MaybeKnown Facts)을 중심으로 학습 데이터를 구성합니다.

이러한 필터링 과정을 통해 모델이 신뢰할 수 있는 데이터를 학습하게 되어, 잘못된 정보로 인한 오류를 줄일 수 있습니다. 또한, 모델이 기존 지식을 더 잘 활용할 수 있도록 도와줍니다.

 

왼쪽 그래프 (a)

  • 이 그래프는 Unknown 예제의 비율이 증가함에 따라 정확도가 어떻게 변화하는지 보여줍니다.
  • 그래프에서 알 수 있듯이, Unknown 예제의 비율이 증가할수록 모든 경우에서 정확도가 감소합니다.
  • 특히 에포크 수가 많을수록 정확도 감소 폭이 더 크며, Early Stop의 경우 정확도가 상대적으로 더 높은 것을 볼 수 있습니다.

오른쪽 그래프 (b)

  • 실선은 D에서 파인 튜닝한 결과와 동일합니다.
  • 점선은 Unknown 예제를 필터링한 D_Known에서 파인 튜닝한 결과를 나타냅니다.
  • 두 경우 모두 Unknown 예제의 비율이 증가할수록 정확도가 감소합니다.
  • 특히 D_Known의 경우 Unknown 예제를 필터링함으로써 성능 저하를 줄일 수 있음을 보여줍니다.

 

요약

  • Unknown 예제의 비율이 높을수록 모델의 정확도가 떨어지며, 이는 에포크 수가 많을수록 더 두드러집니다.
  • Early Stop은 이러한 성능 저하를 완화하는 데 도움이 됩니다.
  • Unknown 예제를 필터링하면 성능 저하를 줄일 수 있습니다.

https://arxiv.org/pdf/2405.05904

 

반응형