토큰화란?
토큰화(Tokenization)는 문장을 모델이 처리할 수 있는 작은 단위인 토큰(Token)으로 나누는 과정입니다.
사람은 문장을 읽으면 의미를 바로 이해할 수 있지만, 컴퓨터는 문장을 그대로 계산할 수 없습니다. 따라서 먼저 문장을 일정한 조각으로 나누고, 각 조각을 숫자로 바꾸는 과정이 필요합니다.
(Raw Text)
(Tokenizer)
(Token Sequence)
토크나이저는 무엇을 하는가?
왜 토큰화가 필요한가?
문장 전체를 하나의 항목으로 저장하면, 조금만 다른 문장도 모두 새로운 항목으로 등록해야 합니다. 가능한 문장의 수는 사실상 무한하므로 이런 방식은 사용할 수 없습니다.
문장 전체에 번호 하나만 붙이면 안 되는가?
A, cute, bear 같은 토큰은
여러 문장에서 반복해서 사용할 수 있습니다.
토큰이란?
토큰(Token)은 모델이 입력 텍스트를 처리할 때 사용하는 기본 단위입니다.
토큰은 반드시 완전한 단어일 필요는 없습니다. 하나의 단어가 여러 토큰으로 나뉠 수도 있고, 문장부호나 이모지가 하나의 토큰이 될 수도 있습니다.
cat → cat
reading → read + ##ing
😊 → 😊
문장을 토큰으로 나누기
다음 영어 문장을 단어와 문장부호를 기준으로 나누어 보겠습니다.
이 예에서는 문장이 7개의 토큰으로 나뉘었습니다.
그러나 실제 토크나이저에서는 teddy나 reading이
더 작은 조각으로 나뉠 수도 있습니다.
공백을 기준으로만 나누면 충분한가?
토큰에는 번호가 붙는다
모델은 토큰 문자열을 그대로 계산하지 않습니다. 토크나이저는 각 토큰을 어휘 사전(Vocabulary)에서 찾아 해당 토큰에 대응하는 정수 번호인 토큰 ID(Token ID)로 바꿉니다.
A
cute
bear
17
842
391
토큰 ID는 어디에 사용되는가?
토큰화 다음에는 무엇을 할까?
토큰화는 자연어 처리의 시작 단계입니다. 문장은 다음과 같은 순서로 모델이 계산할 수 있는 형태로 변환됩니다.
학습 내용 정리
이번 장에서는 토큰화의 기본 개념과 토큰 ID의 역할을 살펴보았습니다.
- 토큰화는 문장을 모델이 처리할 수 있는 작은 단위로 나누는 과정입니다.
- 토큰은 완전한 단어일 수도 있고, 단어보다 작은 조각이나 문장부호일 수도 있습니다.
- 같은 문장도 사용하는 토크나이저에 따라 서로 다른 토큰으로 나뉠 수 있습니다.
- 각 토큰에는 어휘 사전에서 찾기 위한 정수 번호인 토큰 ID가 부여됩니다.
- 토큰 ID는 의미를 나타내는 숫자가 아니라 다음 단계의 임베딩 벡터를 찾기 위한 번호입니다.
다음 장에서는 단어 단위, 문자 단위, 서브워드 단위 토큰화가 어떻게 다르고 각각 어떤 장단점을 갖는지 살펴봅니다.