Chain-of-Thought(CoT): 자연어로 중간 사고 과정을 단계별로 출력하는 방식
Latent Space: hidden representations, 쉽게 말해 말 대신 느낌이나 의미 덩어리로 사고하는 공간
Breadth-First Search(BFS): 여러 경로를 동시에 탐색하며 정답을 찾아나가는 방법. 갈림길에서 하나만 고르는 게 아니라 여러 후보를 동시에 탐색.
자연어로 출력되는 CoT의 이점은 쉬운 해석 가능성도 큰 비중을 차지한다고 생각했는데, Latent space에서의 reasoning을 어떻게 적용시켰을지 궁금해서 읽어보게 되었다.
CoT는 LLM의 사고력을 끌어올렸지만, 말로 모든 걸 설명해야 하는 비효율성이 있었음. 인간도 모든 생각을 말로 설명하지 않듯, 모델도 '생각 공간'에서 사고하는 게 더 자연스러울 수 있음.
+) Fedorenko et al., 2024: '인간의 언어는 추론보다 의사소통에 최적화되어있다.' → 언어가 아닌 다른 공간에서 추론하는 것이 더 효과적일 수 있음.
++) 그 외에도 여러 neuroimaging 연구에서 인간 뇌의 언어 네트워크가 추론 과정에서 거의 비활성화되어있음이 나타남.
LLM이 추론을 위해 언어를 사용할 때의 문제점
위와 같은 시도가 있었지만, 여전히 언어 기반이라는 한계가 있음.
Coconut 방식을 통해 언어로 사고하지 않고 continuous latent space에서 추론하도록 하는 새로운 패러다임을 제시하여 자연어로 표현하는 비용 없이 더 깊이 있는 사고를 하게 만들고자 함. 이를 통해 BFS와 유사한 프로세스가 가능해짐!
+) 즉, 모델이 초기에 "올바른 결정"을 내리지 못하더라도, 여러 '가능한 옵션'들을 continuous thought 안에 '유지'하면서 추론을 진행할 수 있음.
[Continuous Thought]
Cocounut에서는 LLM의 마지막 hidden state(h_t)를 추론 형태의 표현으로 사용함.
위의 식은 주어진 입력 시퀀스 (x ≤ t)에 대해 다음 토큰 (x_{t+1})의 확률 분포를 나타내는 LLM의 예측 함수. latent space에서의 추론은 continuous thought가 언어 공간으로 다시 매핑되는 것을 의도하지 않기 때문에, 이 함수는 정의되지 않음.
+) 즉, latent mode에서는 다음 토큰을 예측하는 대신, continuous thought를 다음 단계의 입력으로 직접 사용하는 데 집중하는 것!
[Latent와 Language mode의 전환]
와 토큰 사용하여 시작과 끝 표시.
latent mode 구간(가 j라고 하면 i부터 j-1까지)에는 continuous thought인 마지막 hidden state h가 입력 임베딩으로 사용됨. latent mode가 끝나면 모델은 다시 일반적인 언어 모델처럼 토큰 임베딩을 입력으로 받아서 작동함.
[Multi-stage training]
초기 단계에서는 일반 CoT instance로 학습. 이후 서서히 latent mode로 대체함.
[Inference]
표준 언어 모델 decoding과 유사. 그러나 latent mode에서는 마지막 hidden state → 다음 입력 embedding.
eot 토큰을 언제 생성할지는 1) binary classifier 학습 또는 2) latent thought의 길이를 상수로 padding 하여 결정.
+) 실험에서는 2번의 방법을 사용함. binary classifier은 continuous thought을 입력으로 받아 종료 시점을 판단하는데, '1번 2번 둘 다 잘 작동한다'고 밝힌 뒤 자세한 설명은 생략됨.
++) 정해진 상수 값으로 두고 남는 토큰을 전부 처리하는 것이 구현 측면에서 더 간단해서 그런듯?
3개의 데이터셋에 대한 실험을 진행하여 모델이 생성한 답변과 ground truth를 비교하여 정확도를 평가. (pre-trained GPT-2 사용.)
+) GPT-2를 사용한 이유: 선행연구인 iCoT와 공정한 비교를 위해서
Inference 시에는 greedy decoding을 선택하여 복잡한 sampling 없이 가장 가능성 높은 출력을 선택.
[Math Reasoning]
GSM8k: 초등학교 수준의 수학문제, iCoT 연구에서 사용한 합성데이터셋 사용.
기본적으로 c=2로 설정하고 step 3까지 훈련.
첫 번째 continuous thought를 언어 토큰으로 디코딩한 결과, "180", " 180" (공백 포함), "9"와 같은 토큰이 나타남. 이 문제의 올바른 추론 경로는 "3 × 3 × 60 = 9 × 60 = 540" 또는 "3 × 3 × 60 = 3 × 180 = 540".
→ 첫 번째 continuous thought의 해석 결과인 "180"과 "9"는 실제 계산 과정에서 나타나는 중간 변수이므로 모델이 latent space 안에 실제 문제 해결에 필요한 핵심 정보를 담고 있음 + 두 가지의 가능한 계산 경로를 고려하고 있음!! (BFS와 유사한 프로세스임)을 증명
[Logical Reasoning]
ProntoQA: 5단계(5-hop) 추론을 요구하는 질문들로 구성. 각 질문에는 트리 구조의 지식 그래프가 제공되는데, 추론에 도움이 되지 않는 방해 가지들도 존재함.
ProsQA: 저자들이 ProntoQA보다 더 복잡한 문제를 만들기 위해 DAG를 사용해 고도화시킴.
+) Directed Acyclic Graph(DAG): 방향성 비순환 그래프. 트리 구조보다 더 복잡한 구조를 가질 수 있음.
기본적으로 c=1로 설정하고, step 6까지 훈련.
[Ablation Study]
[latent space의 이점]
Fig 10에서 나타난대로 height(노드 높이)가 낮을수록 정답과 오답 구분이 쉽고, 높을수록 판단이 어려워짐.
+) Search Tree의 관점으로 보면, leaf node에 해당하는 게 낮은 노드. 하위에 가능성이 없는 leaf node는 금방 평가할 수 있는 것.
이러한 문제에서 Latent space는 일찍 확정하지 않고, 마지막까지 가능한 경로를 유지하면서 정답과 오답을 구분할 수 있게 해줌.→ 섣불리 잘못된 가지로 빠지지 않게 해줌
따라서, planning이 필요한 복잡한 문제에서 훨씬 강력함.
iCoT의 방법론을 가져가면서도 공간만을 옮겨보는 발상의 전환이 참신하고, latent space 활용의 잠재력을 보여줌! 노드 서치 알고리즘이나 value function 수정 등의 시도가 이어졌을 것 같은데 더 찾아보고싶다.