본문 바로가기
Python/NLP&LLM

LLM 주요용어 : 토큰(Token)

by Mr.DonyStark 2024. 4. 28.

1. 텍스트를 구성하는 개별 단위 의미. ex) 나는 학교에 간다 → 나는, 학교에, 간다 토큰으로 나눌 수 있음.
2. 토큰화(Tokenization) : 주어진 텍스트를 개별 토큰들로 분리하는 과정을 의미. 토큰화 기준은 주로 공백, 구두점, 특수문자등을 기준으로 함. 한국어에서는 현태소 분석을 통해 토큰화 수행.
3. 토큰 종류
   (1) 단어 토큰
   (2) 문장 토큰
   (3) 문단 토큰
   (4) 형태소 토큰 : 언어의 의미를 가진 가장 작은 단위. 한국어의 경우 "가다"를 "가"와 "다"로 분리.
4. 토큰화의 중요성 : 대부분의 NLP 작업에서 원시 텍스트를 직접 다루기보다는 텍스트를 토큰화하여 각 토큰을 기반으로 처리. 이는 문장이나 텍스트의 구조와 의미를 파악하는 데 도움을 줌. 또한 토큰화 후 각 토큰에 대한 통계정보나 특성을 추출하여 정보 검색, 텍스트 분류. 감정 분석등의 작업 수행 가능.
5. 도구/라이브러리 : NLTK, spaCy, KoNLPy 등이 있으며, 토큰과 토큰화는 NLP의 기본적인 전처리 단계로 텍스트의 구조와 의미를 이해하고 다양한 분석을 수행하는 데 필수적.
6. 토크나이징(Tokenizing)
   (1) 단어 단위 토큰화
     - 장점 : 토큰 시퀀스가 상대적으로 짧음

        ex) this is tokenizing → this, is, tokenizing
     - 단점 : Vocabulary 집합크기가 너무 커짐. cat, cats 등. Unknown 토큰이 발생할 가능성이 커짐
   (2) 문자 단위 토큰화

        ex) this is tokenizing → t,h,i,s,i,s,t,o,k,e,n,i,z,i,n,g
     - 장점 : Vocabulary 집합 크기가 작음, Unknown 토큰 발생 가능성이 작음
     - 단점 : 토큰 시퀀스가 길어져 학습이 어려워짐
   (3) 단어 단위 토큰화와 문자 단위 토큰화의 중간단위(Subword)로 토큰화

        ex) this is tokenizing →  this, is, token, izing
     : Bye-pair Encoding