2장. Transformer 입력 표현
용어 짚고 가기
토큰(token): 모델이 읽는 텍스트의 기본 조각입니다. 단어 하나일 수도, 단어의 일부나 글자 하나의 일부(바이트)일 수도 있습니다. 문장을 쪼갠 레고 블록입니다.토큰화(tokenization): 문장을 토큰으로 나누는 일입니다.토크나이저(tokenizer): 토큰화를 하고, 토큰을 번호로 바꾸고, 번호를 다시 글자로 되돌리는 도구입니다. 모델마다 짝이 정해져 있습니다.사전(vocabulary, vocab): 토크나이저가 아는 토큰을 모두 모아 번호를 매긴 목록입니다. Qwen 은 151,665개, BERT 는 30,522개입니다.토큰 ID(token ID): 사전에서 토큰에 매긴 정수 번호입니다. 레고 블록마다 붙은 상품 번호입니다.input_ids: 토크나이저가 돌려주는 토큰 ID 리스트의 이름입니다. 모델에 들어가는 "상품 번호 열"입니다.서브워드(subword): 단어보다 작은 조각입니다. 자주 쓰는 단어는 통째로, 드문 단어는 조각으로 나눕니다.OOV(Out-Of-Vocabulary): 사전에 없는 낱말입니다. 단어 단위로 자르면 처음 보는 낱말을 읽지 못합니다.BPE(Byte Pair Encoding): 자주 붙어 나오는 두 조각을 하나로 합치는 일을 되풀이해 사전을 만드는 방법입니다. GPT, Llama 3, Qwen 이 씁니다.Byte-level BPE: 글자 대신 바이트(byte)부터 합치는 BPE 입니다. 어떤 언어든 바이트로는 쪼갤 수 있으므로 사전에 없는 글자가 생기지 않습니다.WordPiece: 합쳤을 때 말뭉치의 가능도가 가장 커지는 쌍을 합치는 방법입니다. BERT 가 쓰며, 앞 조각에 이어 붙는 조각에##을 붙입니다.SentencePiece: 띄어쓰기까지 하나의 문자로 보고 원문에서 바로 사전을 만드는 도구입니다. T5, Llama 2 가 씁니다.특수 토큰(special token): 문장의 시작과 끝 같은 표시용 토큰입니다. BERT 의[CLS](101),[SEP](102)가 그 예입니다.UTF-8: 글자를 바이트로 저장하는 방식입니다. 영어 글자는 1바이트, 한글 한 글자는 3바이트입니다.디코딩(decoding): 토큰 ID 를 다시 사람이 읽는 글자로 되돌리는 일입니다.decode라는 이름으로 부릅니다.컨텍스트 길이(context length): 모델이 한 번에 볼 수 있는 최대 토큰 수입니다. Qwen2.5-0.5B-Instruct 는 32,768(32K)입니다.임베딩(embedding): 토큰 ID 를 뜻을 담을 수 있는 실수 벡터로 바꾸는 일, 또는 그 벡터입니다. 상품 번호를 성격표로 바꾸는 일입니다.임베딩 층(embedding layer): (사전 크기, d_model) 모양의 큰 표입니다. 토큰 ID 번째 행을 꺼내 줍니다.d_model: 토큰 하나를 나타내는 벡터의 길이(숫자 개수)입니다. 원 논문은 512, Qwen2.5-0.5B 는 896, BERT-base 는 768입니다.조회(lookup): 계산하지 않고 번호로 표의 행을 바로 꺼내는 일입니다. pandas 의df.iloc[번호]와 같습니다.위치 정보(positional information): 토큰이 문장에서 몇 번째에 있는지 알려 주는 값입니다.위치 인코딩(positional encoding): 위치 정보를 벡터로 만들어 임베딩에 더하는 방법입니다. 블록에 붙이는 번호표입니다.사인·코사인 위치 인코딩(sinusoidal positional encoding): 원 논문이 쓴, 학습하지 않는 고정 위치 인코딩입니다. 빠르고 느린 물결을 섞어 위치마다 다른 무늬를 만듭니다.