빅 모델의 주요 매개변수 해석: 토큰, 컨텍스트 길이 및 출력 제한

AI 기술 자료5개월 전에 게시 됨 AI 공유 서클
2.8K 00

대규모 언어 모델(LLM)은 인공 지능 분야에서 점점 더 중요한 역할을 하고 있습니다. LLM을 더 잘 이해하고 적용하기 위해서는 핵심 개념에 대해 더 깊이 이해할 필요가 있습니다. 이 백서에서는 토큰, 최대 출력 길이, 컨텍스트 길이라는 세 가지 핵심 개념에 초점을 맞춰 독자들이 LLM 기술을 보다 효과적으로 활용할 수 있도록 이해의 장벽을 해소하는 데 도움을 드리고자 합니다.

 

토큰: LLM의 기본 처리 단위

Token 토큰은 자연어 텍스트를 처리하기 위한 대규모 언어 모델(LLM)의 기본 단위로, 모델이 인식하고 처리할 수 있는 가장 작은 의미 단위로 이해할 수 있습니다. 토큰은 느슨하게 '단어' 또는 '구문'에 비유할 수 있지만, 더 정확하게는 모델이 텍스트를 분석하고 생성하는 기반이 되는 빌딩 블록으로 설명하는 것이 더 정확합니다.

실제로 토큰과 단어 수 사이에는 일정한 전환 관계가 있습니다. 일반적으로 말하자면

  • 영어 문자 1 개 ≈ 0.3 토큰
  • 1 한자 ≈ 0.6 토큰

따라서 다음을 수행할 수 있습니다.대략적인 견적(수학.) 속일반적으로한자는 Token.

大模型关键参数解读:Token、上下文长度与输出限制

위 그림에서 볼 수 있듯이, LLM에 텍스트를 입력하면 모델은 먼저 텍스트를 토큰 시퀀스로 분할한 다음, 이러한 토큰 시퀀스를 처리하여 원하는 출력을 생성합니다. 다음 그림은 텍스트 토큰화 과정을 생생하게 보여줍니다:

大模型关键参数解读:Token、上下文长度与输出限制

최대 출력 길이(출력 제한): 모델의 단일 텍스트 생성 상한입니다.

에 따르면 DeepSeek 시리즈 모델을 예로 들면, 각 모델마다 최대 출력 길이에 제한이 설정되어 있는 것을 확인할 수 있습니다.

大模型关键参数解读:Token、上下文长度与输出限制

위.deepseek-chat 모델 대응 DeepSeek-V3 버전과 달리 deepseek-reasoner 모델은 DeepSeek-R1 버전. 추론 모델 R1과 대화 모델 V3 모두 최대 출력 길이가 다음과 같이 설정되어 있습니다. 8K.

한자 1개는 토큰 1개와 거의 같다는 대략적인 변환 관계를 고려해 보겠습니다.8K 의 최대 출력 길이는 다음과 같이 해석할 수 있습니다: 이 모델은 한 번의 상호 작용으로 최대 약 8000개의 한자를 생성할 수 있습니다..

최대 출력 길이의 개념은 비교적 직관적이고 이해하기 쉬우며, 모델이 각 응답에서 생성할 수 있는 최대 텍스트 양을 제한합니다. 이 제한에 도달하면 모델은 더 이상 콘텐츠를 계속 생성할 수 없습니다.

 

컨텍스트 창: 모델의 메모리 범위입니다.

기술 분야에서는 컨텍스트 길이라고도 합니다. Context Window는 LLM 기능을 이해하는 데 중요한 매개 변수입니다. 계속해서 DeepSeek 이 모델을 예로 들어 설명합니다:

大模型关键参数解读:Token、上下文长度与输出限制

그림에서 볼 수 있듯이 추론 모델과 대화 모델인DeepSeek (명목식 형태로 사용됨) Context Window 모두 64K. 그래서.64K 컨텍스트 길이가 정확히 무엇을 의미합니까?

컨텍스트 길이를 이해하려면 먼저 그 정의를 명확히 해야 합니다. 컨텍스트 창은 단일 추론 세션에서 대규모 언어 모델(LLM)이 처리할 수 있는 최대 토큰 수를 나타냅니다.. 이 합계는 두 부분으로 구성됩니다:

