1. Tokenizing
Tokenizing
Tokenizing๋ ํ ์คํธ์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ ์๊ณ ๊ด๋ฆฌ ๊ฐ๋ฅํ ์กฐ๊ฐ์ธ _tokens_์ผ๋ก ๋๋๋ ๊ณผ์ ์ ๋๋ค. ๊ฐ token์ ๊ณ ์ ํ ์ซ์ ์๋ณ์(ID)๊ฐ ํ ๋น๋ฉ๋๋ค. ์ด๋ ๊ธฐ๊ณ ํ์ต ๋ชจ๋ธ, ํนํ ์์ฐ์ด ์ฒ๋ฆฌ(NLP)๋ฅผ ์ํ ํ ์คํธ ์ค๋น์ ๊ธฐ๋ณธ ๋จ๊ณ์ ๋๋ค.
์ด ์ด๊ธฐ ๋จ๊ณ์ ๋ชฉํ๋ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค: ์๋ฏธ ์๋ ๋ฐฉ์์ผ๋ก ์ ๋ ฅ์ tokens (ids)๋ก ๋๋๊ธฐ์ ๋๋ค.
How Tokenizing Works
ํ ์คํธ ๋ถํ :
๊ธฐ๋ณธ ํ ํฌ๋์ด์ : ๊ฐ๋จํ ํ ํฌ๋์ด์ ๋ ํ ์คํธ๋ฅผ ๊ฐ๋ณ ๋จ์ด์ ๊ตฌ๋์ ์ผ๋ก ๋๋๊ณ ๊ณต๋ฐฑ์ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
์์: ํ ์คํธ:
"Hello, world!"
ํ ํฐ:["Hello", ",", "world", "!"]
์ดํ ์์ฑ:
ํ ํฐ์ ์ซ์ ID๋ก ๋ณํํ๊ธฐ ์ํด ์ดํ๊ฐ ์์ฑ๋ฉ๋๋ค. ์ด ์ดํ๋ ๋ชจ๋ ๊ณ ์ ํ ํ ํฐ(๋จ์ด ๋ฐ ๊ธฐํธ)์ ๋์ดํ๊ณ ๊ฐ ํ ํฐ์ ํน์ ID๋ฅผ ํ ๋นํฉ๋๋ค.
ํน์ ํ ํฐ: ๋ค์ํ ์๋๋ฆฌ์ค๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ดํ์ ์ถ๊ฐ๋ ํน์ ๊ธฐํธ์ ๋๋ค:
[BOS]
(์ํ์ค ์์): ํ ์คํธ์ ์์์ ๋ํ๋ ๋๋ค.[EOS]
(์ํ์ค ๋): ํ ์คํธ์ ๋์ ๋ํ๋ ๋๋ค.[PAD]
(ํจ๋ฉ): ๋ฐฐ์น์ ๋ชจ๋ ์ํ์ค๋ฅผ ๋์ผํ ๊ธธ์ด๋ก ๋ง๋ค๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.[UNK]
(์ ์ ์์): ์ดํ์ ์๋ ํ ํฐ์ ๋ํ๋ ๋๋ค.์์: ๋ง์ฝ
"Hello"
๊ฐ ID64
์ ํ ๋น๋๊ณ ,","
๊ฐ455
,"world"
๊ฐ78
,"!"
๊ฐ467
์ด๋ผ๋ฉด:"Hello, world!"
โ[64, 455, 78, 467]
์ ์ ์๋ ๋จ์ด ์ฒ๋ฆฌ: ๋ง์ฝ
"Bye"
์ ๊ฐ์ ๋จ์ด๊ฐ ์ดํ์ ์๋ค๋ฉด,[UNK]
๋ก ๋์ฒด๋ฉ๋๋ค."Bye, world!"
โ["[UNK]", ",", "world", "!"]
โ[987, 455, 78, 467]
(์ฌ๊ธฐ์[UNK]
์ ID๋987
๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค)
Advanced Tokenizing Methods
๊ธฐ๋ณธ ํ ํฌ๋์ด์ ๋ ๊ฐ๋จํ ํ ์คํธ์ ์ ์๋ํ์ง๋ง, ํนํ ํฐ ์ดํ์ ์๋ก์ด ๋๋ ํฌ๊ทํ ๋จ์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ํ๊ณ๊ฐ ์์ต๋๋ค. ๊ณ ๊ธ ํ ํฌ๋์ด์ง ๋ฐฉ๋ฒ์ ํ ์คํธ๋ฅผ ๋ ์์ ํ์ ๋จ์๋ก ๋๋๊ฑฐ๋ ํ ํฌ๋์ด์ง ํ๋ก์ธ์ค๋ฅผ ์ต์ ํํ์ฌ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
๋ฐ์ดํธ ์ ์ธ์ฝ๋ฉ (BPE):
๋ชฉ์ : ์ดํ์ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ณ ํฌ๊ทํ๊ฑฐ๋ ์ ์ ์๋ ๋จ์ด๋ฅผ ์์ฃผ ๋ฐ์ํ๋ ๋ฐ์ดํธ ์์ผ๋ก ๋๋์ด ์ฒ๋ฆฌํฉ๋๋ค.
์๋ ๋ฐฉ์:
๊ฐ๋ณ ๋ฌธ์๋ฅผ ํ ํฐ์ผ๋ก ์์ํฉ๋๋ค.
๊ฐ์ฅ ์์ฃผ ๋ฐ์ํ๋ ํ ํฐ ์์ ๋ฐ๋ณต์ ์ผ๋ก ๋ณํฉํ์ฌ ๋จ์ผ ํ ํฐ์ผ๋ก ๋ง๋ญ๋๋ค.
๋ ์ด์ ๋ณํฉํ ์ ์๋ ์์ฃผ ๋ฐ์ํ๋ ์์ด ์์ ๋๊น์ง ๊ณ์ํฉ๋๋ค.
์ฅ์ :
๋ชจ๋ ๋จ์ด๊ฐ ๊ธฐ์กด์ ํ์ ๋จ์ด ํ ํฐ์ ๊ฒฐํฉํ์ฌ ํํ๋ ์ ์์ผ๋ฏ๋ก
[UNK]
ํ ํฐ์ด ํ์ ์์ต๋๋ค.๋ ํจ์จ์ ์ด๊ณ ์ ์ฐํ ์ดํ์ ๋๋ค.
์์:
"playing"
์"play"
์"ing"
๊ฐ ์์ฃผ ๋ฐ์ํ๋ ํ์ ๋จ์ด๋ผ๋ฉด["play", "ing"]
๋ก ํ ํฌ๋์ด์ฆ๋ ์ ์์ต๋๋ค.
WordPiece:
์ฌ์ฉ ๋ชจ๋ธ: BERT์ ๊ฐ์ ๋ชจ๋ธ.
๋ชฉ์ : BPE์ ์ ์ฌํ๊ฒ, ์ ์ ์๋ ๋จ์ด๋ฅผ ์ฒ๋ฆฌํ๊ณ ์ดํ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ธฐ ์ํด ๋จ์ด๋ฅผ ํ์ ๋จ์๋ก ๋๋๋๋ค.
์๋ ๋ฐฉ์:
๊ฐ๋ณ ๋ฌธ์์ ๊ธฐ๋ณธ ์ดํ๋ก ์์ํฉ๋๋ค.
ํ๋ จ ๋ฐ์ดํฐ์ ๊ฐ๋ฅ์ฑ์ ๊ทน๋ํํ๋ ๊ฐ์ฅ ์์ฃผ ๋ฐ์ํ๋ ํ์ ๋จ์ด๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์ถ๊ฐํฉ๋๋ค.
์ด๋ค ํ์ ๋จ์ด๋ฅผ ๋ณํฉํ ์ง ๊ฒฐ์ ํ๊ธฐ ์ํด ํ๋ฅ ๋ชจ๋ธ์ ์ฌ์ฉํฉ๋๋ค.
์ฅ์ :
๊ด๋ฆฌ ๊ฐ๋ฅํ ์ดํ ํฌ๊ธฐ์ ํจ๊ณผ์ ์ธ ๋จ์ด ํํ ๊ฐ์ ๊ท ํ์ ์ ์งํฉ๋๋ค.
ํฌ๊ทํ๊ณ ๋ณตํฉ์ ์ธ ๋จ์ด๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค.
์์:
"unhappiness"
๋ ์ดํ์ ๋ฐ๋ผ["un", "happiness"]
๋๋["un", "happy", "ness"]
๋ก ํ ํฌ๋์ด์ฆ๋ ์ ์์ต๋๋ค.
์ ๋๊ทธ๋จ ์ธ์ด ๋ชจ๋ธ:
์ฌ์ฉ ๋ชจ๋ธ: SentencePiece์ ๊ฐ์ ๋ชจ๋ธ.
๋ชฉ์ : ๊ฐ์ฅ ๊ฐ๋ฅ์ฑ์ด ๋์ ํ์ ๋จ์ด ํ ํฐ ์งํฉ์ ๊ฒฐ์ ํ๊ธฐ ์ํด ํ๋ฅ ๋ชจ๋ธ์ ์ฌ์ฉํฉ๋๋ค.
์๋ ๋ฐฉ์:
์ ์ฌ์ ์ธ ํ ํฐ์ ํฐ ์งํฉ์ผ๋ก ์์ํฉ๋๋ค.
ํ๋ จ ๋ฐ์ดํฐ์ ๋ชจ๋ธ ํ๋ฅ ์ ๊ฐ์ฅ ์ ๊ฒ ๊ฐ์ ํ๋ ํ ํฐ์ ๋ฐ๋ณต์ ์ผ๋ก ์ ๊ฑฐํฉ๋๋ค.
๊ฐ ๋จ์ด๊ฐ ๊ฐ์ฅ ๊ฐ๋ฅ์ฑ์ด ๋์ ํ์ ๋จ์ด ๋จ์๋ก ํํ๋๋ ์ดํ๋ฅผ ์ต์ข ํํฉ๋๋ค.
์ฅ์ :
์ ์ฐํ๋ฉฐ ์ธ์ด๋ฅผ ๋ ์์ฐ์ค๋ฝ๊ฒ ๋ชจ๋ธ๋งํ ์ ์์ต๋๋ค.
์ข ์ข ๋ ํจ์จ์ ์ด๊ณ ๊ฐ๊ฒฐํ ํ ํฌ๋์ด์ง ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
์์:
"internationalization"
์["international", "ization"]
๊ณผ ๊ฐ์ ๋ ์๊ณ ์๋ฏธ ์๋ ํ์ ๋จ์ด๋ก ํ ํฌ๋์ด์ฆ๋ ์ ์์ต๋๋ค.
Code Example
https://github.com/rasbt/LLMs-from-scratch/blob/main/ch02/01_main-chapter-code/ch02.ipynb์์ ์ฝ๋ ์์ ๋ฅผ ํตํด ์ด๋ฅผ ๋ ์ ์ดํดํด ๋ด ์๋ค:
References
Last updated