본문 바로가기
Paper review

RAT: Retrieval Augmented Thoughts ElicitContext-Aware Reasoning in Long-HorizonGeneration 논문 리뷰

by AI미남홀란드 2024. 3. 20.
728x90

안녕하세요 오늘 리뷰해볼 논문은 RAT: Retrieval Augmented Throughts 입니다. 뜻을 직역하면 검색증강을 통해 생각하게 하겠다 정도로 해석할 수 있겠는데요 벌써 느낌이 오긴합니다. LLM 자체에게 생각을 하게 해서 Agent 형태의 모듈들이 많이 만들어지고 있고, Self-RAG, CRAG 등 다양한 RAG 방법론 또한 모델에게 다시 생각을 통해서 원하는 결과를 낼 수 있도록 해주는 방법론 들 입니다.

 

https://arxiv.org/abs/2403.05313

 

RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Horizon Generation

We explore how iterative revising a chain of thoughts with the help of information retrieval significantly improves large language models' reasoning and generation ability in long-horizon generation tasks, while hugely mitigating hallucination. In particul

arxiv.org

Demo Page

 

RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Horizon Generation

We explore how iterative revising a chain of thoughts with the help of information retrieval significantly improves large language models' reasoning and generation ability in long-horizon generation tasks, while hugely mitigating hallucination. In particul

craftjarvis.github.io

 

RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Horizon Generation

We explore how iterative revising a chain of thoughts with the help of information retrieval significantly improves large language models' reasoning and generation ability in long-horizon generation tasks, while hugely mitigating hallucination. In particul

craftjarvis.github.io

Abstract

 

RAT(Retrieval Augmented Thoughts Elicit)은 정보 검색을 활용하여 생각의 연쇄를 반복적으로 수정함으로써 장기 생성 작업에서 대규모 언어 모델의 추론 및 생성 능력을 크게 향상시키고 환각을 크게 완화하는 방법을 탐구합니다. 특히, 제안된 방법인 RAT 초기 제로샷 CoT(Chain of Thoughts) 생성된 작업 쿼리, 현재 과거의 생각 단계와 관련된 검색된 정보를 활용하여 생각 단계를 하나씩 수정합니다. RAT GPT-3.5, GPT-4, CodeLLaMA-7b 적용한 결과 다양한 장기 생성 작업에서 그들의 성능이 크게 향상되었으며, 평균적으로 코드 생성에서는 13.63%, 수학적 추론에서는 16.96%, 창의적 글쓰기에서는 19.2%, 실제 과제 계획에서는 42.78%의 상대적 평점 증가를 보였습니다. 

 

1. Introduce

대규모 언어 모델(LLMs) 다양한 자연어 추론 작업에서 진전을 이루었지만, 특히 대규모 모델과 체계적인 프롬프팅 전략, 사고의 연쇄(Chain of Thought, CoT) 프롬프팅을 결합할 특히 그러합니다. 그러나 LLM 추론에 있어 사실적 정확성에 대한 우려가 증가하고 있으며, 이는 모델 응답에서의 가능한 환각 또는 중간 추론 경로인 CoT에서 더욱 두드러집니다. 문제는 다단계 맥락 인식 추론이 필요한 제로샷 CoT 프롬프팅 장기 생성 작업에서 더욱 심각합니다. 사실적으로 유효한 중간 생각은 이러한 작업의 성공적인 완성에 중요할 있습니다.

 

Pipeline of Retrieval Augmented Thoughts (RAT)

 