(1) 입력 섹션프롬프트, 대화 기록, 추가 문서 콘텐츠 등 사용자가 제공한 모든 입력 정보입니다.
(2) 출력 섹션모델이 현재 생성하여 반환하는 응답의 내용입니다.

간단히 말해, LLM과 단일 상호작용을 할 때, 질문을 입력할 때부터 모델이 답변을 제공할 때까지의 전체 프로세스를 "단일 추론"이라고 합니다. 이 추론 과정에서 모든 입력 및 출력 텍스트 콘텐츠의 합계(토큰으로 계산)는 다음보다 클 수 없습니다. Context Window 제한 사항 DeepSeek 모델 측면에서 이 제한은 다음과 같습니다. 64K연구에 사용된 한자의 수는 약 6만 개로, 연구에 사용된 한자 수와 동일합니다.

궁금한 점이 있으신가요?입력할 수 있는 항목에 제한이 있나요? 정답은 '예'입니다. 앞서 언급했듯이 모델의 컨텍스트 길이는 64K이고 최대 출력 길이는 8K입니다. 따라서 한 번의 대화에서 입력 콘텐츠의 최대 토큰 수는 이론적으로 컨텍스트 길이에서 최대 출력 길이를 뺀 값, 즉 64K - 8K = 56K입니다. 요약하자면, 한 번의 질의응답 대화에서 사용자는 최대 약 56,000단어를 입력할 수 있고 모델은 최대 약 8,000단어까지 출력할 수 있습니다.

다자간 대화를 위한 컨텍스트 처리 메커니즘

실제로 우리는 종종 LLM과 여러 차례 대화를 나눕니다. 그렇다면 다중 라운드 대화에서는 컨텍스트를 어떻게 처리할까요? Take DeepSeek 예를 들어, 다자간 대화를 시작할 때 서버 측에서는사용자의 대화 컨텍스트는 기본적으로 저장되지 않습니다.. 즉새로운 대화 요청이 있을 때마다 사용자는 대화의 기록을 포함한 모든 콘텐츠를 한데 묶어 입력 정보로 API에 전달해야 합니다..

다중 라운드 대화의 메커니즘을 보다 명확하게 설명하기 위해 다음은 DeepSeek API를 사용하는 다중 라운드 대화에 대한 Python 코드 샘플입니다:

from openai import OpenAI
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
# Round 1
messages = [{"role": "user", "content": "What's the highest mountain in the world?"}]
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages
)
messages.append(response.choices[0].message)
print(f"Messages Round 1: {messages}")
# Round 2
messages.append({"role": "user", "content": "What is the second?"})
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages
)
messages.append(response.choices[0].message)
print(f"Messages Round 2: {messages}")

첫 번째 대화 요청 시 API에 전달되는 메시지 매개변수의 내용은 다음과 같습니다:

[
{"role": "user", "content": "What's the highest mountain in the world?"}
]

두 번째 대화 요청에 필요합니다:
(1) 이전 대화 라운드의 모델 출력을 다음과 같이 추가합니다. 메시지 목록의 끝입니다;
(2) 사용자의 새 질문도 추가합니다. 메시지 목록의 끝입니다.

따라서 두 번째 대화에서 API에 전달되는 메시지 매개변수에는 다음과 같은 내용이 포함됩니다:

[
{"role": "user", "content": "What's the highest mountain in the world?"},
{"role": "assistant", "content": "The highest mountain in the world is Mount Everest."},
{"role": "user", "content": "What is the second?"}
]

다원적 대화의 본질은 다음을 결합하는 것입니다.과거 대화 기록(사용자 입력 및 모델 출력 포함)이 최신 사용자 입력 전에 접합되고, 접합된 전체 대화가 한 번에 LLM에 제출됩니다.

즉, 다중 라운드 대화 시나리오에서 각 대화 라운드의 컨텍스트 창은 항상 64K로 동일하게 유지되는 것이 아니라 라운드 수가 늘어날수록 감소합니다. 예를 들어, 첫 번째 대화 라운드의 입력과 출력에 총 32K 토큰이 사용되는 경우 두 번째 대화 라운드에서는 사용 가능한 컨텍스트 창이 32K에 불과합니다. 이 원칙은 위에서 분석한 컨텍스트 길이 제한과 일치합니다.

