Cumulative Reasoning with Large Language Models

룰루·2024년 11월 24일

기존 방식과 해결법

많은 문제들이 ToT 구조로 해결이 안된다는 것을 지적함 -> 그렇다면 어떻게 해결? DAG(directed acyclic logic)으로!

복잡한 문제들은 선형적으로(step by step), 또는 트리 형태로 풀리지 않는다. 이전 단계, 이이전 단계, 또는 초기에 만들어졌던 추론들을 유동적으로 합하여 풀린다. 이러한 성질을 이용하여 만든게 CR(cumulative reasoning)이다.

CR의 구조

총 세가지 단계로 이루어진다.

  1. Proposer: 현재 상황에 기반하여 잠재적인 추론을 제안하며, 이는 DAG(Directed Acyclic Graph)의 새로운 노드로 표현된다.
  2. Verifier: 추론이 올바른지 평가하고, 유효하다면 DAG에 새로운 방향성을 가진 간선(추론)을 추가하는 것에 해당한다.
  3. Reporter: 현재 상태를 기반으로 축적된 맥락이 최종 해결책에 도달했는지 판단한다. 만약 도달했다면 결과를 출력한다.

실제로 FOLIO(논리 추론 데이터셋) 에 적용했을 때,모델은 총 4가지로 나누어져 있었다.

  • Proposer: gen_proposition(추론 단계 생성),

  • Verifier: validated_deduction(전제에서 추론된 전제가 논리적으로 유효한지 판단), duplicated_deduction(전제가 기존 전제와 중복되는지 확인), sourced_deduction(추론된 전제가 전제로부터 나온것인지 확인)

  • Reporter: structure_program(전제와 전제로부터 결론).

결과


CoT보다 더 좋은 결과를 보였습니다~!

profile
일단 적어

0개의 댓글