최근에 나온 논문을 읽어보고 간단히 정리했습니다.
노션에 정리한 것을 그대로 긁어왔는데, 혹시 부족하거나 잘못된 내용이 있다면 댓글 부탁드립니다 🙇♂️
현재 LLM들이 가지는 입력의 길이 제한 문제를 엄청나게 개선하는 방법에 관한 논문
- 배경
최근 ChatGPT의 등장 이후로 LLM에 대한 관심이 뜨겁고 실제로 그 성능이 어마무시하게 좋다는 것은 잘 알려져 있다.
그럼에도 불구하고 이러한 LLM들은 transformer 기반의 architecture를 사용하기 때문에, ‘입력의 길이가 제한’되고 ‘이 길이를 늘리는 데 드는 비용이 엄청나게 크다’는 문제점이 있었다.
대표적인 예로 사람들이 챗봇을 통해 처리하기 원하는 것 중 하나가 문서 요약인데, 길이가 조금만 길어도 이를 잘 처리하지 못하는 모습을 쉽게 확인할 수 있었다.
- 관련 연구
- Large-scale Language Model(LLM) : ChatGPT based on Instruct GPT
- Long Text Sequence Processing : replacing Attention structure, special positional encoding
- 모델 컨셉
- Input Acquisition : model agent가 입력을 받는다.
- Memory Activation : 저장된 memory를 사용할 것인지 말 것인지 결정한다. 사용하지 않는 것으로 결정되면 5번으로 넘어간다.
- Memory Retrieval : observation을 query로 사용하여 필요한 memory를 탐색한다. 이때 relevance(cosine similarity로 구함)와 recency를 더한 값을 기준으로 삼는다.
- Memory Reorganization : 원래 memory를 그대로 쓸지 summarize 할지 결정한다.
- Input Fusion : memory를 재구성한다.
- Response Generation : 이전 step의 결과와 현재 step의 상태를 통합하여 반응을 생성한다.
- Memory Stream
모든 기억을 담고 있는 공간이다.
2번에서 메모리를 사용하기로 결정하면 여기에 저장된 것을 탐색하게 된다.
이와 대비되는 메모리는 Flash Memory로 이전 time step T-1에서의 메모리를 뜻한다.
- Memory Controller
저장된 메모리가 필요할지 그렇지 않을지를 결정하는 역할을 한다.
크게 두 개의 질문(prompt)을 던진다.
- 유저의 요청을 실행하는데 메모리를 불러오는 것이 “필수적”인가?
- 유저의 요청을 실행하려면 불러온 메모리를 반드시 “요약”해야 하는가?
두 질문이 각각 flow의 2,4번에 해당된다는 것을 알 수 있다.
- 개인적 감상
👍🏻
최근 트렌드에 정말 적합한 연구가 아니었을까 생각한다.
개인적으로도 ChatGPT를 쓰면서 울화통이 터질 것만 같은 상황을 많이 겪었었다.
그런다고 새로운 채팅을 만들면 이전 것들이 송두리째 날아가 버리니까 이도저도 못하는 상황..?
그런데 이렇게 ultra-long 입력을 처리할 수 있거나, multi-turn 데이터를 담아두고 꺼내 쓸 수 있다면 정말 유용할 것이라는 생각이 들었다.
입력의 길이 제한이 많이 뚫린다면 책으로 된 pdf와 같이 엄청나게 길이가 긴 문서를 요약하거나 필요한 부분을 retrieval 하는 것이 충분히 가능할 것으로 보인다.
아니면 이루다와 같은 감정 대화형 챗봇에 특히 유용할 것이라는 생각이 들었다.
물론 이런 경우에는 정말 모든 정보를 perfect하게 저장하는 것이 다소 비인간적인 인상을 줄 수 있을 것이라는 상상도 해보았다(일부는 까먹어야 인간적이니까).
👎🏻
비용/자원의 문제를 언급하지 않은 것은 이를 피하고 싶은 마음이 너무나도 노골적으로 드러나는 것이라 느꼈다.
당연한 얘기지만 질문/답변에 관련된 모든 정보를 저장하고, 여기서 필요한 것을 꺼내오고, 또 필요에 따라 요약을 하는 것은 엄청난 양의 자원을 필요로 할 것이다.
최근 Stanford 대학에서 낸 Agent 관련 논문을 보더라도, 각 캐릭터가 가지는 기억들을 저장하는 것이 엄청난 양의 용량을 차지하고 실제 OpenAI의 API 토큰을 너무 많이 사용하게 되어서 이틀 정도(현실 기준)밖에 시나리오를 생성하지 못했다는 이야기가 있었다.
대화가 길어지면 길어질수록 이것이 저장될 더 많은 메모리 공간, 이를 처리하는데 드는 비용이 따라서 증가할 것인데 이에 대한 언급이 없다.
그래서 비용으로 인해 존재하는 한계를 극복하기 위해 도입된 방식이 자원의 한계를 지니고 있을 것이라 생각하니 다소 당황스럽기도 하고..
(상대적으로 많이 해소 가능한 부분이라 판단한 것인지 알 수가 없다)
출처 : https://arxiv.org/abs/2304.13343