대규모 언어 모델(LLM)의 컨텍스트 창(또는 '컨텍스트 길이')은 모델이 한 번에 고려하거나 '기억'할 수 있는 토큰 단위의 텍스트 양입니다. 컨텍스트 창이 클수록 AI 모델은 더 긴 인풋을 처리하고 더 많은 양의 정보를 각 아웃풋에 통합할 수 있습니다.
LLM의 컨텍스트 창은 작업 메모리와 동일하다고 간주할 수 있습니다. 이는 대화 초기의 세부 사항을 잊지 않고 얼마나 오래 대화를 수행할 수 있는지를 결정합니다. 또한 한 번에 처리할 수 있는 문서 또는 코드 샘플의 최대 크기도 결정합니다. 프롬프트, 대화, 문서 또는 코드베이스가 인공 지능 모델의 컨텍스트 창을 초과할 경우 모델을 진행하려면 잘라내거나 요약해야 합니다.
일반적으로 LLM의 컨텍스트 창 크기를 늘리면 정확도가 높아지고 할루시네이션이 줄어들며, 모델 응답이 더 일관성 있고 대화가 더 길어지며 더 긴 데이터 시퀀스를 분석하는 능력이 향상됩니다. 그러나 컨텍스트 길이를 늘이면 도 있습니다. 컴퓨팅 성능 요구 사항이 늘어나 비용이 증가하고 적대적인 공격에 대한 취약점이 증가할 수 있습니다.
현실에서 언어 모델의 컨텍스트 길이는 단어가 아니라 토큰으로 측정됩니다. 컨텍스트 창이 실제로 어떻게 작동하는지 이해하려면 이 토큰의 작동 방식을 이해하는 것이 중요합니다.
LLM이 언어를 처리하는 방식은 인간의 방식과 근본적으로 다릅니다. 인간이 언어를 표현하는 데 사용하는 가장 작은 정보 단위는 글자, 숫자 또는 구두점과 같은 단일 문자인 반면, AI 모델이 사용하는 가장 작은 언어 단위는 토큰입니다. 모델이 언어를 이해하도록 학습시키기 위해 각 토큰에 ID 번호가 지정됩니다. 모델을 학습시키는 데는 단어나 토큰 자체가 아닌 이러한 ID 번호가 사용됩니다. 이러한 언어의 토큰화는 텍스트를 처리하고 학습하는 데 필요한 컴퓨팅 능력을 크게 줄여줍니다.
하나의 토큰이 나타낼 수 있는 텍스트의 양에는 큰 차이가 있습니다. 토큰은 단일 문자, 단어의 일부(예: 접미사 또는 접두사), 전체 단어 또는 짧은 다중 단어 구로 나타낼 수 있습니다. 다음 예에서 문자 'a '가 수행하는 다양한 역할을 고려해 보세요.
“Jeff drove a car.”
여기서 "" 온전한 단어입니다.이 경우에는 고유한 토큰으로 표현됩니다.
“Jeff is amoral.”
여기서, ""는 단어가 아니지만 그것이 추가되면 단어의 의미가 크게 달라집니다. 따라서 두 개의 별개 토큰으로 표현됩니다. 그리고 다른 하나는 .
"Jeff loves his cat."
여기서, 은(는) 단어의 문자일 뿐입니다.." 그 자체로는 아무런 의미를 지니지 않으므로 별도의 토큰으로 표현할 필요가 없습니다.
고정된 단어-토큰 '교환 비율'은 없으며, 토큰화를 담당하는 더 큰 모델의 모듈식 하위 집합인 다양한 모델 또는 토큰화 도구가 동일한 글 구절을 다르게 토큰화할 수 있습니다. 효율적인 토큰화는 컨텍스트 창의 범위 내에 맞는 실제 텍스트의 양을 늘리는 데 도움이 될 수 있습니다. 그러나 일반적인 용도로는 단어당 약 1.5 토큰을 사용하는 것이 적당할 것입니다. Tokenizer Playground on Hugging Face는 다양한 모델이 텍스트 인풋을 토큰화하는 방법을 쉽게 확인하고 실험할 수 있는 방법입니다.
학습 데이터의 언어 구조와 표현의 차이로 일부 언어는 다른 언어보다 더 효율적으로 토큰화될 수 있습니다. 예를 들어 2024년 10월 한 연구에서 동일한 문장을 영어와 텔루구어로 토큰화된 사례를 살펴보았습니다. 텔루구어 번역은 영어 번역보다 문자 수가 훨씬 적음에도 문맥상 토큰 수가 7배 더 많았습니다.
컨텍스트 창은 일반적으로 요약, 텍스트 생성 및 기타 자연어 처리(NLP) 작업에 사용되는 LLM과 관련이 있지만, 기술적 고려 사항으로서의 컨텍스트 길이는 언어 모델에만 국한되지 않습니다. 컨텍스트 창의 개념은 거의 모든 LLM을 포함하여 대부분의 최신 생성형 AI 모델로 구성된 트랜스포머 아키텍처를 사용하는 모든 머신 러닝 모델과 관련이 있습니다.
트랜스포머 모델은 셀프 어텐션 메커니즘을 사용하여 인풋의 서로 다른 부분(예: 단락의 시작과 끝에 있는 단어) 간의 관계와 종속성을 계산합니다. 수학적으로 말하자면, 셀프 어텐션 메커니즘은 텍스트 시퀀스의 각 토큰에 대한 가중치 벡터를 계산하며, 각 가중치는 해당 토큰이 시퀀스의 다른 토큰과 얼마나 관련성이 있는지를 나타냅니다. 자기회귀 LLM은 아웃풋의 다음 단어를 생성할 때마다 이러한 가중치를 반복적으로 참조합니다. 컨텍스트 창의 크기에 따라 모델이 한 번에 '주의를 기울일 수 있는' 최대 토큰 수가 결정됩니다.
실제 사용자 인풋의 텍스트만이 모델의 컨텍스트 창 내에서 공간을 차지하는 것은 아님을 주목할 필요가 있습니다. 챗봇을 비롯한 여러 경우에서, 종종 사용자에게는 숨겨진 '시스템 프롬프트'가 모델에 제공되어 모델의 행동을 조건화하고 대화의 다른 측면을 제어합니다. 검색 증강 생성(RAG)을 위해 외부 데이터 소스에서 가져온 추가 정보도 마찬가지로 추론 중에 컨텍스트 창 내에 저장됩니다. 특수 문자, 줄 바꿈 및 기타 서식 지정 방법도 사용 가능한 컨텍스트의 일부를 사용합니다.
언어 모델이 트랜스포머를 활용하는 유일한 신경망이 아니라는 점도 주목할 만합니다. 예를 들어 이미지 생성에 사용되는 일부 확산 모델은 셀프 어텐션을 아키텍처에 통합합니다. 이 경우 주목해야 하는 컨텍스트는 작성된 콘텐츠의 단어(또는 단어의 일부)를 나타내는 토큰 간이 아니라, 이미지의 픽셀 간 컨텍스트입니다. 이러한 모델에서 컨텍스트 길이는 모델이 관계를 이해해야 하는 픽셀 수에 적용됩니다. 한 번에 처리할 수 없는 너무 많은 픽셀이 포함된 고해상도 이미지는 컨텍스트 창을 초과할 수 있습니다.
모델에 대규모 컨텍스트 창을 장착하면 실제적인 비용뿐 아니라 광범위한 의미의 비용도 발생합니다. 예를 들어 인풋 토큰의 수가 2배가 되면 모델에서 이를 처리하는 데 4배의 처리 능력이 필요합니다.
마찬가지로 컨텍스트 길이가 길어지면 아웃풋 속도가 느려질 수 있습니다. 모델은 시퀀스의 다음 토큰을 자기회귀적으로 예측할 때마다 해당 토큰과 시퀀스의 모든 선행 토큰 간의 관계를 계산합니다. 시퀀스나 대화의 시작 부분에서는 추론 속도가 상대적으로 빠를 수 있지만, 컨텍스트 길이가 길어질수록 추론 속도가 점차 느려집니다. 이는 거의 즉각적인 실시간 추론이 필요한 사용 사례에 문제가 될 수 있습니다.
최근 언어 모델의 평균 컨텍스트 길이가 부분적으로 개선된 것은 이러한 내재적 단점을 충분히 상쇄할 수 있을 만큼 추론 속도와 효율성을 높이는 새로운 기술 덕분입니다. 이러한 최적화 기법을 통해 최신의 소규모 오픈 소스 LLM도 2022년 말에 OpenAI의 ChatGPT를 출시한 오리지널 GPT-3.5모델보다 기하급수적으로 큰 컨텍스트 창을 제공할 수 있게 되었습니다.
계산 요구 사항과 처리 속도의 상충을 상쇄하기 위해 적절한 조치를 취하더라도 모델의 컨텍스트 길이 제한을 확장하면 추가적인 문제와 복잡성이 발생합니다.
사람과 마찬가지로 LLM도 많은 추가 세부 정보에 압도될 수 있습니다. 또한 게으름을 피우고 인지적 지름길을 택할 수도 있습니다. 2023년 논문에 따르면 LLM은 "긴 인풋 컨텍스트에서 정보를 강력하게 활용하지 않는다"고 합니다. 좀 더 구체적으로 말하자면, 저자들은 관련 정보가 인풋 컨텍스트의 시작 또는 끝 부분에 있을 때 모델이 가장 잘 수행된다는 것을 관찰했습니다. 또한 모델이 긴 컨텍스트 중간의 정보를 신중하게 고려해야 할 때 성능이 저하되는 것을 관찰했습니다.1
회전 위치 임베딩(RoPE)을 비롯해 트랜스포머 셀프 어텐션 메커니즘 자체의 효능을 개선하기 위한 새로운 방법들은 어텐션 벡터에서 토큰의 위치 인코딩을 수정하는 것을 목표로 합니다. RoPE 기반 방법이 광범위하게 도입되어 서로 멀리 떨어진 토큰을 사용하는 작업에서 성능과 속도가 향상되었습니다.
지속적인 연구를 통해 LLM이 큰 구절에서 관련 정보를 효과적으로 찾고 사용하는 능력을 측정하도록 설계된 여러 벤치마크가 생성되었습니다. 여기에는 NIAH(needle-in-a-haystack), RULER 및 LongBench가 있습니다.
컨텍스트 창이 더 길어지면 적대적인 프롬프트에 더 긴 공격 표면을 제공하는 의도치 않은 결과를 초래할 수도 있습니다. Anthropic의 최근 연구에 따르면 모델의 컨텍스트 길이를 늘이면 '탈옥'에 대한 취약점이 증가하여 (결과적으로) 유해한 반응을 유발하는 것으로 나타났습니다.2
대규모 언어 모델의 평균 컨텍스트 창은 최초의 GPT(생성형 사전 학습 트랜스포머)가 출시된 이후 기하급수적으로 증가했습니다. 지금까지 LLM의 각 후속 세대는 일반적으로 컨텍스트 길이가 상당히 길어졌습니다. 현재 주요 상용 모델이 제공하는 최대 컨텍스트 창은 100만 토큰 이상입니다. 컨텍스트 창이 계속 확장될지, 아니면 이미 현실적 필요성의 상한선에 근접하고 있는지는 두고 보아야 합니다.
참고로, 다음은 2024년 10월 현재 일반적으로 인용되는 일부 모델 및 모델 제품군에서 제공하는 현재 컨텍스트 길이입니다.
새로운 o1 모델 제품군도 마찬가지로 128,000 토큰으로 구성된 컨텍스트 창을 제공하지만, 아웃풋 컨텍스트 길이는 더 깁니다.
원래 Llama 모델의 최대 컨텍스트 길이는 2,048 토큰이었는데, Llama 2에서는 4,096 토큰으로 두 배로 늘어났습니다. 2024년 4월 출시 당시 Llama 3 모델은 약 8,000 토큰의 컨텍스트 창을 제공했습니다.
Llama의 컨텍스트 길이는 128,000 토큰의 긴 컨텍스트 창을 제공하는 Llama 3.1 모델의 출시와 함께 크게 증가했습니다. Llama 3.2 모델도 마찬가지로 최대 컨텍스트 길이는 128,000 토큰입니다.
Mistral AI가 제공하는 플래그십 모델인 Mistral Large 2의 컨텍스트 창은 128,000 토큰을 지원합니다.
Google의 Gemini 시리즈 모델은 현재 상용 언어 모델 중 가장 큰 컨텍스트 창을 제공합니다. Google의 플래그십 모델인 Gemini 1.5 Pro는 최대 200만 토큰의 컨텍스트 길이를 제공합니다. Gemini 1.5 Flash와 같은 다른 Gemini 1.5 모델의 컨텍스트 창은 100만 토큰을 지원합니다.
Claude 3.5 Sonnet과 같은 Anthropic의 최신 Claude 모델은 약 20만 토큰의 표준 컨텍스트 창을 제공합니다. 2024년 9월 초, Anthropic은 새로운 'Claude Enterprise' 요금제를 통해 액세스한 모델은 50만 토큰으로 확장된 컨텍스트 창을 제공할 것이라고 발표했습니다.
1. "Lost in the Middle: How Language Models Use Long Contexts," arXiv, 2023년 7월 6일
2 "Many-shot jailbreaking," Anthropic, 2024년 4월 2일
IBM Granite는 비즈니스에 맞게 맞춤화되고 AI 애플리케이션 확장에 최적화되었으며 개방적이고 성능이 뛰어나며 신뢰할 수 있는 AI 모델 제품군입니다. 언어, 코드, 시계열 및 가드레일 옵션을 살펴보세요.
자연어 처리를 통해 컴퓨터와 보다 자연스럽게 대화하는 방법을 알아보세요.
IBM은 2,000개 조직을 대상으로 AI 이니셔티브에 대한 설문조사를 실시하여 효과적인 전략과 효과적이지 못한 전략, 그리고 앞서나갈 수 있는 방법을 알아보았습니다.
IBM 개발자 웹사이트를 방문하여 블로그, 기사, 뉴스레터를 살펴보고 IBM 임베드 가능 AI에 대해 자세히 알아보세요.
실습, 강좌, 가이드 프로젝트, 평가판 등을 통해 기본 개념을 배우고 기술을 쌓으세요.
IBM watsonx Orchestrate를 사용하여 확장 가능한 AI 어시스턴트 및 에이전트를 쉽게 설계하고, 반복적인 작업을 자동화하고, 복잡한 프로세스를 간소화합니다.
강력하고 유연한 라이브러리, 서비스 및 애플리케이션 포트폴리오로 인공 지능의 비즈니스 가치를 가속화합니다.
AI 추가를 통해 중요한 워크플로와 운영을 혁신함으로써 경험, 실시간 의사 결정 및 비즈니스 가치를 극대화합니다.