이 메커니즘에 따르면 각 대화 라운드의 입력과 출력이 매우 길다면 몇 번의 대화 라운드가 있어야 모델 한계를 초과하지 않을까요? 그러나 실제로는 여러 라운드의 대화에도 모델이 제대로 응답할 수 있는 것으로 보입니다.

매우 좋은 질문이며, 이는 또 다른 핵심 개념인 "문맥적 잘림"으로 이어집니다.

문맥 잘라내기: 매우 긴 대화에 대처하기 위한 전략

LLM 기반 제품(예: DeepSeek, Wisdom Spectrum 등)을 사용할 때 서비스 제공업체는 일반적으로 사용자에게 컨텍스트 창의 하드 한계를 직접 노출하지 않고 컨텍스트 잘림을 사용하여 다음과 같이 처리합니다. 문맥 잘라내기 전략은 매우 긴 텍스트를 처리하는 데 사용됩니다.

예를 들어, 모델이 기본적으로 64K의 컨텍스트 창을 지원한다고 가정해 보겠습니다. 사용자가 여러 차례의 대화를 통해 64K 또는 64K에 가까운 토큰 입력과 출력을 누적했다면, 사용자는 새로운 요청(예: 2K 토큰의 새로운 입력)을 시작하여 컨텍스트 창 제한을 초과할 수 있습니다. 이 경우 서버는 일반적으로 가장 최근의 64K 토큰(가장 최근 입력 포함)을 유지하면서 대화 기록의 가장 초기 부분은 삭제합니다**. 사용자의 경우, 가장 최근 입력은 유지되지만 가장 오래된 입력(또는 출력)은 모델에 의해 "잊혀집니다". **

그렇기 때문에 여러 차례 대화를 할 때 모델로부터 정상적인 답변을 얻을 수 있음에도 불구하고 모델이 '기억상실증'을 겪는 경우가 있습니다. 컨텍스트 창의 용량이 제한되어 있기 때문에 모델은 과거의 모든 대화 정보를 기억할 수 없으며, "가장 최근의 것만 기억하고 오래 전의 것은 잊어버리는" 현상을 겪을 수 있습니다.

다음 사항을 강조할 필요가 있습니다."컨텍스트별 잘림"은 모델 자체에 내재된 기능이 아니라 엔지니어링 수준에서 구현된 전략입니다**. 서버 측에서 백그라운드에서 이 작업을 수행하므로 사용자는 일반적으로 사용 시점에 잘라내기 프로세스의 존재를 인식하지 못합니다. **

大模型关键参数解读:Token、上下文长度与输出限制

요약하면 컨텍스트 길이, 최대 출력 길이 및 컨텍스트 잘림에 대해 다음과 같은 결론을 도출할 수 있습니다:

  • 컨텍스트 창(예: 64K)은 모델이 단일 요청을 처리하기 위한 엄격한 제한입니다.토큰 입력과 출력의 총 개수는 이 한도를 초과해서는 안 됩니다.
  • 컨텍스트 잘라내기 정책을 통한 다중 라운드 대화에서 매우 긴 텍스트의 서버 측 관리사용자가 여러 차례에 걸쳐 대화를 나눌 수 있습니다. 컨텍스트 창 제한이 있지만, 이는 모델의 장기 메모리 용량을 희생하는 대가입니다.
  • 컨텍스트 창 제한은 일반적으로 비용을 관리하거나 위험을 줄이기 위한 서비스 제공업체의 전략입니다.모델 자체의 기술적 능력은 정확히 동일하지 않습니다.

 

모델 매개변수 비교: OpenAI와 인공 지능

최대 출력 길이 및 컨텍스트 길이에 대한 매개변수 설정은 모델 공급업체마다 다릅니다. 다음 그림은 일부 모델의 매개변수 구성을 OpenAI와 Anthropic을 예로 들어 보여줍니다:

大模型关键参数解读:Token、上下文长度与输出限制

그림에서 '컨텍스트 토큰'은 컨텍스트 길이를 나타내고 '출력 토큰'은 최대 출력 길이를 나타냅니다.

 

기술적 원칙: 제한의 배경이 되는 이유

LLM에서 최대 출력 길이와 컨텍스트 길이에 제한을 두는 이유는 무엇인가요? 기술적 관점에서 보면 모델 아키텍처와 컴퓨팅 리소스에 대한 제약이 관련되어 있습니다. 간단히 말해, 컨텍스트 창 제한은 다음과 같은 주요 요인에 의해 결정됩니다:

