Haru's 개발 블로그

[논문 리뷰] MetaMath-70B-V1.0 논문 리뷰 본문

논문 리뷰/Language Model

[논문 리뷰] MetaMath-70B-V1.0 논문 리뷰

Haru_29 2024. 4. 19. 11:34

링크

학습 파라미터

  • engin = gpt-3.5-turbo
  • dataset = GSM8k 추가적으로 후방 추론 방식으로는 GSM8K를 사용하여 증강
  • temperature = 0.7
  • part = str(문자열 부분) 구체적으로는 tip에 나와있는데 “to void overwriting previous generated data”인데 전에 생성된 데이터를 덮어쓰기입니다. 이 논문에서 나온 핵심 내용으로는 전 후방 데이터를 증강시켜 성능을 향상시키는 것으로 str부분은 덮어쓰기가 가능하게 하는 것입니다.
  • cont는 tip에 나와 있는데 “to continue a previous generating procedure, otherwise, will re-fetch data” 즉, 이전의 절차를 가져오고 싶으면 데이터를 다시 가져오는 것입니다.현재 모델에서는 store_ture로 학습하였습니다.
  • method_name = fobar → 추론 방식의 한 종류
  • num_repeat = 20
  • batch_size = 20
  • time_out = 30
  • num_proc = 16

들어가기에 앞서

MetaMath는 MetaMathQA라는 새로운 데이터 셋을 활용한 뒤 LLaMA-2로 파인튜닝을 진행한 모델입니다. MetaMathQA는 기존의 오픈 소스 LLM 제품군들과 비교하여 상당한 차이를 보여주는데 정확도가 GSM8K에서 66.5%, MATH에서 19.8%를 기록하였습니다. 특히 MetaMath-70B GSM8K는 GPT-3.5-Turbo보다 약간 나은 82.3%의 정확도를 달성합니다.

개요

기본적으로 LLM의 성능을 개선하기 위해서는 프롬프트 기반 방법과 파인 튜닝 방법이 존재합니다.

프롬프트 기반 방법

  • 적합한 방법을 선택하여 LLM의 잠재적 용량을 활성화하는 것을 목표로 합니다.
  • 모델 매개 변수를 수정하지 않고 입력을 요청합니다.

파인 튜닝 방법

  • 모델 의존적이고 많은 요인에 민감하고 무거움
  • 미세 조정 기반 방법은 단순하고 모델에 구애받지 않음
  • 간단하고 모델에 중립적인 파인튜닝 기반 방법은 수학 문제에 대한 효과적인 훈련 데이터에 크게 의존

논문에서는 파인튜닝을 진행 할 때 훈련 세트에서 사용 가능한 수학적 문제를 부트스트랩을 하는 방식으로 개선하였습니다.

구체적으로는 전방 및 후방 추론 방향이 존재하는데 쌍방 모두 부트스트랩을 하는 것을 목표로 하고 있습니다. 전반 방향에는 원본 및 LLM으로 재구성된 질문이 존재하게 되고, 후방에는 자체 확인 질문 및 FOMAR 질문이 존재하여 후방 추론 질문을 만들기 위하여 “x” 식별자를 활용하여 질문에서 토큰을 가리고 답변이 제공된 경우 가려진 토큰을 모델이 예측하게 합니다.

여기서 핵심은 후방 추론에도 파인튜닝을 적용한 것 입니다. 답변에 대해서는 거부 샘플링을 기반으로 한 답변 확장 방법을 채택하며, 다양한 추론 경로가 생성되고 올바른 답변을 갖는 것만 사용됩니다. 전방 및 후방 수학적 질문을 증가된 답변과 결합한 후, 파인튜닝을 위한 새로운 데이터 세트인 MetaMathQA를 작성합니다.

방법

메타-질문(원래 수학 훈련 세트의 샘플)이 주어지면 일련의 변형을 생성할 수 있습니다. 따라서 답변 증강과 결합하여 GSM8K 및 MATH를 기반으로 한 다양하고 고품질의 MetaMathQA 수학 데이터 세트를 생성한 후 MetaMathQA에 중점을 둔 MetaMath라는 일련의 LLMs를 소개하며 초등 수학 문제 해결에 중점을 둔 파인튜닝을 수행합니다.

1. 답변 증강

질문 A를 생성하게 된다면 질문에 대한 COT를 생성하게 되고 이를 몇 가지 추론 예제로 추가합니다.

그 다음에 LLM에 전달을 진행하여 추론 경로와 답변을 생성한 뒤, 정답이 올바른 경우에 필터링을 진행합니다.

2. LLM 다시 말하기에 대한 질문 부트스트랩