문제를 완화하기 위해 가지 프롬프팅 기술이 제안되었으며, 인간 추론에서 통찰력을 얻고 검색된 정보를 활용하여 사실적으로 근거한 추론을 촉진하는 검색 강화 생성(RAG) 가지 유망한 방향입니다. 논문에서는 RAG 복잡한 장기 추론과 시너지를 이루는 방법을 탐구합니다. 우리의 직관은 중간 추론 과정 내의 환각이 외부 지식의 도움을 통해 완화될 있다는 것입니다. 결과적으로 검색 강화 생각(RAT)이라는 프롬프팅 전략이 제시되었습니다. 전략은 가지 주요 아이디어를 포함합니다. 첫째, LLM 의해 생성된 초기 제로샷 CoT 원래의 작업 프롬프트는 잠재적으로 결함이 있는 CoT 수정하는 도움이 있는 정보를 검색하는 사용됩니다. 둘째, 전체 CoT 검색하고 번에 최종 응답을 생성하는 대신, LLM CoT(일련의 하위 작업) 따라 단계별로 응답을 생성하고 현재 생각 단계만이 작업 프롬프트, 현재 과거 CoT 함께 검색된 정보에 기반하여 수정됩니다

 

RAT 는 대규모 언어 모델이 장기적이고 맥락을 인식하는 생성 작업에서 보다 정확하고 신뢰할 있는 추론을 있도록 돕는 프롬프팅 전략입니다. 접근 방식은 인간의 추론 과정을 모방하여, 외부 지식을 활용해 단계별 사고를 조정하는 것에 착안했습니다. RAT 초기에 생성된 제로샷 사고의 연쇄(CoT) 작업 프롬프트를 사용하여 가능하게 결함이 있는 CoT 수정할 있는 정보를 검색합니다. 그런 다음, 전체 CoT 번에 검색하고 수정하는 대신, 모델이 CoT 따라 단계별로 응답을 생성하며, 현재 생각 단계는 작업 프롬프트, 현재 과거의 CoT 함께 검색된 정보에 기반하여 수정됩니다.

 

그림으로 구조를 본다면 첫번째 단계에서 LLM이 사용자에 의해 제공된 Prompt 를 기반으로 초기에 Zero-ShotCOT를 생성을한다. 'Minecraft에서 다이아몬드 검을 어떻게 얻냐?" 라는 프롬프트에 대해서 모델은 여러 단계의 CoT 답변을 제공을 한다. 여기서 답변이 틀린예로 잘못된 정보로 예를 들고 있다.

그래서 다음단계는 LLM 검색 라이브러리를 사용하고 작업 Prompt 이전에 생성된 CoTs를 기반으로 관련 정보를 검색한다. 그 후 검색된 정보를 활용해서 CoT 중간에 i번째 단계를 수행하고 , 이 과정의 반복을 통해 각각의 CoT 를 검토하고 이전의 모든 생성물을 맥락에 맞게 조정한다.

결국 Agent 형태의 정보를 계속 추가해서 정확히 어떤 알고리즘이 도는지는 나와있지 않지만 무언가의 Re-ranking 이라던지, 유사도라던지 여러 CoT 를 통해서 문제를 해결하겠다? 라는 것 같다.

 

2. Retrieval Augmented Thoughts

RAT(Retrieval Augmented Thoughts)의 목표는 대규모 언어 모델(LLMs)을 사용할 때 발생할 수 있는 환각을 완화하면서 장기적인 추론 및 생성을 지원하는 것입니다. 장기 지평 작업에서 만족스러운 성능을 달성하기 위해서는 두 가지 주요 요소가 필요합니다:

  • 검색을 통한 사실 정보 접근: 사실적인 정보에 대한 접근은 검색을 통해 용이해질 수 있으며, 이는 모델이 정확한 데이터를 기반으로 추론을 할 수 있도록 합니다.
  • 적절한 중간 단계의 구축: 복잡한 작업을 완성하기 위한 사고의 연쇄(Chain of Thought, CoT) 통해 구체적인 중간 단계를 설정할 있습니다. 이러한 중간 단계는 복잡한 문제를 해결하는 필요한 '스크래치패드' 같은 역할을 합니다.

