The overview of this paper
Transformer의 고정 사이즈 context는 GPT가 long text를 만들 수 없게 만든다. 이 논문에서는 RNN의 반복 메커니즘의 언어 기반 복제인 RecurrentGPT를 소개한다. RecurrentGPT는 ChatGPT 같은 LLM에 기반해서 만들어지고 LSTM의 Long-Short Term Memory을 구동하기 위해 자연어를 사용하였다. 각 timestep에서 RecurrentGPT는 텍스트의 문단을 생성하고, 하드 드라이브와 prompt 각각에 저장되어 있는 언어 기반 Long-Short Term Memory를 업데이트한다. 이 반복 메커니즘은 RecurrentGPT가 forgetting 없이 임의의 길이의 긴 텍스트를 생성할 수 있도록 도와준다. 사람 사용자가 손쉽게 자연어 메모리를 관찰하고 수정할 수 있기 때문에, RecurrentGPT는 이해 가능하고 상호작용적인 long text의 생성을 가능하게 해 준다.
Table of Contents
1. Introduction
2. RecurrentGPT
3. Experiments
4. Limitations
1. Introduction
ChatGPT와 같은 LLM은 writing task에 대해서 효과적인 툴이 될 수 있다는 것을 증명하였다. 그럼에도 불구하고 Transformer architecture에 내재되어 있는 고정 사이즈 context 때문에 오직 LLM을 prompting 함으로써 long text를 생성하는 것은 상당히 힘들다. 이와 반대되게 RNN은 이론적으로 반복 메커니즘 덕분에 임의 길이의 시퀀스를 생성할 수 있는 능력을 가지고 있다. 하지만, RNN은 gradient vanishing or explosion의 문제를 겪어서 규모를 늘리기가 쉽지 않다.
이를 해결하기 위해 Transformer를 RNN 구조에 적용하려는 연구들이 있었으나 이 방법들은 구조에 상당한 변화를 가져와서 규모를 늘리는 것이 쉽지 않다. 현재 주요 LLM들은 기존 Transformer를 최소한의 변동을 가해서 계속적으로 사용하기를 원한다.
이 논문에서는 RNN에서 반복 메커니즘의 언어 기반 복제인 RecurrentGPT를 소개하였다. 그림 1에서 보이는 것처럼 RecurrentGPT는 Long-Short Term Memory RNN(LSTM)의 벡터화된 요소들을 자연어로 대체하고 prompt engineering을 사용하여 반복 메커니즘을 구동하였다. 각 timestep에서 RecurrentGPT는 $t-1$ timestep에서 생성된 텍스트의 문단과 다음 문단의 간략한 plan을 받는다. 그다음에 모든 이전에 생성된 문단으로 구성되어 있고 하드 드라이브에 저장될 수 있는 long-term memory를 참조 가능하고 관련된 문단을 구문 검색을 통해 찾을 수 있다. 또한 RecurrentGPT는 short-term memory에다가 최근 timestep의 핵심 정보를 요약해 두고, 각 timestep에서 업데이트를 진행한다. RecurrentGPT는 앞서 언급된 모든 input을 prompt로 묶고 LLM의 새 문단과 다음 문단 생성을 위한 짧은 계획을 생성하도록 물어보고 short-term memory를 재작성하여, 출력 문단의 요약을 long-term memory에 저장함으로써 Long-Short Term Memory를 업데이트한다. 이 요소들은 다음 timestep에서 재사용되면서 생성 프로세스를 위한 반복 메커니즘을 만든다. RecurrentGPT는 언어 기반 반복 메커니즘을 사용하여 구조적 수정에 대한 필요를 완화하고 어떤 강력한 LLM에도 통합될 수 있다. 이는 고정된 text window size에서 상당히 긴 text의 생성을 가능하게 만들어 준다.
고정 사이즈 context의 제약을 해결하기 위해 RecurrentGPT는 반복 메커니즘의 해석력을 향상시켰다. 더욱 중요한 것은 자연어를 building block으로 사용하는 것은 사람이 RecurrentGPT에 관여할 수 있게 만들어주고, 미래의 생성에 대한 메모리와 plan의 사람 조작이 가능하게 해 준다. 현재의 SoTA 컴퓨터 보조 writing 시스템은 보통 localized 수정 제안에 주로 집중하고 LLM을 블랙박스처럼 다룬다. 논문에서는 RecurrentGPT가 다음 세대의 컴퓨터 보조 작성 시스템을 이끌 것이라고 믿는다.
논문의 실험에서는 RecurrentGPT를 ChatGPT 위에 만들고 일관성과 관여를 유지하는 임의 길이의 텍스트를 자동적으로 생성할 수 있는 능력을 보여주었다. 이와는 반대로, 기존의 vanilla ChatGPT는 몇 백 개 이상의 토큰을 생성하면 반복적인 내용을 생성하거나 일관성을 해치는 등의 모습을 보여줬다. 이 논문의 contribution은 다음과 같다.
- LLM의 고정 사이즈 context 제약을 완화시켜 주는 RNN의 반복 메커니즘의 언어 기반 복제인 RecurrentGPT를 제안하였다.
- RecurrentGPT는 그 자신 만으로 또는 상호작용 writing 시스템으로 여겨짐으로써 매우 긴 텍스트를 생성할 수 있다는 것을 보여줬다.
2. RecurrentGPT
RecurrentGPT는 RNN에서 반복 메커니즘의 자연어 기반 counterpart이다. RecurrentGPT는 LSTM을 다음과 같이 구동하였다.
- LSTM의 모든 벡터 기반 요소들을 자연어로 모델링하였음
- LSTM의 반복 계산 그래프를 자연어 prompt를 사용하여 모델링하였음
- frozen LLM을 사용하여 RNN의 학습 가능한 파라미터를 대체함
공식적으로 논문에서는 파라미터 $\theta$를 사용한 LLM과 prompt template $P$에 의해 파라미터화된 computational 함수로 RecurrentGPT를 정의한다. LSTM의 computation 그래프는 다음과 같다:
여기서 $\theta$는 모델 파라미터를 나타내고, $x_{t+1}$은 $o_{t}$와 같고, $h_{t}$와 $c_{t}$는 각각 timestep $t$에서 long/short-term memory이다. 이와 유사하게 RecurrentGPT의 반복 메커니즘은 다음과 같이 표현된다:
여기서 $o_{t}, x_{t}, h_{t}, c_{t}$는 각각 timestep $t$에서의 content, plan, short-term memory, long-term memory 자연어 기반 building block을 나타낸다. 여기서 $x_{t+1}$은 $o_{t}$와 같지 않고 대신에 별개로 생성되는데 이것은 전통적인 RNN과 다르다.
2-1. Language-based Building Blocks
Input/Output. 각 timestep에서 RecurrentGPT의 input & output은 text의 문단과 생성되어야 한 다음 문단에 대한 outline을 포함한다. 논문에서는 각각을 'content'와 'plan'으로 부른다. 그림 1에 나타나 있는 것처럼 content는 200-400 단어로 구성되어 있고, 바로 읽을 수 있어야 한다. 반면에 plan은 다음 content에 대한 윤곽이고 보통 3-5 개의 문장으로 구성되어 있다. 각 timestep에서 이전 step에서 생성된 context & plan을 RecurrentGPT를 위한 input으로 사용한다. RecurrentGPT는 사용자들이 plan을 읽고 수정해서 해석력을 증가시키고 human-computer 상호작용을 용이하게 해주는 plan과 content를 생성하기 위해 디자인되었다.
Long-Short Term Memory. LSTM과 유사하게 RecurrentGPT는 timestep에 걸쳐서 long-short term memory를 유지한다. long-term memory는 long text를 생성할 때 정보 손실을 최소화하기 위해 이전에 생성된 context를 모두 요약한다. 생성된 content는 길어서 LLM의 context size에 적용될 수 없기에 VetorDB를 사용하여 RecurrentGPT에서 long-term memory의 메모리도 구현이 가능하다. 이 방법이 RecurrentGPT가 더 긴 memory를 저장할 수 있게 해 준다.
반면에 short-term memory는 최근 timestep에 걸친 핵심 정보를 요약한 text의 짧은 문단이다. short-term memory는 길이가 10에서 20인 prompt로 적용되어 LLM에 의해 업데이트가 된다. long-short term memory를 묶음으로써 RecurrentGPT는 최근에 생성된 content의 coherence를 유지할 수 있고 오래전에 생성된 핵심 정보 또한 불러올 수 있다. vanilla LLM은 input에서 조금 전에 생성된 텍스트만 받아들일 수 있기 때문에 이것이 불가능했다.
2-2. Language-based recurrent Computation
RNN은 computation 그래프에서 피드백 루프를 구현함으로써 반복 computation을 달성할 수 있었던 반면에 RecurrentGPT는 recurrent computation scheme을 구동하기 위해 prompt engineering에 의존한다. 그림 1에서 보이는 것처럼 RecurrentGPT는 RNN의 computation 그래프를 prompt template을 사용하여 구동한다.
각 timestep에서 RecurrentGPT는 input content/plan/내부 long-short term memory를 사용하여 prompt template을 채움으로써 input prompt를 제작한다. 특히, long-term memory가 context size 안에 들어오지 않기에 input plan을 쿼리로 사용하여 long-term memory에서 구문 검색을 수행하고 가장 연관 있는 content를 prompt로 사용한다. 이 prompt는 LLM에게 새로운 content, plan, 업데이트된 short-term memory를 생성하도록 지시한다. prompt는 short-term memory에서 더 이상 연관되어 있지 않은 정보는 버리고 새로운 유용한 정보는 추가할 수 있도록 한다. 논문에서는 LLM이 다양한 plan을 생성하도록 하였다. 이는 output의 다양성을 늘려주고 사람 사용자가 가장 적합한 plan을 선택하게 함으로써 human-computer 간의 상호작용을 친화적으로 만든다. 만약 plan이 사용자 마음에 들지 않으면 그들만의 plan을 작성할 수 있게 만들었다. 사람의 간섭 없이 RecurrentGPT가 자동적으로 long text를 만들 수 있도록 하기 위해서, 다음 timestep에 대한 좋은 plan을 선택하고 수정할 수 있게 prompt 기반의 human simulator를 추가하였다.
2-3. Interactive Long Text Generation with RecurrentGPT
RecurrentGPT는 그 자신의 반복 메커니즘만으로도 long text를 생성할 수 있으나 RecurrentGPT의 언어 기반 computation scheme은 독특한 해석력과 상호작용성을 제공한다. RecurrentGPT의 장점은 다음과 같다.
- 사람의 잡무를 줄이는데 효과적임
- 사용자들이 직접적으로 언어 기반 내부 state를 관찰할 수 있기 때문에 해석이 가능함
- 사용자들이 building block을 자연어로 수정 가능하기 때문에 상호 작용이 가능함
- 개인의 기호에 따라 모델을 커스터마이즈 하기 위해 사용자들은 손쉽게 prompt를 수정할 수 있음
뿐만 아니라 사람과의 상호작용은 자동적으로 긴 텍스트를 생성할 때 RecurrentGPT가 만들어내는 실수들을 고칠 수 있고, 오류 전파를 막을 수 있다.
3. Experiments
3-1. Experimental Setup
Tasks. RecurrentGPT를 3가지 세팅에서 평가하였다.
- 사람 상호작용 없이 자동적으로 long text를 생성
- human writer과 함께 공동으로 long text를 생성
- 상호작용적 소설로 text 소비자와 함께 직접적으로 상호작용
각 이러한 task에서, 논문에서는 다양한 장르(과학 소설, 로맨스, 판타지, 호러, 미스터리 등) & 길이(3,000 단어 ~ 6,000 단어)를 평가하였다.
Baselines. Rolling-ChatGPT, RE3, DOC와 비교를 진행하였다.
- Rolling-ChatGPT: context length 제한에 걸리면 다시 ChatGPT 반복적으로 사용하는 method
- RE3: LLM으로 개요를 만들고 re-ranking & re-writing을 사용하여 개요를 따르는 스토리를 생성
- DOC: RE3에 개요 컨트롤을 추가한 모델. 논문에서는 OPT를 ChatGPT로 대체하여 재구현하였고, 그래서 세부적인 controller는 제거됨
Evlauation Metrics. 평가를 위해, 논문에서는 RecurrentGPT를 다음의 2가지 차원을 사용함으로써 사람 평가를 진행하여 baseline과 비교하였다.
- Interesting: 생성된 소설이 얼마나 흥미로운가?
- Coherent: 문단이 서로서로 얼마나 잘 조직되고, 연결되어 있는지를 평가
사람 평가는 서로 다른 모델에서 생성된 두 소설을 주고 둘 중에 뭐가 더 나은지 human annotator에서 결정하도록 하였다.
3-2. Results
표 1에서 보이는 것처럼 RecurrentGPT는 human reader에세 interesting & coherence 측면에서 다른 모델들보다 더 선호되었다. 이는 반복 computation이 long text 생성에 매우 중요하다는 것을 보여준다. 논문에서 RecurrentGPT에 대해 발견한 것은 다음과 같다.
- recurrent computation이 long text 생성에 매우 중요
- 성능 갭은 더욱 긴 소설에 대해 더 컸음. 이는 RecurrentGPT가 더 긴 text 생성에 장점을 가진다는 것을 확인하였음
- human annotator는 모든 소설 장르에서 RecurrentGPT를 선호하였음. 이는 서로 다른 유형의 long text에 robust 하다는 것을 보여줌
논문에서는 RecurrentGPT의 효과를 파악하기 위해 RecurrentGPT를 short-term memory 또는 long-term memory를 사용하지 않는 변형과 GPT-4를 backcone으로 사용하는 모델에 대해 ablation을 진행하였다. 그 결과가 표 2에서 보이고 있다. 결과를 요약해 보자면 다음과 같다.
- long/short-term memory는 주로 생성된 텍스트의 일관성에 공헌
- GPT-4를 backbone으로 사용했을 때 더 나은 결과를 보여주는 것을 보아 더 강력한 LLM을 사용하면 RecurrentGPT의 성능이 개선될 잠재력을 보여줌
다음의 그림 2는 RecurrentGPT의 작동 예시를 보여주고 있다.
4. Limitations
RecurrentGPT는 임의의 long text를 생성할 수 있지만 논문에서는 생성된 text가 5,000 단어 근처인 세팅에서만 평가가 되었다. 이는 너무 긴 텍스트에 대해서는 양적 & 질적 평가가 힘들기 때문이다. 또한 RecurrentGPT는 오직 강력한 LLM에서만 잘 작동하였다. RecurrentGPT는 사람의 writing을 도와주는 데 매우 유용한 툴이 될 수 있지만, 사람들은 생성 AI를 사용할 때 생성 AI 사용에 책임감을 느끼고 사용할 수 있어야 한다.
출처
https://arxiv.org/abs/2305.13304
'Paper Reading 📜 > Natural Language Processing' 카테고리의 다른 글
Tree of Thoughts: Deliberate Problem Solving with Large Language Models 논문 리뷰 (0) | 2023.06.08 |
---|---|
Instruction Tuning with GPT-4 논문 리뷰 (0) | 2023.06.07 |
LoRA: Low-Rank Adaptation of Large Language Models 논문 리뷰 (0) | 2023.05.26 |
OPT: Open Pre-trained Transformer Language Models 논문 리뷰 (0) | 2023.05.24 |
Alpaca: A Strong, Replicable Instruction-Following Model 리뷰 (0) | 2023.05.23 |