https://arxiv.org/pdf/2205.12538


Abstract:

  • 이 논문은 좀 더 복잡한 문제를 처리할 수 있는 모델을 만드는 것보다 복잡한 문제를 하위 문제로 분할해서 더 간단하게 모델이 처리할 수 있도록 만드는 방법이 가능한지를 조사하는 논문임.
  • 복잡한 질문을 한번에 처리할 수 있는 모델을 가지는 것도 좋지만 복잡한 질문을 쉽게 답할 수 있는 하위 문제로 분할해서 처리하는 방법이 가능하다면 이것 또한 복잡한 질문을 처리하는 것과 같은 기법이 될 수 있지 않냐는 논문이다.
  • 정리하자면 모델의 규모를 키우는 대신, 인간의 도움을 받아 복잡한 질문을 단순한 하위 질문으로 나누어 모델이 더 효과적으로 답할 수 있게 하는 방법을 제안하는 논문이다.
  • 실제로 이렇게 하위 문제로 분할하는 방법을 사용해본 결과 GPT-3 의 성능이 24% 로 향상되었다고 함.

 

 

Introduction:

  • 복잡한 문체를 처리하기 위해서 더 크고 복잡한 언어 모델을 설계하는 건 계산 자원, 시간, 환경에 대한 부정적인 영향이라는 비용이 따름.
  • 여기서는 복잡한 문제를 하위 문제로 분할해서 처리했을 때 이전에 해결하기 힘들었던 문제를 해결할 수 있는지에 대해서 가능성을 살펴보는 논문임.
  • 이 기법은 인간은 새로운 작업을 기존 작업의 조합으로 보는 경향에서 영감을 받음. 모델이 새로운 작업을 해결할 수 있도록 해당 작업을 모델이 이미 잘 알고 있고 능숙한 작업들의 조합으로 분해하는 기법.
  • 이 논문에서는 멀티-홉 QA나 수치적 추론과 같은 복잡한 QA 작업을 인간의 도움을 받아서 하위 질문으로 분해했을 때 모델이 쉽게 답할 수 있다는 걸 보여줌. (원래의 질문에는 답하기 힘들었지만)

 

 

실험에서 사용한 데이터 셋:

  • HOTPOTQA: 멀티-홉 추론이 필요한 QA 데이터셋
  • DROP: 수치적 추론을 요구하는 QA 데이터셋
  • MULTIRC: 다중 문항 추론 QA
  • STRATEGYQA: 전략적 추론이 필요한 질문들로 구성된 데이터셋
  • QASC: 과학적 지식을 필요로 하는 QA
  • MATHQA: 수학적 문제를 포함하는 QA
  • SVAMP: 수학적 문제 변형을 다루는 QA
  • BREAK: 구조적 질문 분해가 포함된 QA

 

 

질문 분해 과정(Decomposition Process):

  • 무작위로 50개의 질문을 선택하여 각 데이터셋의 질문을 수동으로 분해했다고 함.
  • 각 질문은 2개 이상의 하위 질문으로 분해했다고 함.
  • 이렇게 분해된 데이터셋의 요소들은 모델이 각각의 질문에 대해 답을 할 수 있도록 도왔다고 함

 

 