RAG는 신뢰할 수 있는 소스에서 추출한 관련 텍스트를 LLM에 제공함으로써 허구적인 사실을 생성하는 문제를 해결하는 데 초점을 맞춥니다. 주로 질문 응답(QA) 작업에서 사용되며, 주어진 쿼리에 대해 가장 관련성 높은 문서를 검색하고, 이를 LLM의 프롬프트에 통합하여 최종 답변을 생성하는 데 사용됩니다. 이 과정에서 문서와 쿼리 간의 관련성은 코사인 유사도를 사용하여 측정되고, 가장 높게 순위가 매겨진 문서들이 최종적으로 LLM에 의해 생성된 답변으로 이어집니다. 이를 통해 LLM의 환각을 줄일 수 있습니다. 그러나, 효과적인 검색 쿼리로 번역하기 어려운 복잡한 추론 작업의 경우, 관련 문서를 찾는 것이 도전적이 될 수 있으며, RAG의 적용 가능성이 낮아질 수 있습니다. 전통적으로 RAG는 한 번에 모든 관련 정보를 검색하지만, 이는 후속 추론 및 생성 단계에서 필요한 "사실" 또는 정보를 예측하기 어렵다는 점을 간과합니다.

 

CoT Prompting 복잡한 추론 단계를 요구하는 작업에서 LLM 성능을 향상시키기 위해 설계되었습니다. 특히, LLM에게 직접 정답을 생성하도록 하는 대신에, 중간 추론 단계를 먼저 출력하도록 유도합니다. 중간 추론 단계는 작업을 위한 '스크래치 공간' 역할을 하며, 최종 답변으로 요약되기 전에 필요한 중간 과정을 나타냅니다. 이러한 LLM 동작은 " 단계씩 생각해보자"와 같은 프롬프팅 용어를 통해 제로샷에서 유도되거나, 유사한 작업에서 CoT 수행하는 가지 예시를 통해 트리거 있습니다. 그러나 중간 생각에 대한 직접적인 감독이 없기 때문에, LLM 관련 도메인 지식이 부족하거나 환각에 편향될 있어 오류를 범할 있습니다.

 

위 내용들을 알기 위해 기본적인 RAG, COT 에 관한 설명이 나온다. 자세한 설명은 알겠다고 생각하고 생략하겠습니다.

 

그림이 조금 이상하다. 예랑 색깔이랑 다르게 표시를 해놔서 더 헷갈리게 해놓았다. 여튼 여기서 중요한건 RAT에 대한 성능을 말하고 싶은 듯하다. Task 별로 성능이 상이한것을 볼 수가 있는데? 생각보다 Direct만 잘써도 되자나? 생각이 들었다 특정 task 에서 말이다. CoT 보다 높기도하고 RAG 와 상이한 능력을 보여준다. RAT 는 모든 Task에서 압도적이다.

RAT Algorithm

 

알고리즘을 한번 다시 봐보면  🤫

 

초기화 단계 : Prompt 를 입력으로 받아서, LLM 에서 제로샷 CoT 를 통해 answer 를 여러개를 생성한다. 

답변 초안 생성 : 생성된 CoT 중 첫번째 단계를 가지고 답변의 초안을 시작한다.

 

n번 반복과정:

- 쿼리 생성: 현재의 답변 초안을 기반으로 새로운 검색 쿼리를 생성합니다. 이 쿼리는 모델이 이후 단계에서 필요로 하는 정보를 검색하는 데 사용한다
-  정보 검색: 생성된 쿼리를 사용해 데이터베이스나 인터넷에서 정보를 검색. 검색된 정보는 작업에 대한 모델의 이해를 보강하고 환각을 줄이는 데 도움을 준다.
- 답변 초안 수정: 검색된 정보를 바탕으로 현재의 답변 초안을 개정한다. 이 과정에서 모델은 CoT에서 이전에 발생한 오류를 수정하고, 더 정확하고 완전한 답변을 구성하기 위해 새로운 정보를 통합한다.
- 다음 사고 단계 추가: 수정된 답변에 다음 사고 단계를 추가. 이는 모델이 작업을 단계적으로 풀어가면서 각 단계에서 최신 정보를 반영할 수 있도록 함.
- 인덱스 업데이트: 다음 반복을 위해 인덱스(i)를 하나 증가시킴.

 