LLMs를 활용하여 답변을 생성하는 것은 간단하지만, 질문을 생성하는 것은 어렵습니다. 다만, 수작업으로 질문을 생성하는 일은 어렵기 때문에 LLM이 더 많을 질문을 생성하기 위하여 다시 말하기 프롬프팅을 제안합니다. 예시에서는 각 기준이 되는 질문에 대해 재구성 질문을 샘플링하기 위해서 temperture을 사용합니다. 그리고 수동으로 확인하는 것을 시간이 많이 걸리기 때문에 각각의 질문의 accurency를 판단하기 위하여 감독 방법으로 확인합니다. 각 다시 말한 질문에 대해 몇 가지 Chain-of-Thought 프롬프팅을 사용하여 그 추론 경로와 답변을 생성하고 그것을 Ground Trust 답변 와 비교합니다.

3. 역추론에 의한 질문 부트스트랩

역추론은 많은 수학적 질문에 답하는 데 중요한 역할을 하는데, 즉, 주어진 조건으로 시작하여 질문에서 알려지지 않은 변수를 결정하기 위해 역으로 생각합니다. 그러나 기존 방법 (SFT, RFT, WizardMath)은 역질문에 대한 정확도가 현저히 낮습니다. 본 논문에서는 역추론 능력을 향상시키기 위해 역으로 해결할 수 있는 더 많은 질문을 생성합니다. 방법은 질문의 숫자가 "x"로 마스킹한 뒤, LLM은 답변 a⋆i가 제공될 때 "x"의 값을 예측하도록 요청합니다. 추가적으로 대표적인 추론방식으로 Self-Verification 및 FOBAR이 포함됩니다.

4. 파인 튜닝 목적 함수

본 논문에서는 답변 증강 데이터 및 부트스트랩 질문(다시 말해, Rephrasing, Self-Verification, FOBAR)을 포함한 모든 증강 데이터를 병합합니다. 여기서 LLaMA-2만을 고려하지만, MetaMathQA는 다른 LLMs를 파인튜닝하는 데에도 사용될 수 있습니다.

 

결과

1. 환경 세팅

  • 데이터 셋 : 본 논문에서는 GSM8K는 효과적이나 MATH는 여전히 어려움을 가지고 있습니다.
  • 모델 : LLaMA-2를 사용하였으며 GPT-3.5-Turbo는 모든 4가지 질문 증강에서 사용되었습니다. 추가적으로 temperture 0.7으로 진행하였습니다. 본 논문에 나와 있는 LLama-2-70B는 계산 효율성을 위하여 QLoRA에 의하여 파인 튜닝을 진행하였습니다.
  • Baselines
    • Closed Model : GPT-3.5-turbo, PaLM
    • Open Source Model : LLaMA-1, LLaMA-2
    • Supervised Fine-Tuning (SFT) → 원래 GSM8K 또는 MATH 데이터셋의 훈련 세트를 사용하는 방법
    • Rejection sampling Fine-Tuning (RFT) → 파인튜닝을 위한 정답 경로를 생성하고 수집하는 방법
    • WizardMath, ChatGPT를 사용하여 샘플을 생성하고 훈련을 위해 두 개의 보상 모델을 사용하는 방법과 비교
  • Diversity Gain
    • 새로운 데이터셋이 기본 데이터셋에 추가됨으로써 전반적인 데이터 다양성을 어느 정도 향상시킬 수 있는지 측정하기 위해 Diversity Gain을 사용
    • 기본 데이터의 데이터 크기를 변경하고 모델이 처음 보는 일정한 집합의 20,000개의 새로운 데이터 포인트를 선택

2. 데이터 셋에 대한 결과

GSM8K와 MATH 모두에서 MetaMath는 SFT, RFT 및 WizardMath보다 훨씬 높은 정확도를 달성하여 MetaMath 데이터가 수학적 추론 능력을 향상 시키는데 효과적임을 보여줍니다.

3. 증강의 효과

증강의 효과를 확인하기 위해 먼저, LLaMA-2-7B 모델을 증강된 GSM8K데이터(MetaMathQAMATH)로 파인튜닝하고, 파인튜닝된 모델을 GSM8K 및 MATH에서 테스트합니다. 표에 따르면 GSM8K에서는 정답 증강 (AnsAug) 또는 다시 정의 증강으로 훈련된 모델이 훈련 세트만 사용하는 SFT보다 훨씬 높은 정확도를 달성합니다. 정답 증강과 다시 정의 증강 데이터를 결합하여 파인튜닝하면 약간 높은 정확도를 얻으며, FOBAR 및 SV 증강 데이터를 병합함으로써 약 4% 정도 더 향상됩니다.

