Abstract:
- 이 논문은 ALPAGASUS라는 새로운 모델을 소개하며, 기존의 ALPACA 모델보다 적은 양의 고품질 데이터로 더 우수한 성능을 달성한 연구입
- 배경과 문제:
- 지시 미세조정(Instruction Fine-Tuning, IFT): 대형 언어 모델(LLM)이 지시를 따르는 능력을 강화하기 위해 지시-응답 데이터로 학습하는 과정입니다.
- 기존 ALPACA의 한계: 널리 사용된 ALPACA의 52k 데이터셋에는 저품질 데이터(오답, 무관한 응답) 가 포함되어 있어 모델 학습에 악영향을 미쳤습니다.
- 이 문제를 해결하는 방법: ALPAGASUS
- 데이터 필터링 전략:
- 강력한 LLM(예: ChatGPT)을 필터로 활용: ALPACA의 52k 데이터 중 9k개의 고품질 데이터만 자동 선별합니다.
- 모델 학습:
- 고품질 9k 데이터로 미세조정: ALPAGASUS는 원본 ALPACA 대비 5.7배 빠른 학습 속도를 보입니다.
- 7B 모델 학습 시간: 80분(ALPACA) → 14분(ALPAGASUS)
- 데이터 필터링 전략:
- 결과:
- GPT-4 및 인간 평가에서 ALPACA를 크게 능가했습니다.
- 13B 모델은 원본 데이터를 생성한 Text-Davinci-003의 성능 90% 이상을 달성했습니다.
- 일반화 가능성 검증: 다양한 데이터셋, 기본 모델, LLM 필터에서 방법론의 효과가 입증되었습니다.
- 데이터 중심(Data-Centric) IFT 패러다임: 양보다 질이 중요함을 강조하며, 데이터 품질 관리의 필요성을 제시
Introduction:
- 기존 교사 모델을 이용한 IFT 의 한계점은 생성된 데이터의 오류나 무관한 응답임. 이런 저품질의 데이터를 생성하는 문제점이 있는데 이건 성능에 악영향을 줄거임.
- 그렇다고 데이터를 인간이 직접 필터링하는 것도 어려움.
- 여기서의 ALPAGASUS 는 강력한 LLM(예: ChatGPT)을 필터로 활용: 각 (지시, 입력, 응답) 튜플의 품질을 평가하는 프롬프트를 설계하고, 일정 점수 미만의 데이터를 제거합니다.
- 이렇게 필터링을 ALPACA 에 적용한 결과 52k 데이터 중 9k 고품질 데이터만 선별되었으며, 이는 원본 대비 5.7배 빠른 학습 속도(7B 모델 기준 80분 → 14분)로 이어졌습니다:
- ALPACA 에서 고성능 Teacher Model 로 생성한 데이터도 52K 중 사실 9K 만 남겼다는건데, 9K 정도의 데이터도 생성이 가능하다는거 아님? -> 고품질의 데이터도 생성이 가능하다. 다만 헛발질이 많을 뿐 이거아님?
- ALPACA 에서 필터링을 어떻게 했는지 궁금하네.
- 그리고 이러한 접근법은 다양한 데이터셋(Alpaca, Dolly, GPT4LLM), 기본 모델(LLaMA-1, LLaMA-2), LLM 필터(ChatGPT, Claude-2)에서 효과를 입증하며 범용성을 확인했습니다.
방법론(METHODOLOGY):
- 데이터 필터링 전략:
- 필터 대상: 각 데이터 샘플은 (지시(instruction), 입력(input), 응답(response)) 의 삼중항(triplet)으로 구성됩니다.
- 평가 기준: LLM은 사용자가 정의한 특정 속성(예: 도움성(helpfulness), 정확성(accuracy), 관련성(Relevance))을 기준으로 각 삼중항에 점수를 부여합니다(Fig. 3 참조).
- 정확성(Accuracy)을 기준으로 필터링하는게 특히 중요하다고 함. LLM 에서 답변의 신뢰성을 나타내는 부분이자 제일 중요한 척도라고.
- 평가 척도: 평가 기준에 따라서 0~5점의 점수 부여.
- 임계값은 정확성은 4.5점으로 둠. 대부분의 데이터는 3~4점대였다고.
- 필터링: 특정 임계값(threshold) 미만의 점수를 받은 데이터는 제외됩니다.
평가 프롬프트:

추가 분석:
- 임계값을 4점대로 낮춰보고 실험을 해봤다고 함. 이렇게 했을 때 데이터는 52K -> 39K 정도로 남음. (4.5점을 임계값으로 두면 9K). 이렇게 튜닝한 모델은 4.5점으로 임계값을 설정해서 파인튜닝한 모델보다 성능이 낮았다고. (Figure 7 참고)
- 이번엔 고품질 데이터를 적게 줘보는 실험을 해봤다고 함. 9K > 6K > 3K 순으로 데이터를 주었는데, 9K 가가 성능적으로는 제일 좋았음. (Figure 8 참고)
- 데이터의 양이 적으면 과소적합(underfitting) 이 일어나고 일반화 능력이 부족해질 수 있고, 모델의 안정성이 떨어질 수 있다고 함.
- 반대로 데이터의 양만 키우면 노이즈가 껴서 성능이 하락될 수 있다고.


통찰(Insight):
- 데이터츼 품질이 양보다 중요하되, 양도 너무 적으면 일반화를 잘 못할 수 있다가 얻을 수 있는 기본 통찰.
- 또 LIMA (LIMA: Less Is More for Alignment) 논문에 따르면 모델의 지식은 사전 학습 때 이미 얻어져있다, 고품질 데이터로 출력을 잘 내게끔 가이드를 주면 된다라고 헀고, 그때 사용했던 데이터는 1000개 정도. 일단 시작해볼 데이터 사이즈가 1000개가 아닐까.
- 논문의 Case Study 를 보면 과도한 필터링으로 인해 코딩 분야에 너무 적은 데이터가 들어가서 그 분야의 작업 능력에 악영향을 끼쳤다고 함. 데이터가 균등하게 밸런스를 이루는지도 중요한 요소가 될 것.
- 이제는 LLM 을 통해 데이터를 생성하고, 관리하고, 평가하고 다 하지 않을까.
- 52K 데이터에서 9K 정도의 데이터가 필터링 되었다고 하는데 결국 LLM 은 헛발질을 여러번하더라도 품질이 좋은 데이터를 생성하는 능력이 있지 않나.
- 파인튜닝으로 0에서 60까지 가는건 쉬우나, 60에서 100으로 가는건 어렵다고 했다. 이 점을 기억하자.