반복 완료: 모든 CoT 단계가 검토되고 필요한 수정이 이루어질 때까지 위의 과정을 반복

최종 출력: 수정 과정을 거친 최종 답변 초안을 출력합니다. 이는 각 단계에서 검색된 정보를 반영하여 정확도와 완전성이 향상된 답변한다.

 

3. Experiments

RAT(Retrieval Augmented Thoughts) 방법론의 성능을 다양한 벤치마크를 통해 평가한 3장은 RAT가 장기적인 생성 및 추론 작업에서 기존 방법들이 겪는 어려움을 어떻게 극복하는지 보여줍니다. 특히, LLMs의 출력에서 나타나는 환각 현상을 줄이는 것에 초점을 맞춥니다.

 

3.1 Experimental Setups

RAT는 네 그룹의 벤치마크를 사용하여 평가되었습니다:

  • Code Generation: HumanEval, HumanEval+, MBPP, MBPP+ 벤치마크가 포함되며, 간단한 함수 구현에서부터 복잡한 알고리즘 문제까지 다양한 프로그래밍 문제를 포함합니다.
  • Mathematical Reasoning : GSM8K 및 GSM-HARD 데이터셋에서 수행되며, 다단계 수학 문제를 포함합니다.
  • Creative Writing tasks: RAT의 다양성을 평가하기 위한 작업으로, 설문, 요약 등과 같이 개방형 텍스트 생성의 다양한 측면을 강조합니다.
  • Embodied Planning: Minecraft에서 평가되며, 간단한 목표부터 도전적인 다이아몬드 목표에 이르기까지 다양한 작업을 평가합니다.

위 테스트는 모두 zero-shot 으로 평가

 

수학적추론, 창의적 글쓰기, 구체화 기획 과제 에 대한 평가 . 이 중 수학적 추론과 창의적 글쓰기는 gpt-3.5를 기본 모델로 사용하며, 구체화된 계획은 gpt-4를 기본 모델로 사용합니다. Δ는 DIRECT보다 상대적으로 개선된 정도를 나타냅니다.

3.2 Result

RAT는 다양한 벤치마크에서 다른 방법들보다 일관되게 우수한 성능을 보여주었으며, 코드 생성, 수학적 추론, 창의적 글쓰기 작업에서 두드러진 개선을 보였습니다. RAT는 특히 GPT-4를 사용했을 때 가장 큰 개선을 보여주었고, 이는 검색된 텍스트에서의 문맥 학습 능력이 뛰어나기 때문입니다. GPT-4 가 역시 사용해본 입장에서도 아직까지 문맥적으로 이해하고 RAG 구조를 원할하게 적용하는 모델같다.

 

3.3 Case Analysis

RAT는 Minecraft의 장기적인 계획 작업과 창의적 글쓰기 작업에서 구체적인 사례 분석을 통해, 구조화된 추론과 동적 지식 검색의 결합이 어떻게 복잡한 장기 계획 문제에 대응하는지 보여줍니다.

 

3.4 Ablation Study

  • 검색 소거 연구: RAT에서 다양한 검색 전략이 생성 출력에 미치는 영향을 조사합니다.
  • 원인 추론 소거 연구: CoT를 기준으로 원인 및 비원인 추론 접근 방식이 RAT 시스템의 성능에 미치는 영향을 체계적으로 조사합니다.

3.5 Robustness of RAT

RAT는 다양한 작업과 여러 LLM의 용량에서 평가되었습니다. 이는 RAT가 문제 해결 과정에서 일관되게 개선할 수 있는 강인한 일반화 능력을 가지고 있음을 강조합니다.