Analysis:

  • 모델에 맞게 분해하는게 중요하다:
    • SQuAD 데이터셋으로 미세 조정된 모델에게는 문맥에서 답을 찾을 수 있는 세부적인 분해가 더 유리하고, GPT-3 과 같은 모델에서는 이런 세밀한 분해는 필요 없음.
    • 모델에게 맞게 분해하는 건 일반적인 LLM 을 쓰느냐, 특정 작업에 특화된 파인튜닝된 모델을 쓰느냐에 따라서 다를듯. 파인튜닝된 모델을 사용한다면 해당 작업을 잘 처리할 수 있게끔 분해를 해줘야할 것.
    • 일반적인 LLM 에게 분해할 때는 다양한 작업을 잘하므로 한번에 단일 작업을 잘 처리할 수 있도록 작업의 단위별로, 단계별로 나눠야할듯.
  • 오류 분석을 수행한 결과, 주요 오류 원인은 분해된 질문 중 하나에서 발생한 오류의 전파임을 발견했다고 함:
    • 분해된 질문 중 일부의 답이 틀리면 그 다음 단계로 넘어갈 때 잘못된 답변이 사용되므로, 최종적으로 모델의 예측이 틀려지는 결과를 초래할 수 있다는 것.
    • 오류 유형은 크게 두 가지로 분류되었다고 함:
      • 잘못된 스팬 선택(Incorrect Span Selection)
        • 문맥에서 정답을 선택할 때, 모델이 잘못된 위치의 정보를 선택하는 경우. 특히 문맥 내에서 특정 부분을 선택해야 하는 QA 작업에서 자주 발생했다고 함.
        • 예를 들면 모델이 “X의 나이는 무엇인가?“라는 질문에 대해 문맥에 있는 “Y의 나이는 25세”라는 정보를 잘못 선택하는 경우임.
      • 모든 답변을 수집하지 못함(Failure to Collect All Possible Answers):
        • 질문을 분해할 때 처음 단계에서 필요한 모든 답변을 수집하지 못하여 중요한 정보를 놓치는 경우를 말함.
        • 그러니까 초기에 수집되지 못한 누락된 정보가 있다는거임.
        • 예를 들어서 “가장 높은 산과 그 높이는 무엇인가?“와 같은 질문에서 각 산의 높이를 일일이 확인하는 초기 단계에서 특정 산의 높이를 누락하면, 이후 단계에서 최종 답을 얻을 수 없게되는 것처럼.
  • 수학 관련 데이터셋이 분해로부터 가장 큰 이익을 얻는다는 것을 관찰했다고 함. 이것도 분해 체인에서 한 단계의 답이 틀리면, 그 오류가 마지막 예측까지 전파되어 전체 답이 틀리게 되는 경우가 있다고 한다.
  • 논문에서는 질문을 몇 단계로 분해하는지(분해 수)에 따라 결과가 어떻게 달라지는지에 대해 분석했음:
    • 분해 수는 질문을 더 단순화하여 모델이 답변하기 쉽도록 할 수 있지만, 분해의 단계가 많아질수록 특정한 한 단계의 오류가 최종 답변에 영향을 미칠 가능성도 커짐.
    • 복잡한 질문을 여러 단계로 분해하면, 모델이 한 번에 처리해야 할 정보의 양이 줄어들어 질문이 더 명확하게 이해될 수 있음.
    • HOTOPOTQA와 SVAMP 데이터셋을 사용한 실험에서는 분해 수와 성능 사이에 직접적인 상관관계가 없음을 발견함. 즉 분해 수가 많다고 항상 성능이 향상되는 것은 아니라고 함.
    • 하지만 분해 수가 적절한 경우 성능적인 향상을 이끌어오는 것도 중요한 요소가 될 수 있다고 한다.
  • 논문에서는 분해 자동화를 위한 노력 (Efforts to Automate Decomposition) 도 했다고 함:
    • 이 당시에는 적절한 예시를 제공할만큼 프롬프트 내 Context Window 가 충분하지 않았다고 함.
    • GPT-3 으로 분해를 할 떄 하위 질문으로 분해를 누락하는 일도 발생했다고 함.
    • 분해를 하기는 하지만 일관성있고 정확하게 하는 것은 이 당시에 한계점이 있었다는 듯.

 

 

Limitations:

  • 어떤 질문은 인간도 분해하기 난해한 질문이 있다고도 함. 이러한 질문은 자동화할 때나 모델이 답할 때도 복잡하게 느껴질 수 있다고 한다.
  • 예를 들어, “뉴욕은 어느 나라에 있습니까?”라는 질문은 단순한 정보 질문으로, 추가적인 분해가 어려운 경우일거임.
  • 이처럼 분해가 필요하지 않거나 분해가 어려운 질문은 별도의 처리 방식이 필요할 수 있다. (모든 질문이 분해가 필요한 것은 아니기 때문에, 분해가 필요하다고 판단하는 처리 방식이 필요함)
  • 그리고 분해를 했을 떄 하위 질문에서 복수적인 정답이 각각 생겨날 수 있는 경우 최종적으로 해결할 때 통합을 하는 과정이 필요할 수도 있음. 만약 여기서 단일 정답만을 원하는 경우라면 혼란을 겪을수도 있다.

+ Recent posts