Member-only story
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 엔지니어”라고 한 줄 수정한 후, 무엇이 다른지 Claude에 요청하였을 때 Claude는 긴 Context Window Size를 이용하여 정답을 찾아낼 수 있었다. 만일 16K 토큰의 GPT-3.5-turbo-16K를 사용한다면 “위대한 개츠비”의 전체 텍스트를 로드하기 어렵기 때문에 정확한 답변을 얻기 어려울 것이다.
더 큰 Context Window Size는 LLM의 이해 능력과 결합하여 다음과 같은 비즈니스적인 이점을 제공할 수 있다.
- 재무제표나 연구 논문과 같은 밀도 높은 문서를 소화, 요약 및 설명
- 연간 보고서를 기반으로 기업의 전략적 위험과 기회를 분석
- 법안의 장단점을 평가
- 법률 문서 전체에서 위험, 주제 및 다양한 주장 형태를 식별
- 수백 페이지에 달하는 개발자 문서를 읽고 기술적인 질문에 대한 답변
- 전체 코드베이스를 컨텍스트에 배치하고 지능적으로 이를 기반으로 구축하거나 수정하여 신속하게 프로토타입을 제작
Context Window Size가 커질 때 발생하는 문제점
더 큰 Context Window Size는 장점만을 제공하는 것은 아니다. 실제 비용이 많이 들고 예상보다 모델 성능이 떨어질 수 있다.
답변의 질이 떨어지고 환각의 위험성이 높아진다.
RAG(Retrieval Augmented Generation)는 사용자의 쿼리와 관련있는 텍스트를 벡터 데이터베이스에서 검색하여 LLM의 입력으로 제공한다…