실험에서는 RAT 단계에서 사고의 연쇄를 반복적으로 개선함으로써, 관련성 높은 정보를 검색하고 최종 생성물의 정확성과 효율성을 크게 향상시키는 RAT 강점을 강조합니다.

4. Related Works

RAG는 모델 파라미터를 업데이트하지 않고 비용 효과적으로 LLMs가 외부 세계와 상호 작용할 수 있게 하며, 코드 생성, 질문 응답, 창의적 글쓰기 등 여러 하위 작업에 널리 적용됩니다. 최근 연구들은 추론을 강화하여 RAG의 성능을 더욱 향상시키고 있는데, 이러한 접근법은 더 나은 검색 쿼리를 생성하거나, 적합한 전제를 찾기 위한 반복적인 검색, 장기 생성 작업에서 외부 지식을 쿼리하거나 단일 논리 추론 단계를 수행하는 방법을 포함합니다. 이러한 기존 방법들과 달리, 제안된 RAT는 추론과 초안 답변을 자동회귀적 방식으로 활용하여 검색을 수행하며, 이는 다양한 작업에서 RAG의 성능을 크게 향상시키는 것으로 나타났습니다.

또한, 언어 모델 추론의 발전과 관련된 주목할 만한 방법론들이 등장했습니다. 이는 언어 모델이 자체적으로 문제 해결 전략을 생성할 있음을 보여주는 CoT에서 시작되어, 최소에서 최대로 유도하는 프롬프팅, 제로샷 CoT, 자기 일관성, 프롬프팅 없는 제로샷 CoT 등으로 발전했습니다. 또한, 기본 프롬프팅을 넘어서, 추론을 세분화하거나 복잡한 구조로 확장하는 방법들이 개발되었습니다. 이들 방법은 주로 LLM 추론 능력을 향상시키기 위해 프롬프팅을 설계하거나 환경으로부터의 피드백을 활용하여 보다 나은 계획 의사결정을 지원하는 것을 목표로 합니다. RAT 이러한 접근법들과 구별되며, 추론 과정에 도움을 있는 외부 지식에 접근하기 위해 RAG 사용합니다.

 

5. Conclusion

결론에서는 검색 강화 생성(RAG)과 사고의 연쇄(Chain of Thought, CoT) 프롬프팅을 결합한 '검색 강화 사고(RAT)'라는 새로운 전략을 소개하고 있습니다. RAT는 단순하지만 효과적인 방식으로, LLM이 생성한 제로샷 CoT를 검색을 통해 수정하고 반응을 점진적으로 생성해내며, 특히 코드 생성, 수학적 추론, 신체적 작업 계획, 창의적 글쓰기와 같은 복잡한 장기 추론 및 생성 작업에서 기존의 방법들보다 상당한 이점을 보여주었습니다.

그러나 RAT의 성능은 기반 LLM의 CoT 추론 및 인텍스트 학습 능력에 의존하며, 작은 규모의 LLM에서는 그 효과가 의문시됩니다. 또한, RAT의 성능은 검색된 지식의 질에도 의존하는데, 관련 없는 지식이 검색될 경우 유용한 정보 생성에 도움이 되지 않을 수 있습니다. 따라서 효율적이고 효과적인 검색을 위한 지식 베이스 구축 및 평가 방법을 연구하는 것이 중요한 방향이 될 것입니다.

이러한 제한 사항들은 전통적인 RAG 연구에도 적용되며, RAT의 또 다른 제한 사항은 CoT를 따라 문제를 단계적으로 해결한다는 점입니다. 때때로 간단한 질문에 대해 단계별 사고가 과도할 수 있고, 좀 더 복잡한 추론 구조를 필요로 하는 경우도 있습니다. 따라서 향후 연구에서 LLM에 대한 더 나은 추론 방법을 탐색하는 것도 흥미로울 것입니다.

