Google 의 자가 발견 프레임 워크 (Self-discover) - 스스로 추론 구조를 발견하는 AI
구글 딥마인드에서 LLM이 복잡한 문제를 해결할 때 사용하는 추론 구조를 스스로 만들어 내고 적용할 수 있게 하는 'SELF-DISCOVER' 프레임워크를 소개했습니다.
arxiv 논문 : Self-Discover: Large Language Models Self-Compose Reasoning Structures
이 기법은 추론 벤치마크에서 CoT 방식에 비해 최대 32%까지 성능을 향상시킬 수 있다고 합니다. 또 10~40배 적은 추론 계산을 요구해서 적은 컴퓨팅 파워를 활용합니다.
GPT-4와 PaLM 2에서 25가지 추론 과제에 대해 테스트하였으며 대부분의 과제에서 기존 기법을 능가하는 성능을 보여줬다고 합니다.
구체적으로, '자가 발견' 프레임워크는 LLM이 문제를 해결하기 위해 필요한 고유한 추론 구조를 스스로 발견하도록 설계되었습니다. 이 과정은 두 단계로 진행됩니다:
구조 발견 단계(Stage 1): 이 단계에서 LLM은 주어진 과제에 대한 고유한 추론 구조를 발견하기 위해 세 가지 행동을 사용합니다. LLM은 자연어로 묘사된 다양한 원자적 추론 모듈(예: '하위 과제로 나누기', '비판적 사고' 등)을 바탕으로 과제에 내재된 고유한 추론 구조를 구성합니다. 이 구조는 과제를 해결하는 데 필요한 추론 프로세스를 명시적으로 정의합니다.
과제 해결 단계(Stage 2): 구조 발견 단계에서 발견된 추론 구조를 바탕으로, LLM은 과제의 인스턴스를 해결하기 위해 이 구조를 따릅니다. 최종 답변에 도달하기 위해 LLM은 자가 발견된 구조를 따라 추론합니다.
이 프레임워크는 LLM이 문제를 해결하기 위한 추론 프로그램을 내부적으로 개발하는 인간의 방식에서 영감을 받았습니다. 여기서 중요한 점은 LLM이 레이블이 없는 과제 예시만을 바탕으로 과제에 특화된 추론 구조를 스스로 발견하고, 이 구조를 사용하여 과제의 인스턴스를 해결한다는 것입니다. 이 접근 방식은 LLM이 보다 복잡한 문제를 효과적으로 해결할 수 있도록 하며, 특히 추론 과정에서 요구되는 계산량을 크게 줄일 수 있습니다.
추론 구조를 발견하기 위한 세 가지 행동
좀 더 구체적으로 구조 발견을 위한 단계는 다음과 같이 세 가지 행동으로 나누어 볼 수 있습니다.
선택(SELECT): 문제 해결에 필요한 기본적인 추론 모듈을 선택합니다. 예를 들어, 어떤 문제에는 '비판적 사고', '단계별 사고' 등의 모듈이 필요할 수 있습니다. 추가적인 예로는 과학 이론을 생각할 때는 "reflective thinking" 를 사용하고, 창의적인 이야기를 생각할 때는 "creative thinking"를 사용할 수 있습니다.
적응(ADAPT): 선택된 모듈을 구체적인 문제에 맞게 조정합니다. 이는 모듈을 문제의 맥락에 맞춰 더 구체적으로 만듭니다. 예를 들어 산술적인 일을 할 때에는 "break the problem into sub-problems" 이 "calculate each arithmetic operation in order"와 같이 조정될 수 있습니다.
구현(IMPLEMENT): 조정된 모듈을 바탕으로 문제를 해결하기 위한 구체적인 계획을 수립합니다. 이 계획은 LLM이 문제를 해결하는 데 따라야 할 단계를 제시합니다.
생각
critical thinking 이나 step-by-step thinking 등과 같이 프롬프트 엔지니어링 모듈을 실제적으로 적용하는 사례같다.
아직 구글의 초창기 제안으로 보이지만 이걸 봐도 구글 딥마인드가 뭐를 하려고 하는지 알 수 있다. sub task로 나눠서 하나 하나 개선해 나가면서, 생각하는 법을 배우게 하려는 것 같다. 각 하위 태스크에서 최적의 방법들을 찾고 이를 종합해서 전체문제를 해결할 수 있는 추론 구조를 가진다.
모델의 가중치를 직접 조정하는 방법은 아니다. 좀 더 발전하면 이런게 가능할지도 모르겠다. 여러 SLM을 쉽게 만들고 활용하기.
제미나이도 질문을 하면 하위 태스크로 유독 나눠서 대답하는 모습을 보이는데 이런 면들이 반영된거 같다. 반면에 GPT-4는 사용자들이 원하는 답변을 한번에 내놓는 방식에 좀 더 맞춰져 있는 것 같다.
이 점이 제미나이가 task 처리와 action에 기반한 에이전트가 되는 부분으로 차별화되지 않을까 생각하는 부분이다.
![카카오로 공유하기](/images/kakao-share.png)
![페이스북 공유하기](/images/facebook-share.png)
![url 복사하기](/images/link-share.png)