다음을 통해 공유


토큰 이해

토큰은 단어, 문자 집합 또는 단어와 문장 부호의 조합으로, LLM(대규모 언어 모델)에서 텍스트를 분해하는 데 사용됩니다. 토큰화는 학습의 첫 번째 단계입니다. LLM은 토큰이 함께 사용되는 빈도 또는 유사한 컨텍스트에서 사용되는지 여부와 같은 토큰 간의 의미 체계 관계를 분석합니다. 학습 후 LLM은 이러한 패턴 및 관계를 사용하여 입력 시퀀스를 기반으로 출력 토큰 시퀀스를 생성합니다.

텍스트를 토큰으로 변환

LLM이 학습되는 고유한 토큰 집합을 어휘라고 합니다.

예를 들어 다음 문장을 살펴봅니다.

I heard a dog bark loudly at a cat

이 텍스트는 다음과 같이 토큰화될 수 있습니다.

  • I
  • heard
  • a
  • 강아지
  • bark
  • loudly
  • 시간
  • a
  • cat

충분히 큰 학습 텍스트 집합이 있으면 토큰화는 수천 개의 토큰 어휘를 컴파일할 수 있습니다.

일반적인 토큰화 방법

구체적인 토큰화 방법은 LLM에 따라 다릅니다. 일반적인 토큰화 방법에는 다음이 포함됩니다.

  • 단어 토큰화(텍스트는 구분 기호에 따라 개별 단어로 분할됨)
  • 문자 토큰화(텍스트는 개별 문자로 분할됨)
  • 하위 단어 토큰화(텍스트는 부분 단어 또는 문자 집합으로 분할됨)

예를 들어 OpenAI에서 개발한 GPT 모델은 BPE(바이트 쌍 인코딩)라고 하는 하위 단어 토큰화 형식을 사용합니다. OpenAI는 텍스트가 토큰화되는 방법을 시각화하는 도구를 제공합니다.

각 토큰화 방법에는 다음과 같은 장단점이 있습니다.

토큰 크기 장점 단점
더 작은 토큰(문자 또는 하위 단어 토큰화) - 모델이 알 수 없는 단어, 오타 또는 복잡한 구문과 같은 광범위한 입력을 처리할 수 있도록 합니다.
- 어휘 크기를 줄여 메모리 리소스를 줄일 수 있습니다.
- 지정된 텍스트가 더 많은 토큰으로 나뉘어 처리 중 추가 계산 리소스가 필요합니다.
- 고정 토큰 제한이 지정된 경우 모델의 입력 및 출력의 최대 크기가 더 작습니다.
더 큰 토큰(단어 토큰화) - 지정된 텍스트가 더 적은 토큰으로 나뉘어 처리 중 필요한 계산 리소스가 줄어듭니다.
- 동일한 토큰 제한이 지정된 경우 모델의 입력 및 출력의 최대 크기가 더 큽니다.
- 어휘 크기가 증가하여 메모리 리소스가 더 많이 필요할 수 있습니다.
- 알 수 없는 단어, 오타 또는 복잡한 구문을 처리하는 모델 기능을 제한할 수 있습니다.

LLM에서 토큰을 사용하는 방법

LLM은 토큰화를 완료한 후 각 고유 토큰에 ID를 할당합니다.

다음 예제 문장을 고려하세요.

I heard a dog bark loudly at a cat

모델은 단어 토큰화 메서드를 사용한 후 다음과 같이 토큰 ID를 할당할 수 있습니다.

  • I(1)
  • heard(2)
  • a(3)
  • dog(4)
  • bark(5)
  • loudly(6)
  • at(7)
  • a("a" 토큰에 이미 ID 3이 할당됨)
  • cat(8)

ID를 할당하면 텍스트를 토큰 ID 시퀀스로 나타낼 수 있습니다. 예를 들어 [1, 2, 3, 4, 5, 6, 7, 3, 8]로 표시됩니다. "고양이 소리를 들었다"라는 문장은 [1, 2, 3, 8]로 표현됩니다.

