Path: blob/main/transformers_doc/ko/tensorflow/tokenizer_summary.ipynb
4542 views
ํ ํฌ๋์ด์ ์์ฝ[[summary-of-the-tokenizers]]
์ด ํ์ด์ง์์๋ ํ ํฐํ์ ๋ํด ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ฐ์ดํฐ ์ ์ฒ๋ฆฌํ๊ธฐ ํํ ๋ฆฌ์ผ์์ ์ดํด๋ณธ ๊ฒ์ฒ๋ผ, ํ ์คํธ๋ฅผ ํ ํฐํํ๋ ๊ฒ์ ํ ์คํธ๋ฅผ ๋จ์ด ๋๋ ์๋ธ์๋๋ก ๋ถํ ํ๊ณ ๋ฃฉ์ ํ ์ด๋ธ์ ํตํด id๋ก ๋ณํํ๋ ๊ณผ์ ์ ๋๋ค. ๋จ์ด ๋๋ ์๋ธ์๋๋ฅผ id๋ก ๋ณํํ๋ ๊ฒ์ ๊ฐ๋จํ๊ธฐ ๋๋ฌธ์ ์ด๋ฒ ๋ฌธ์์์๋ ํ ์คํธ๋ฅผ ๋จ์ด ๋๋ ์๋ธ์๋๋ก ์ชผ๊ฐ๋ ๊ฒ(์ฆ, ํ ์คํธ๋ฅผ ํ ํฐํํ๋ ๊ฒ)์ ์ค์ ์ ๋๊ฒ ์ต๋๋ค. ๊ตฌ์ฒด์ ์ผ๋ก, ๐ค Transformers์์ ์ฌ์ฉ๋๋ ์ธ ๊ฐ์ง ์ฃผ์ ํ ํฐํ ์ ํ์ธ Byte-Pair Encoding (BPE), WordPiece, SentencePiece๋ฅผ ์ดํด๋ณด๊ณ ์ด๋ค ๋ชจ๋ธ์์ ์ด๋ค ํ ํฐํ ์ ํ์ ์ฌ์ฉํ๋์ง ์์๋ฅผ ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๊ฐ ๋ชจ๋ธ ํ์ด์ง์ ์ฐ๊ฒฐ๋ ํ ํฌ๋์ด์ ์ ๋ฌธ์๋ฅผ ๋ณด๋ฉด ์ฌ์ ํ๋ จ ๋ชจ๋ธ์์ ์ด๋ค ํ ํฌ๋์ด์ ๋ฅผ ์ฌ์ฉํ๋์ง ์ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, BertTokenizer๋ฅผ ๋ณด๋ฉด ์ด ๋ชจ๋ธ์ด WordPiece๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
๊ฐ์[[introduction]]
ํ
์คํธ๋ฅผ ์์ ๋ฌถ์(chunk)์ผ๋ก ์ชผ๊ฐ๋ ๊ฒ์ ๋ณด๊ธฐ๋ณด๋ค ์ด๋ ค์ด ์์
์ด๋ฉฐ, ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, "Don't you love ๐ค Transformers? We sure do."
๋ผ๋ ๋ฌธ์ฅ์ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์ ๋ฌธ์ฅ์ ํ ํฐํํ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ์ชผ๊ฐ๋ ๊ฒ์ ๋๋ค. ํ ํฐํ๋ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
์ด๋ ์ฒซ ๋ฒ์งธ ๊ฒฐ๊ณผ๋ก๋ ํฉ๋ฆฌ์ ์ด์ง๋ง, "Transformers?"
์ "do."
ํ ํฐ์ ๋ณด๋ฉด ๊ฐ๊ฐ "Transformer"
์ "do"
์ ๊ตฌ๋์ ์ด ๋ถ์ด์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ๊ตฌ๋์ ์ ๊ณ ๋ คํด์ผ ๋ชจ๋ธ์ด ๋จ์ด์ ๋ค๋ฅธ ํํ๊ณผ ๊ทธ ๋ค์ ์ฌ ์ ์๋ ๋ชจ๋ ๊ฐ๋ฅํ ๊ตฌ๋์ ์ ํ์ตํ ํ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ชจ๋ธ์ด ํ์ตํด์ผ ํ๋ ํํ์ ์๊ฐ ํญ๋ฐ์ ์ผ๋ก ์ฆ๊ฐํ๊ฒ ๋ฉ๋๋ค.
๊ตฌ๋์ ์ ๊ณ ๋ คํ ํ ํฐํ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
์ด์ ๋ณด๋ค ๋์์ก์ต๋๋ค. ํ์ง๋ง, "Don't"
์ ํ ํฐํ ๊ฒฐ๊ณผ๋ ์์ ์ด ํ์ํฉ๋๋ค. "Don't"
๋ "do not"
์ ์ค์๋ง์ด๊ธฐ ๋๋ฌธ์ ["Do", "n't"]
๋ก ํ ํฐํ๋๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฌ๊ธฐ์๋ถํฐ ๋ณต์กํด์ง๊ธฐ ์์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์ ์ด ๊ฐ ๋ชจ๋ธ๋ง๋ค ๊ณ ์ ํ ํ ํฐํ ์ ํ์ด ์กด์ฌํ๋ ์ด์ ์ค ํ๋์
๋๋ค. ํ
์คํธ๋ฅผ ํ ํฐํํ๋ ๋ฐ ์ ์ฉํ๋ ๊ท์น์ ๋ฐ๋ผ ๋์ผํ ํ
์คํธ์ ๋ํด ํ ํฐํ๋ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง๋๋ค. ์ฌ์ ํ๋ จ๋ ๋ชจ๋ธ์ ํ๋ จ ๋ฐ์ดํฐ๋ฅผ ํ ํฐํํ๋ ๋ฐ ์ฌ์ฉ๋ ๊ฒ๊ณผ ๋์ผํ ๊ท์น์ผ๋ก ํ ํฐํ๋ ์
๋ ฅ์ ์ ๊ณตํด์ผ๋ง ์ ๋๋ก ์๋ํฉ๋๋ค.
spaCy์ Moses๋ ์ ๋ช ํ ๊ท์น ๊ธฐ๋ฐ ํ ํฌ๋์ด์ ์ ๋๋ค. ์์ ์ spaCy์ Moses ๋ฅผ ์ ์ฉํ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
๋ณด์๋ค์ํผ ๊ณต๋ฐฑ ๋ฐ ๊ตฌ๋์ ํ ํฐํ์ ๊ท์น ๊ธฐ๋ฐ ํ ํฐํ๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ณต๋ฐฑ ๋ฐ ๊ตฌ๋์ , ๊ท์น ๊ธฐ๋ฐ ํ ํฐํ์ ๋ชจ๋ ๋จ์ด ๋ฌธ์ฅ์ ๋จ์ด๋ก ์ชผ๊ฐ๋ ๋จ์ด ํ ํฐํ์ ํด๋นํฉ๋๋ค. ์ด ํ ํฐํ ๋ฐฉ๋ฒ์ ํ ์คํธ๋ฅผ ๋ ์์ ๋ฌถ์(chunk)๋ก ๋ถํ ํ๋ ๊ฐ์ฅ ์ง๊ด์ ์ธ ๋ฐฉ๋ฒ์ด์ง๋ง, ๋๊ท๋ชจ ํ ์คํธ ๋ง๋ญ์น์ ๋ํด์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๊ณต๋ฐฑ ๋ฐ ๊ตฌ๋์ ํ ํฐํ๋ ์ผ๋ฐ์ ์ผ๋ก ๋งค์ฐ ํฐ ์ดํ(์ฌ์ฉ๋ ๋ชจ๋ ๊ณ ์ ๋จ์ด์ ํ ํฐ ์งํฉ)์ ์์ฑํฉ๋๋ค. ์๋ฅผ ๋ค์ด, Transformer XL์ ๊ณต๋ฐฑ ๋ฐ ๊ตฌ๋์ ํ ํฐํ๋ฅผ ์ฌ์ฉํด ์ดํ(vocabulary) ํฌ๊ธฐ๊ฐ 267,735์ ๋๋ค!
์ดํ ํฌ๊ธฐ๊ฐ ํฌ๋ฉด ๋ชจ๋ธ์ ์ ๋ ฅ ๋ฐ ์ถ๋ ฅ ๋ ์ด์ด๋ก ์์ฒญ๋ ์๋ฒ ๋ฉ ํ๋ ฌ์ด ํ์ํ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์๊ฐ ๋ณต์ก์ฑ์ด ๋ชจ๋ ์ฆ๊ฐํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํธ๋์คํฌ๋จธ ๋ชจ๋ธ์ ์ดํ ํฌ๊ธฐ๊ฐ 50,000๊ฐ๋ฅผ ๋๋ ๊ฒฝ์ฐ๊ฐ ๋๋ฌผ๋ฉฐ, ํนํ ๋จ์ผ ์ธ์ด์ ๋ํด์๋ง ์ฌ์ ํ๋ จ๋ ๊ฒฝ์ฐ์๋ ๋์ฑ ๊ทธ๋ ์ต๋๋ค. ๋จ์ํ ๊ณต๋ฐฑ๊ณผ ๊ตฌ๋์ ํ ํฐํ๊ฐ ๋ง์กฑ์ค๋ฝ์ง ์๋ค๋ฉด ๋จ์ํ ๋ฌธ์๋ฅผ ํ ํฐํํ๋ฉด ์ด๋จ๊น์?
๋ฌธ์ ํ ํฐํ๋ ์์ฃผ ๊ฐ๋จํ๊ณ ๋ฉ๋ชจ๋ฆฌ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ํฌ๊ฒ ์ค์ผ ์ ์์ง๋ง, ๋ชจ๋ธ์ด ์๋ฏธ ์๋ ์ ๋ ฅ ํํ์ ํ์ตํ๊ธฐ์๋ ํจ์ฌ ๋ ์ด๋ ต์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๋ฌธ์ "t"
์ ๋ํ ์๋ฏธ ์๋ ๋ฌธ๋งฅ ๋
๋ฆฝ์ ํํ์ ๋ฐฐ์ฐ๋ ๊ฒ ๋ณด๋ค ๋จ์ด "today"
์ ๋ํ ์๋ฏธ ์๋ ๋ฌธ๋งฅ ๋
๋ฆฝ์ ํํ์ ๋ฐฐ์ฐ๋ ๊ฒ์ด ํจ์ฌ ๋ ์ด๋ ต์ต๋๋ค. ๋ฌธ์ ํ ํฐํ๋ ์ข
์ข
์ฑ๋ฅ ์ ํ๋ฅผ ๋๋ฐํ๊ธฐ ๋๋ฌธ์ ๋ ๊ฐ์ง ์ฅ์ ์ ๋ชจ๋ ์ป๊ธฐ ์ํด ํธ๋์คํฌ๋จธ ๋ชจ๋ธ์ ์๋ธ์๋ ํ ํฐํ๋ผ๊ณ ํ๋ ๋จ์ด ์์ค๊ณผ ๋ฌธ์ ์์ค ํ ํฐํ์ ํ์ด๋ธ๋ฆฌ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์๋ธ์๋ ํ ํฐํ[[subword-tokenization]]
์๋ธ์๋ ํ ํฐํ ์๊ณ ๋ฆฌ์ฆ์ ์์ฃผ ์ฌ์ฉ๋๋ ๋จ์ด๋ ๋ ์์ ํ์ ๋จ์ด๋ก ์ชผ๊ฐ๊ณ , ๋๋ฌธ ๋จ์ด๋ ์๋ฏธ ์๋ ํ์ ๋จ์ด๋ก ๋ถํด๋์ด์ผ ํ๋ค๋ ์์น์ ๋ฐ๋ผ ์๋ํฉ๋๋ค. ์๋ฅผ ๋ค์ด "annoyingly"
๋ ๋๋ฌธ ๋จ์ด๋ก ๊ฐ์ฃผ๋์ด "annoying"
๊ณผ "ly"
๋ก ๋ถํด๋ ์ ์์ต๋๋ค. "annoyingly"
๊ฐ "annoying"
๊ณผ "ly"
์ ํฉ์ฑ์ด์ธ ๋ฐ๋ฉด, "annoying"
๊ณผ "ly"
๋ ๋ค ๋
๋ฆฝ์ ์ธ ์๋ธ์๋๋ก ์์ฃผ ๋ฑ์ฅํฉ๋๋ค. ์ด๋ ํฐํค์ด์ ๊ฐ์ ์์ง์ฑ ์ธ์ด์์ ํนํ ์ ์ฉํ๋ฉฐ, ์๋ธ์๋๋ฅผ ๋ฌถ์ด ์์๋ก ๊ธด ๋ณตํฉ ๋จ์ด๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์๋ธ์๋ ํ ํฐํ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ธ์ด ์๋ฏธ ์๋ ๋ฌธ๋งฅ ๋ ๋ฆฝ์ ํํ์ ํ์ตํ๋ฉด์ ํฉ๋ฆฌ์ ์ธ ์ดํ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. ๋ํ, ์๋ธ์๋ ํ ํฐํ๋ฅผ ํตํด ๋ชจ๋ธ์ ์ด์ ์ ๋ณธ ์ ์ด ์๋ ๋จ์ด๋ฅผ ์๋ ค์ง ์๋ธ์๋๋ก ๋ถํดํ์ฌ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, BertTokenizer๋ "I have a new GPU!"
๋ผ๋ ๋ฌธ์ฅ์ ์๋์ ๊ฐ์ด ํ ํฐํํฉ๋๋ค:
๋์๋ฌธ์๊ฐ ์๋ ๋ชจ๋ธ์ ์ฌ์ฉํด ๋ฌธ์ฅ์ ์์์ด ์๋ฌธ์๋ก ํ๊ธฐ๋์์ต๋๋ค. ๋จ์ด ["i", "have", "a", "new"]
๋ ํ ํฌ๋์ด์ ์ ์ดํ์ ์ํ์ง๋ง, "gpu"
๋ ์ํ์ง ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ํ ํฌ๋์ด์ ๋ "gpu"
๋ฅผ ์๋ ค์ง ๋ ๊ฐ์ ์๋ธ์๋๋ก ์ชผ๊ฐญ๋๋ค: ["gp" and "##u"]
. "##"
์ ํ ํฐ์ ๋๋จธ์ง ๋ถ๋ถ์ด ๊ณต๋ฐฑ ์์ด ์ด์ ํ ํฐ์ ์ฐ๊ฒฐ๋์ด์ผ(attach) ํจ์ ์๋ฏธํฉ๋๋ค(ํ ํฐํ ๋์ฝ๋ฉ ๋๋ ์ญ์ ์ ์ํด).
๋ ๋ค๋ฅธ ์๋ก, XLNetTokenizer
๋ ์ด์ ์ ์์ ๋ฌธ์ฅ์ ๋ค์๊ณผ ๊ฐ์ด ํ ํฐํํฉ๋๋ค:
"โ"
๊ฐ ๊ฐ์ง๋ ์๋ฏธ๋ SentencePiece์์ ๋ค์ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ๋ณด๋ค์ํผ "Transformers"
๋ผ๋ ๋๋ฌธ ๋จ์ด๋ ์๋ธ์๋ "Transform"
์ "ers"
๋ก ์ชผ๊ฐ์ง๋๋ค.
์ด์ ๋ค์ํ ํ์ ๋จ์ด ํ ํฐํ ์๊ณ ๋ฆฌ์ฆ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ด๋ฌํ ํ ํฐํ ์๊ณ ๋ฆฌ์ฆ์ ์ผ๋ฐ์ ์ผ๋ก ํด๋น ๋ชจ๋ธ์ด ํ์ต๋๋ ๋ง๋ญ์น์ ๋ํด ์ํ๋๋ ์ด๋ค ํํ์ ํ์ต์ ์์กดํ๋ค๋ ์ ์ ์ ์ํ์ธ์.
๋ฐ์ดํธ ํ์ด ์ธ์ฝ๋ฉ (Byte-Pair Encoding, BPE)[[bytepair-encoding-bpe]]
๋ฐ์ดํธ ํ์ด ์ธ์ฝ๋ฉ(BPE)์ Neural Machine Translation of Rare Words with Subword Units (Sennrich et al., 2015) ์์ ์๊ฐ๋์์ต๋๋ค. BPE๋ ํ๋ จ ๋ฐ์ดํฐ๋ฅผ ๋จ์ด๋ก ๋ถํ ํ๋ ์ฌ์ ํ ํฌ๋์ด์ (pre-tokenizer)์ ์์กดํฉ๋๋ค. ์ฌ์ ํ ํฐํ(Pretokenization)์๋ GPT-2, Roberta์ ๊ฐ์ ๊ฐ๋จํ ๊ณต๋ฐฑ ํ ํฐํ๊ฐ ์์ต๋๋ค. ๋ณต์กํ ์ฌ์ ํ ํฐํ์๋ ๊ท์น ๊ธฐ๋ฐ ํ ํฐํ๊ฐ ํด๋นํ๋๋ฐ, ํ๋ จ ๋ง๋ญ์น์์ ๊ฐ ๋จ์ด์ ๋น๋๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํด ์ฌ์ฉํฉ๋๋ค. XLM, ๋๋ถ๋ถ์ ์ธ์ด์์ Moses๋ฅผ ์ฌ์ฉํ๋ FlauBERT, Spacy์ ftfy๋ฅผ ์ฌ์ฉํ๋ GPT๊ฐ ํด๋นํฉ๋๋ค.
์ฌ์ ํ ํฐํ ์ดํ์, ๊ณ ์ ๋จ์ด ์งํฉ๊ฐ ์์ฑ๋๊ณ ํ๋ จ ๋ฐ์ดํฐ์์ ๊ฐ ๋จ์ด๊ฐ ๋ฑ์ฅํ๋ ๋น๋๊ฐ ๊ฒฐ์ ๋ฉ๋๋ค. ๋ค์์ผ๋ก, BPE๋ ๊ณ ์ ๋จ์ด ์งํฉ์ ๋ํ๋๋ ๋ชจ๋ ๊ธฐํธ๋ก ๊ตฌ์ฑ๋ ๊ธฐ๋ณธ ์ดํ๋ฅผ ์์ฑํ๊ณ ๊ธฐ๋ณธ ์ดํ์ ๋ ๊ธฐํธ์์ ์๋ก์ด ๊ธฐํธ๋ฅผ ํ์ฑํ๋ ๋ณํฉ ๊ท์น์ ํ์ตํฉ๋๋ค. ์ดํ๊ฐ ์ํ๋ ์ดํ ํฌ๊ธฐ์ ๋๋ฌํ ๋๊น์ง ์์ ๊ณผ์ ์ ๋ฐ๋ณตํฉ๋๋ค. ์ดํ ํฌ๊ธฐ๋ ํ ํฌ๋์ด์ ๋ฅผ ํ๋ จ์ํค๊ธฐ ์ ์ ์ ์ํด์ผ ํ๋ ํ์ดํผํ๋ผ๋ฏธํฐ๋ผ๋ ์ ์ ์ ์ํ์ธ์.
์๋ฅผ ๋ค์ด, ์ฌ์ ํ ํฐํ ํ ๋น๋๋ฅผ ํฌํจํ ๋ค์๊ณผ ๊ฐ์ ์ดํ ์งํฉ์ด ๊ฒฐ์ ๋์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค:
๊ฒฐ๊ณผ์ ์ผ๋ก ๊ธฐ๋ณธ ์ดํ๋ ["b", "g", "h", "n", "p", "s", "u"]
์ด๊ณ , ๊ฐ ๋จ์ด๋ฅผ ๊ธฐ๋ณธ ์ดํ์ ์ํ๋ ๊ธฐํธ๋ก ์ชผ๊ฐ๋ฉด ์๋์ ๊ฐ์ต๋๋ค:
๊ทธ๋ฐ ๋ค์ BPE๋ ๊ฐ๋ฅํ ๊ฐ ๊ธฐํธ ์์ ๋น๋๋ฅผ ๊ณ์ฐํ์ฌ ๊ฐ์ฅ ์์ฃผ ๋ฐ์ํ๋ ๊ธฐํธ ์์ ์ ํํฉ๋๋ค. ์์ ์์์์ "h"
๋ค์ ์ค๋ "u"
๋ 10 + 5 = 15 ๋ฒ ๋ฑ์ฅํฉ๋๋ค. ("hug"
์์ 10๋ฒ, "hugs"
์์ 5๋ฒ ๋ฑ์ฅ)
ํ์ง๋ง, ๊ฐ์ฅ ๋ฑ์ฅ ๋น๋๊ฐ ๋์ ๊ธฐํธ ์์ "u"
๋ค์ ์ค๋ "g"
์
๋๋ค. 10 + 5 + 5 = 20 ์ผ๋ก ์ด 20๋ฒ ๋ฑ์ฅํฉ๋๋ค. ๋ฐ๋ผ์ ํ ํฌ๋์ด์ ๊ฐ ๋ณํฉํ๋ ๊ฐ์ฅ ์ฒซ ๋ฒ์งธ ์์ "u"
๋ค์ ์ค๋ "g"
์
๋๋ค. "ug"
๊ฐ ์ดํ์ ์ถ๊ฐ๋์ด ์ดํ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
BPE๋ ๋ค์์ผ๋ก ๊ฐ์ฅ ๋ง์ด ๋ฑ์ฅํ๋ ๊ธฐํธ ์์ ์๋ณํฉ๋๋ค. "u"
๋ค์ ์ค๋ "n"
์ 16๋ฒ ๋ฑ์ฅํด "un"
์ผ๋ก ๋ณํฉ๋์ด ์ดํ์ ์ถ๊ฐ๋ฉ๋๋ค. ๊ทธ ๋ค์์ผ๋ก ๋น๋์๊ฐ ๋์ ๊ธฐํธ ์์ "h"
๋ค์ ์ค๋ "ug"
๋ก 15๋ฒ ๋ฑ์ฅํฉ๋๋ค. ๋ค์ ํ ๋ฒ "hug"
๋ก ๋ณํฉ๋์ด ์ดํ์ ์ถ๊ฐ๋ฉ๋๋ค.
ํ์ฌ ๋จ๊ณ์์ ์ดํ๋ ["b", "g", "h", "n", "p", "s", "u", "ug", "un", "hug"]
์ด๊ณ , ๊ณ ์ ๋จ์ด ์งํฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
์ด ์์ ์์ ๋ฐ์ดํธ ํ์ด ์ธ์ฝ๋ฉ ํ๋ จ์ด ์ค๋จ๋๋ค๊ณ ๊ฐ์ ํ๋ฉด, ํ๋ จ๋ ๋ณํฉ ๊ท์น์ ์๋ก์ด ๋จ์ด์ ์ ์ฉ๋ฉ๋๋ค(๊ธฐ๋ณธ ์ดํ์ ํฌํจ๋ ๊ธฐํธ๊ฐ ์๋ก์ด ๋จ์ด์ ํฌํจ๋์ง ์๋ ํ). ์๋ฅผ ๋ค์ด, ๋จ์ด "bug"
๋ ["b", "ug"]
๋ก ํ ํฐํ๋์ง๋ง, "m"
์ด ๊ธฐ๋ณธ ์ดํ์ ์๊ธฐ ๋๋ฌธ์ "mug"
๋ ["<unk>", "ug"]
๋ก ํ ํฐํ๋ ๊ฒ์
๋๋ค. ํ๋ จ ๋ฐ์ดํฐ์๋ ๋จ์ผ ๋ฌธ์๊ฐ ์ต์ํ ํ ๋ฒ ๋ฑ์ฅํ๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก "m"
๊ณผ ๊ฐ์ ๋จ์ผ ๋ฌธ์๋ "<unk>"
๊ธฐํธ๋ก ๋์ฒด๋์ง ์์ง๋ง, ์ด๋ชจํฐ์ฝ๊ณผ ๊ฐ์ ํน๋ณํ ๋ฌธ์์ธ ๊ฒฝ์ฐ์๋ ๋์ฒด๋ ์ ์์ต๋๋ค.
์ด์ ์ ์ธ๊ธํ๋ฏ์ด ์ดํ ํฌ๊ธฐ(์ฆ ๊ธฐ๋ณธ ์ดํ ํฌ๊ธฐ + ๋ณํฉ ํ์)๋ ์ ํํด์ผํ๋ ํ์ดํผํ๋ผ๋ฏธํฐ์ ๋๋ค. ์๋ฅผ ๋ค์ด GPT์ ๊ธฐ๋ณธ ์ดํ ํฌ๊ธฐ๋ 478, 40,000๋ฒ์ ๋ณํฉ ์ดํ์ ํ๋ จ์ ์ข ๋ฃํ๊ธฐ ๋๋ฌธ์ ์ดํ ํฌ๊ธฐ๊ฐ 40,478์ ๋๋ค.
๋ฐ์ดํธ ์์ค BPE (Byte-level BPE)[[bytelevel-bpe]]
๊ฐ๋ฅํ ๋ชจ๋ ๊ธฐ๋ณธ ๋ฌธ์๋ฅผ ํฌํจํ๋ ๊ธฐ๋ณธ ์ดํ์ ํฌ๊ธฐ๋ ๊ต์ฅํ ์ปค์ง ์ ์์ต๋๋ค. (์: ๋ชจ๋ ์ ๋์ฝ๋ ๋ฌธ์๋ฅผ ๊ธฐ๋ณธ ๋ฌธ์๋ก ๊ฐ์ฃผํ๋ ๊ฒฝ์ฐ) ๋ ๋์ ๊ธฐ๋ณธ ์ดํ๋ฅผ ๊ฐ๋๋ก GPT-2๋ ๊ธฐ๋ณธ ์ดํ๋ก ๋ฐ์ดํธ(bytes)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ๋ฐฉ์์ ๋ชจ๋ ๊ธฐ๋ณธ ๋ฌธ์๊ฐ ์ดํ์ ํฌํจ๋๋๋ก ํ๋ฉด์ ๊ธฐ๋ณธ ์ดํ์ ํฌ๊ธฐ๋ฅผ 256์ผ๋ก ์ ํํฉ๋๋ค. ๊ตฌ๋์ ์ ๋ค๋ฃจ๋ ์ถ๊ฐ์ ์ธ ๊ท์น์ ์ฌ์ฉํด GPT2 ํ ํฌ๋์ด์ ๋ ๋ชจ๋ ํ ์คํธ๋ฅผ [removed] ๊ธฐํธ ์์ด ํ ํฐํํ ์ ์์ต๋๋ค. GPT-2์ ์ดํ ํฌ๊ธฐ๋ 50,257๋ก 256 ๋ฐ์ดํธ ํฌ๊ธฐ์ ๊ธฐ๋ณธ ํ ํฐ, ํน๋ณํ end-of-text ํ ํฐ๊ณผ 50,000๋ฒ์ ๋ณํฉ์ผ๋ก ํ์ตํ ๊ธฐํธ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
์๋ํผ์ค (WordPiece)[[wordpiece]]
์๋ํผ์ค๋ BERT, DistilBERT, Electra์ ์ฌ์ฉ๋ ์๋ธ์๋ ํ ํฐํ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ์ด ์๊ณ ๋ฆฌ์ฆ์ Japanese and Korean Voice Search (Schuster et al., 2012)์์ ์๊ฐ๋์๊ณ , BPE์ ๊ต์ฅํ ์ ์ฌํฉ๋๋ค. ์๋ํผ์ค๋ ํ๋ จ ๋ฐ์ดํฐ์ ๋ฑ์ฅํ๋ ๋ชจ๋ ๋ฌธ์๋ก ๊ธฐ๋ณธ ์ดํ๋ฅผ ์ด๊ธฐํํ ํ, ์ฃผ์ด์ง ๋ณํฉ ๊ท์น์ ๋ฐ๋ผ ์ ์ง์ ์ผ๋ก ํ์ตํฉ๋๋ค. BPE์๋ ๋์กฐ์ ์ผ๋ก ์๋ํผ์ค๋ ๊ฐ์ฅ ๋น๋์๊ฐ ๋์ ๊ธฐํธ ์์ ์ ํํ์ง ์๊ณ , ์ดํ์ ์ถ๊ฐ๋์์ ๋ ํ๋ จ ๋ฐ์ดํฐ์ ์ฐ๋๊ฐ ์ต๋ํ๋๋ ์์ ์ ํํฉ๋๋ค.
์ ํํ ๋ฌด์จ ์๋ฏธ์ผ๊น์? ์ด์ ์์๋ฅผ ์ฐธ์กฐํ๋ฉด, ํ๋ จ ๋ฐ์ดํฐ์ ์ฐ๋ ๊ฐ์ ์ต๋ํํ๋ ๊ฒ์ ๋ชจ๋ ๊ธฐํธ ์ ์ค์์ ์ฒซ ๋ฒ์งธ ๊ธฐํธ์ ๋ ๋ฒ์งธ ๊ธฐํธ์ ํ๋ฅ ๋ก ๋๋ ํ๋ฅ ์ด ๊ฐ์ฅ ํฐ ๊ธฐํธ ์์ ์ฐพ๋ ๊ฒ๊ณผ ๋์ผํฉ๋๋ค. ์๋ฅผ ๋ค์ด "ug"
์ ํ๋ฅ ์ด "u"
์ "g"
๊ฐ๊ฐ์ผ๋ก ์ชผ๊ฐ์ก์ ๋ ๋ณด๋ค ๋์์ผ "u"
๋ค์ ์ค๋ "g"
๋ ๋ณํฉ๋ ๊ฒ์
๋๋ค. ์ง๊ด์ ์ผ๋ก ์๋ํผ์ค๋ ๋ ๊ธฐํธ๋ฅผ ๋ณํฉํ์ฌ ์๋ ๊ฒ์ ํ๊ฐํ์ฌ ๊ทธ๋งํ _๊ฐ์น_๊ฐ ์๋์ง ํ์ธํ๋ค๋ ์ ์์ BPE์ ์ฝ๊ฐ ๋ค๋ฆ
๋๋ค.
์ ๋๊ทธ๋จ (Unigram)[[unigram]]
์ ๋๊ทธ๋จ์ Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates (Kudo, 2018)์์ ์ ์๋ ์๋ธ์๋ ํ ํฐํ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. BPE๋ ์๋ํผ์ค์ ๋ฌ๋ฆฌ ์ ๋๊ทธ๋จ์ ๊ธฐ๋ณธ ์ดํ๋ฅผ ๋ง์ ์์ ๊ธฐํธ๋ก ์ด๊ธฐํํ ํ ๊ฐ ๊ธฐํธ๋ฅผ ์ ์ง์ ์ผ๋ก ์ค์ฌ ๋ ์์ ์ดํ๋ฅผ ์ป์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ธฐ๋ณธ ์ดํ๋ ๋ชจ๋ ์ฌ์ ํ ํฐํ๋ ๋จ์ด์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ํ์ ๋ฌธ์์ด์ ํด๋นํ ์ ์์ต๋๋ค. ์ ๋๊ทธ๋จ์ transformers ๋ชจ๋ธ์์ ์ง์ ์ ์ผ๋ก ์ฌ์ฉ๋์ง๋ ์์ง๋ง, SentencePiece์ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค.
๊ฐ ํ๋ จ ๋จ๊ณ์์ ์ ๋๊ทธ๋จ ์๊ณ ๋ฆฌ์ฆ์ ํ์ฌ ์ดํ์ ์ ๋๊ทธ๋จ ์ธ์ด ๋ชจ๋ธ์ด ์ฃผ์ด์ก์ ๋ ํ๋ จ ๋ฐ์ดํฐ์ ๋ํ ์์ค(ํํ ๋ก๊ทธ ์ฐ๋๋ก ์ ์๋จ)์ ์ ์ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ดํ์ ๊ฐ ๊ธฐํธ์ ๋ํด ์๊ณ ๋ฆฌ์ฆ์ ํด๋น ๊ธฐํธ๋ฅผ ์ดํ์์ ์ ๊ฑฐํ ๊ฒฝ์ฐ ์ ์ฒด ์์ค์ด ์ผ๋ง๋ ์ฆ๊ฐํ ์ง ๊ณ์ฐํฉ๋๋ค. ์ดํ์ ์ ๋๊ทธ๋จ์ ์์ค ์ฆ๊ฐ์จ์ด ๊ฐ์ฅ ๋ฎ์ ๊ธฐํธ์ p(๋ณดํต 10% ๋๋ 20%) ํผ์ผํธ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. (์ ๊ฑฐ๋๋ ๊ธฐํธ๋ ํ๋ จ ๋ฐ์ดํฐ์ ๋ํ ์ ์ฒด ์์ค์ ๊ฐ์ฅ ์์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.) ์ดํ๊ฐ ์ํ๋ ํฌ๊ธฐ์ ๋๋ฌํ ๋๊น์ง ์ด ๊ณผ์ ์ ๋ฐ๋ณตํฉ๋๋ค. ์ ๋๊ทธ๋จ ์๊ณ ๋ฆฌ์ฆ์ ํญ์ ๊ธฐ๋ณธ ๋ฌธ์๋ฅผ ํฌํจํด ์ด๋ค ๋จ์ด๋ผ๋ ํ ํฐํํ ์ ์์ต๋๋ค. ์ ๋๊ทธ๋จ์ด ๋ณํฉ ๊ท์น์ ๊ธฐ๋ฐํ์ง ์๊ธฐ ๋๋ฌธ์ (BPE๋ ์๋ํผ์ค์๋ ๋์กฐ์ ์ผ๋ก), ํด๋น ์๊ณ ๋ฆฌ์ฆ์ ํ๋ จ ์ดํ์ ์๋ก์ด ํ ์คํธ๋ฅผ ํ ํฐํํ๋๋ฐ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ํ๋ จ๋ ์ ๋๊ทธ๋จ ํ ํฐํ๊ฐ ๋ค์๊ณผ ๊ฐ์ ์ดํ๋ฅผ ๊ฐ์ง๋ค๋ฉด:
"hugs"
๋ ๋ ๊ฐ์ง๋ก ํ ํฐํํ ์ ์์ต๋๋ค. ["hug", "s"]
์ ["h", "ug", "s"]
๋๋ ["h", "u", "g", "s"]
.
๊ทธ๋ ๋ค๋ฉด ์ด๋ค ํ ํฐํ ๋ฐฉ๋ฒ์ ์ ํํด์ผ ํ ๊น์? ์ ๋๊ทธ๋จ์ ์ดํ๋ฅผ ์ ์ฅํ๋ ๊ฒ ์ธ์๋ ํ๋ จ ๋ง๋ญ์น์ ๊ฐ ํ ํฐ์ ํ๋ฅ ์ ์ ์ฅํ์ฌ ํ๋ จ ํ ๊ฐ๋ฅํ ๊ฐ ํ ํฐํ์ ํ๋ฅ ์ ๊ณ์ฐํ ์ ์๋๋ก ํฉ๋๋ค. ์ด ์๊ณ ๋ฆฌ์ฆ์ ๋จ์ํ ์ค์ ๋ก ๊ฐ์ฅ ๊ฐ๋ฅ์ฑ์ด ๋์ ํ ํฐํ๋ฅผ ์ ํํ์ง๋ง, ํ๋ฅ ์ ๋ฐ๋ผ ๊ฐ๋ฅํ ํ ํฐํ๋ฅผ ์ํ๋งํ ์ ์๋ ๊ฐ๋ฅ์ฑ๋ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ํ๋ฅ ์ ํ ํฌ๋์ด์ ๊ฐ ํ์ตํ ์์ค์ ์ํด ์ ์๋ฉ๋๋ค.
๋จ์ด๋ก ๊ตฌ์ฑ๋ ํ๋ จ ๋ฐ์ดํฐ๋ฅผ ๋ผ ํ๊ณ , ๋จ์ด ์ ๋ํ ๊ฐ๋ฅํ ๋ชจ๋ ํ ํฐํ ๊ฒฐ๊ณผ๋ฅผ ๋ผ ํ๋ค๋ฉด, ์ ์ฒด ์์ค์ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋ฉ๋๋ค:
์ผํ ์คํผ์ค (SentencePiece)[[sentencepiece]]
์ง๊ธ๊น์ง ๋ค๋ฃฌ ํ ํฐํ ์๊ณ ๋ฆฌ์ฆ์ ๋์ผํ ๋ฌธ์ ๋ฅผ ๊ฐ์ง๋๋ค: ์ ๋ ฅ ํ ์คํธ๋ ๊ณต๋ฐฑ์ ์ฌ์ฉํ์ฌ ๋จ์ด๋ฅผ ๊ตฌ๋ถํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ํ์ง๋ง, ๋ชจ๋ ์ธ์ด์์ ๋จ์ด๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด ๊ณต๋ฐฑ์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ํ๊ฐ์ง ๊ฐ๋ฅํ ํด๊ฒฐ๋ฐฉ์์ ํน์ ์ธ์ด์ ํนํ๋ ์ฌ์ ํ ํฌ๋์ด์ ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด XLM์ ํน์ ์ค๊ตญ์ด, ์ผ๋ณธ์ด, ํ๊ตญ์ด ์ฌ์ ํ ํฌ๋์ด์ ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ๊ธฐ ์ํด, SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing (Kudo et al., 2018)๋ ์ ๋ ฅ์ ์คํธ๋ฆผ์ผ๋ก ์ฒ๋ฆฌํด ๊ณต๋ฐฑ๋ฅผ ํ๋์ ๋ฌธ์๋ก ์ฌ์ฉํฉ๋๋ค. ์ดํ์ BPE ๋๋ ์ ๋๊ทธ๋จ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด ์ ์ ํ ์ดํ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
XLNetTokenizer
๋ ์ผํ
์คํผ์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์, ์์์ ๋ค๋ฃฌ ์์์์ ์ดํ์ "โ"
๊ฐ ํฌํจ๋์ด์์ต๋๋ค. ๋ชจ๋ ํ ํฐ์ ํฉ์น ํ "โ"
์ ๊ณต๋ฐฑ์ผ๋ก ๋์ฒดํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์ผํ
์คํผ์ค๋ก ํ ํฐํ๋ ๊ฒฐ๊ณผ๋ ๋์ฝ๋ฉํ๊ธฐ ์์ํฉ๋๋ค.
transformers์์ ์ ๊ณตํ๋ ์ผํ ์คํผ์ค ํ ํฌ๋์ด์ ๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ๋ชจ๋ธ์ ์ ๋๊ทธ๋จ๊ณผ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค. ALBERT, XLNet, Marian, T5 ๋ชจ๋ธ์ด ์ผํ ์คํผ์ค ํ ํฌ๋์ด์ ๋ฅผ ์ฌ์ฉํฉ๋๋ค.