LLaMA-2-7B를 MetaMathQAMATH 데이터에서 파인튜닝한 후 모델을 GSM8K 및 MATH에서 평가하는 실험을 수행합니다. 결과 더 나아가, 모든 증강 데이터를 병합하여 파인튜닝하는 것이 AnsAug 및 다시 정의 증강 데이터를 병합하는 것보다 더 나은 결과를 보여줍니다.

4. 맥락에 헷갈림에 대한 토론

<Figure 3를 확인하면 Peplexity가 존재하는데 이는 헷갈리는 정도이고 이는 Tree 자료 구조를 다르며 node의 depth가 깊어지고 경우의 수가 많아질수록 Peplexity 값은 커집니다. 따라서 일반적으로는 Perplexity값이 낮으면 낮을수록 모델의 성능이 높아집니다.>

본 논문에서 제안한 표면적 가설 정리에 따르면 모델의 능력은 사전 훈련에서 비롯되며, 하향 작업에서의 데이터는 사전 훈련 중에 학습된 LLM의 고유한 능력을 활성화하는 데 기여합니다.

여기서 두가지 가설을 제시하게 됩니다.

  • 어떤 종류의 데이터가 잠재적인 지식을 활성화하는 데 가장 효과적인가?
  • 왜 하나의 데이터셋이 다른 것보다 그러한 활성화에 더 나은가?

수학적 작업에서 MetaMathQA 데이터가 수학적 지식을 활성화하는 데 뛰어난 활성화제 역할을 할 수 있다는 것을 보여주지만 왜 MetaMath가 정답만 있는 데이터나 GSM8K CoT 데이터를 훈련하는 것보다 뛰어난 성능을 발휘하는지는 명확하지 않습니다. 다만, MetaMathQA의 난이도는 다른 두 데이터셋보다 훨씬 낮으며 이는 MetaMathQA의 본질적으로 학습하기 쉬운 성격을 강조하며, 이는 LLM에서 강화된 문제 해결 능력을 유발하는 데 더 적합할 수 있습니다.

5. 다양성 관점에서의 토론

질문 부트스트래핑에 의해 생성된 동일한 양의 데이터를 추가하는 것은 질문 부트스트래핑에 의한 주목할만한 다양성 이득으로 인해 성능이 크게 향상됩니다. 이는 또한 다양한 MetaMathQA 데이터를 포함하여 전방 및 후방 추론 경로를 반영하는 4종류의 데이터로 훈련된 MetaMath의 성공과 일치합니다.

6. 역수학 능력 평가

"A is B"라는 문장에서 훈련된 LLM은 "B is A"에 대한 일반화를 할 수 없는 현상은 또한 이 논문에서 관찰된 것처럼 LLM이 역수학 추론 능력이 부족하지만 MetaMath는 두 데이터셋 모두에서 큰 향상을 보입니다.

7. 정답이 틀린 추론 경로 또한 유용할 수 있음

GSM8K에서 LLaMA-2-7B를 사용하여 정답 증강 샘플이 잘못된 답을 가진 경우, 이러한 경우가 LLM을 파인튜닝하는 데 도움이 되는지를 연구하기 위해 실험을 진행하였고 확인 결과 위의 그림에서 보듯이, 잘못된 답을 가진 증강 데이터로 파인튜닝된 모델이 실제로 SFT보다 더 나은 결과를 보이는 것을 관찰할 수 있습니다.

8. 더 많은 데이터가 항상 더 나은 것은 아니다

수학적 추론 데이터를 파인튜닝을 위해 확장하는 이전 연구들도 있습니다. 다만, Figure 5을 확인해보면 100k에서 성능 하락을 보여주며 더 많은 확장된 데이터가 항상 일반화에 도움이 되지 않을 수 있다는 것을 시사합니다.

9. 오류 분석

MetaMath 모델이 여러 규모에서 탁월한 문제 해결 성능을 달성할 수 있다는 것을 증명했지만 기존 오픈 소스 수학 모델에서 발생하는 오류의 특성을 고려하는 것이 중요합니다.

특히, 문제 길이와 모델 성능 간의 관계를 고려합니다. GSM8K 테스트 세트를 문제 길이에 따라 세 부분으로 나누고 각 하위 세트에서 모델의 정확도를 계산합니다. Figure 7에서 볼 수 있듯이, MetaMath 및 관련 방법은 더 긴 질문에서 어려움을 겪습니다. 따라서 모델 성능을 더 긴 질문 길이로 확장하여 개선하는 연구가 풍부한 연구 주제로 보고 있습니다.

Comments