학습이 계속되면 모델은 학습 텍스트의 새 토큰을 해당 어휘에 추가하고 ID를 할당합니다. 예시:

  • meow(9)
  • run(10)

이러한 토큰 ID 시퀀스를 사용하여 토큰 간의 의미 체계 관계를 분석할 수 있습니다. 포함으로 알려진 다중값 숫자 벡터는 이러한 관계를 나타내는 데 사용됩니다. 포함은 다른 토큰과 함께 또는 유사한 컨텍스트에서 사용되는 빈도에 따라 각 토큰에 할당됩니다.

학습된 후 모델은 여러 토큰이 포함된 텍스트에 대한 포함을 계산할 수 있습니다. 모델은 텍스트를 토큰화한 다음 개별 토큰의 학습된 포함을 기반으로 전체 포함 값을 계산합니다. 이 기술은 의미 체계 문서 검색 또는 AI에 벡터 저장소를 추가하는 데 사용할 수 있습니다.

출력 생성 중에 모델은 시퀀스의 다음 토큰에 대한 벡터 값을 예측합니다. 그런 다음 모델은 이 벡터 값에 따라 어휘에서 다음 토큰을 선택합니다. 실제로 모델은 이전 토큰 포함의 다양한 요소를 사용하여 여러 벡터를 계산합니다. 그런 다음, 모델은 이러한 벡터에서 모든 잠재적 토큰을 평가하고 시퀀스를 계속할 가능성이 가장 큰 토큰을 선택합니다.

출력 생성은 반복 작업입니다. 모델은 지금까지의 시퀀스에 예측 토큰을 추가하고 이를 다음 반복의 입력으로 사용하여 최종 출력 토큰을 한 번에 하나씩 작성합니다.

토큰 제한

LLM에는 입력으로 사용하거나 출력으로 생성할 수 있는 최대 토큰 수와 관련된 제한 사항이 있습니다. 이러한 제한으로 인해 입력 및 출력 토큰이 최대 컨텍스트 창으로 결합되는 경우가 많습니다.

예를 들어 GPT-4는 최대 8,192개의 컨텍스트 토큰을 지원합니다. 입력 및 출력 토큰의 결합된 크기는 8,192를 초과할 수 없습니다.

모델의 토큰 제한 및 토큰화 방법을 종합하면 입력으로 제공되거나 출력으로 생성될 수 있는 최대 텍스트 길이가 결정됩니다.

예를 들어 최대 컨텍스트 창이 100개 토큰인 모델을 고려해 보겠습니다. 이 모델은 예제 문장을 입력 텍스트로 처리합니다.

I heard a dog bark loudly at a cat

단어 기반 토큰화 방법을 사용하면 9개의 토큰이 입력됩니다. 이렇게 하면 91개의 단어 토큰을 출력에 사용할 수 있습니다.

문자 기반 토큰화 방법을 사용하면 34개의 토큰(공백 포함)이 입력됩니다. 이렇게 하면 출력에 사용할 수 있는 66개의 문자 토큰만 남습니다.

토큰 기반 가격 책정 및 속도 제한

생성형 AI 서비스는 토큰 기반 가격 책정을 사용하는 경우가 많습니다. 각 요청의 비용은 입력 및 출력 토큰 수에 따라 달라집니다. 가격 책정은 입력과 출력 간에 다를 수 있습니다. 예를 들어 Azure OpenAI Service 가격 책정을 참조하세요.

생성형 AI 서비스는 TPM(분당 최대 토큰 수)과 관련하여 제한될 수도 있습니다. 이러한 속도 제한은 서비스 지역 및 LLM에 따라 달라질 수 있습니다. 특정 지역에 대한 자세한 내용은 Azure OpenAI 서비스 할당량 및 제한을 참조하세요.