クイズ: トークン化と語彙
한국어 원문으로 표시합니다.
같은 문장을 넣었는데 모델을 바꾸니 토큰 수가 달라졌다. 가장 정확한 설명은?
- 문장이 길어 잘렸고 잘린 조각을 다시 세었다
- 모델마다 어휘가 달라서 같은 글이 다른 조각으로 나뉜다
- 토큰은 글자 단위라 글꼴과 인코딩에 따라 달라진다
- 토큰 수는 모델의 문맥 한도에 맞춰 자동으로 조정된다
바이트 수준에서 출발하면 무엇이 보장되는가?
- 모든 언어의 토큰 수가 같아진다
- 어휘 크기를 키우지 않아도 토큰이 줄어든다
- 복호화가 언제나 원문보다 짧아진다
- 어휘에 없는 글자를 만나도 부호화가 실패하지 않는다
한글 음절 하나가 UTF-8 로 몇 바이트이고, 그것이 왜 문제인가?
- 3바이트다. 어휘가 작으면 한 글자가 토큰 여럿이 된다
- 2바이트다. 어휘와 무관하게 늘 두 토큰으로 센다
- 4바이트다. 문맥 한도를 계산할 수 없게 만든다
- 1바이트다. 영어와 같아서 비용 차이가 없다
count_pairs([9, 9, 9]) 의 올바른 결과는?
- {(9, 9): 3} — 값이 셋이므로 셋으로 센다
- {(9, 9): 1} — 겹치지 않는 짝은 하나뿐이다
- {(9, 9): 2} — 이웃한 자리를 겹치는 것까지 센다
- {(9, 9): 0} — 같은 값끼리는 짝으로 세지 않는다
merge([5, 5, 5], (5, 5), 300) 의 올바른 결과와 그 이유는?
- [300, 300] — 겹치는 자리를 모두 합친다
- [5, 5, 5] — 같은 값이 셋이면 합치지 않는다
- [300, 300, 5] — 자리마다 새 번호를 만든다
- [300, 5] — 앞의 둘을 삼킨 뒤 남은 하나는 짝을 잃는다
학습한 병합 규칙으로 새 글을 부호화할 때 순서가 왜 중요한가?
- 규칙 수가 많을수록 정렬해 두어야 빨리 찾는다
- 뒤에 배운 규칙이 앞에서 만든 번호를 재료로 쓰기 때문이다
- 순서를 지키지 않으면 복호화에서 예외가 나기 때문이다
- 어휘 크기가 순서에 따라 달라지기 때문이다