(1) 위치 코드의 범위: 트랜스포머 이 모델은 각 토큰에 위치 정보를 할당하기 위해 위치 인코딩(예: RoPE, ALiBi)에 의존하며, 위치 인코딩 설계의 범위는 모델이 처리할 수 있는 최대 시퀀스 길이를 직접 결정합니다.
(2) 자기 주의 메커니즘 계산새로운 토큰을 생성할 때, 모델은 해당 토큰과 모든 과거 토큰(입력 및 생성된 출력 모두) 간의 주의 가중치를 계산해야 합니다. 따라서 시퀀스의 총 길이는 엄격하게 제한됩니다. 또한 KV 캐시의 메모리 사용량은 시퀀스의 총 길이와 양의 상관관계를 가지며, 컨텍스트 윈도우의 길이를 초과하면 메모리 오버플로 또는 계산 오류가 발생할 수 있습니다.

 

일반적인 애플리케이션 시나리오 및 대응 전략

최대 출력 길이와 컨텍스트 길이의 개념과 그 뒤에 숨어 있는 기술적 원리를 이해하는 것이 중요합니다. 이러한 지식을 습득한 후 사용자는 대형 모델 도구를 사용할 때 해당 전략을 개발하여 사용의 효율성과 효과를 높여야 합니다. 다음은 몇 가지 일반적인 적용 시나리오를 나열하고 그에 따른 대응 전략을 제시합니다:

  • 짧은 입력 + 긴 출력
    • 애플리케이션 시나리오사용자가 소량의 토큰(예: 1K)을 입력하고 모델이 기사, 스토리 등과 같은 긴 형식의 콘텐츠를 생성하기를 원합니다.
    • 매개변수 구성: API 호출 시 다음과 같이 설정할 수 있습니다. 최대_토큰 매개 변수가 더 큰 값으로 설정된 경우, 예를 들어 63,000 (토큰 개수를 입력할 때 최대_토큰 를 초과하지 않고 컨텍스트 창 제한(예: 1K + 63K ≤ 64K).
    • 잠재적 위험품질 검사(예: 과도한 반복, 민감한 단어 포함 등)로 인해 모델 출력이 조기에 종료될 수 있습니다.
  • 긴 입력 + 짧은 출력
    • 애플리케이션 시나리오사용자가 긴 문서(예: 60만 개의 토큰)를 입력하고 모델에 요약, 정보 추출 등을 요청하여 짧은 출력물을 생성합니다.
    • 매개변수 구성설정할 수 있습니다. 최대_토큰 매개변수가 더 작은 값으로 설정된 경우, 예를 들어 4,000 (예: 60K + 4K ≤ 64K).
    • 잠재적 위험모델에 실제로 더 많은 출력 토큰이 필요한 경우 최대_토큰 출력물의 완전성을 보장하기 위해 입력 문서를 압축(예: 핵심 문단 추출, 중복 정보 축소 등)하면 출력물이 압축됩니다.
  • 다자간 대화 관리
    • 규칙 및 규정여러 차례 대화하는 동안 누적된 입력 및 출력 토큰의 총 개수가 다음을 초과하지 않도록 주의해야 합니다. 컨텍스트 창 제한(초과 시 글이 잘림)을 설정할 수 있습니다.
    • 일반적인 예::
      (1) 1라운드 대화: 사용자가 10K 토큰을 입력하고, 모델이 10K 토큰을 출력하고, 20K 토큰을 누적합니다.
      (2) 2라운드 대화: 사용자 입력 30만 토큰, 모델 출력 14만 토큰, 누적 64만 토큰.
      (3) 3라운드 대화: 사용자가 5K 토큰을 입력하면 서버는 가장 빠른 5K 토큰을 잘라내고 최신 59K 토큰을 유지합니다. 토큰 히스토리와 새로운 5K 토큰이 추가되어 총 64K 토큰이 입력됩니다.

토큰, 최대 출력 길이, 컨텍스트 길이의 세 가지 핵심 개념을 이해하고 구체적인 적용 시나리오에 따라 합리적인 전략을 수립함으로써 LLM 기술을 보다 효과적으로 활용하고 그 잠재력을 충분히 활용할 수 있습니다.

© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...