윤리적 측면에서는 사용된 데이터셋과 모델이 공개적으로 접근 가능하며, 연구와 관련된 중대한 윤리적 고려 사항은 발견되지 않았습니다. RAT 다양한 분야에서 LLM 생성 능력을 향상시키고, 환각을 줄일 있다고 믿어집니다.

 

sLLM이 문맥적인 이해를 잘 못하기 떄문에 실험을 해봐야하는 기법같다. 사실 GPT로한다면 당연히 문맥적 이해를 잘하겠지만 API 호출비용이 꽤나 나올듯한 Agent 방식의 방법론이라 할 수 있겠다.

 

Code

현재 허깅페이스에서 사용이 가능하다.

 

나는 LoRA 튜닝이 웨이트가 업데이트 과정에 대해 질문을 했다.

 

ChatGPT-ZeroShotCoT

 

To update the weights in LoRA tuning, follow these steps:

1. Calculate the derivative of the loss function with respect to each weight in the LoRA tuning algorithm.
2. Apply the derivative to determine the direction in which the weight should be updated. This is typically done using gradient descent or a variant like Adam or RMSprop.
3. Adjust the weights by a certain learning rate multiplied by the derivative to take a step towards minimizing the loss function.
4. Repeat steps 1-3 for all the weights in the LoRA model to update them simultaneously.
5. Continue iterating through your dataset or training batches, updating the weights accordingly based on the gradients of the loss function.
6. Monitor the training process to ensure that the model is converging to a suitable solution.
7. Consider regularization techniques like L1 or L2 regularization to prevent overfitting during the weight update process.
8. Fine-tune the learning rate and other hyperparameters to optimize the weight update process for your specific LoRA model and dataset.
9. Validate the updated weights on a separate validation dataset to assess the generalization performance of the model after the weight updates.
10. Iterate through steps 1-9 as needed, potentially adjusting the update strategy or hyperparameters, until the model's performance meets the desired criteria.

 

RAT 

 

# 답변: LoRA 튜닝의 웨이트 업데이트 이해

## LoRA의 가중치 업데이트 메커니즘
LoRA 튜닝의 가중치 업데이트에는 각 가중치에 대한 손실 함수의 미분을 계산하고 이 미분을 사용하여 가중치 업데이트의 방향을 결정하는 작업이 포함됩니다. 이 방향은 일반적으로 경사 하강, Adam 또는 RMSprop과 같은 최적화 알고리즘을 통해 결정됩니다. 학습률과 미분의 곱을 기반으로 가중치를 조정함으로써 모델은 손실 함수를 최소화하는 방향으로 진행됩니다.

## 동시 가중치 조정
포괄적인 업데이트를 보장하려면 LoRA 모델의 모든 가중치를 동시에 반복하는 것이 중요합니다. 데이터 세트 또는 배치를 통해 학습이 진행됨에 따라 손실 함수의 기울기에 따라 가중치가 지속적으로 수정됩니다. 이 반복적인 프로세스를 모니터링하는 것은 모델의 수렴을 추적하고 성능을 개선하고 학습을 최적화하기 위해 필요한 조정을 하는 데 필수적입니다.

## 최적화 전략 및 정규화
가중치 업데이트 효과를 높이고 과적합을 방지하기 위해 L1 또는 L2 정규화와 같은 정규화 기법을 사용할 수 있습니다. 학습 속도를 포함한 하이퍼파라미터를 미세 조정하는 것도 LoRA 모델과 데이터 세트에 맞는 가중치 업데이트 프로세스를 최적화하는 데 중요합니다. 별도의 데이터 세트에서 업데이트된 가중치를 검증하면 가중치 조정 후 모델의 일반화 능력을 평가하는 데 도움이 됩니다. 단계 반복, 전략 구체화 및 과대 광고 조정하기

 

 

728x90