LLM의 Context Window Size가 크다고 좋은 것일까?
최근 LLM이 주목받으면서 Context Window와 같은 용어가 많이 언급되고 있다. Context Window는 무엇을 의미하는 것일까? 그리고 왜 중요할까?
Context Window란?
Context Window란 텍스트 또는 시퀀스 이내 타겟 토큰를 둘러싼 토큰들의 특정 범위를 의미한다. Context Window는 언어 모델링, 워드 임베딩, 기계 번역과 같은 NLP 태스크의 핵심적인 개념으로 주변 토큰을 고려하여 타겟 토큰의 컨텍스트 정보를 캡처하는데 도움이 된다. 언어 모델은 주변의 단어를 살펴봄으로써 단어의 의미를 이해하는데, 이를 Contexualization(문맥화)라고 하며 모호성을 해결하는 데 매우 중요하다. 타겟 토큰은 주변의 다른 토큰과의 관계에 따라 그 의미가 결정되기 때문이다.
Context Window Size란?
Context Window Size에 따라 타겟 토큰의 각 측면에서 고려해야 하는 토큰 수가 결정된다. 예를 들어 Context Window Size가 20이면 타겟 토큰의 왼쪽 20개, 오른쪽 20개의 토큰을 고려한다는 뜻이다. Context Window는 고정된 크기를 가질 수 있는데 이는 타겟 토큰의 위치에 관계없이 동일한 수의 토큰을 고려함을 의미한다. 또는 Context Window Size가 가변적일 수 있으며, 시퀀스 내 위치에 따라 그 크기가 달라질 수 있다.
다음은 현재 기준(‘23.9) 독점 LLM과 오픈 소스 LLM들의 Context Window Size를 비교한 그림이다. Anthrophic의 Claude는 독점 LLM과 오픈소스 LLM 중 가장 큰 Context Window Size=100000를 제공한다.
Context Window Size가 왜 중요할까?
Context Window Size가 클수록 In-Context Learning 수행 능력이 증가한다. 즉, 더 많은 예와 더 큰 예를 프롬프트 입력으로 제공할 수 있어 LLM이 더 나은 답변을 제공할 수 있다.
예를들어 여러 문서나 책 한권을 프롬프트로 입력한 다음 텍스트에 대해서 물어 볼 수 있다. 만일 “위대한 개츠비(The Great Gatsby)”의 전체 텍스트를 100K 토큰을 지원하는 Anthropic의 Claude에 로드하고 Mr.Carraway가 “Anthropic에서 머신러닝 도구 작업을 수행하는 SW 엔지니어”라고 한 줄 수정한…