Working with text data
Build a Large Language Model: Chapter 2

This chapter covers
๋ํ ์ธ์ด ๋ชจ๋ธ ํ๋ จ์ ์ํ ํ ์คํธ ์ค๋น
ํ ์คํธ๋ฅผ ๋จ์ด์ ์๋ธ์๋ ํ ํฐ์ผ๋ก ๋ถํ
ํ ์คํธ๋ฅผ ํ ํฐํํ๋ ๋ณด๋ค ์ง๋ณด๋ ๋ฐฉ๋ฒ์ธ ๋ฐ์ดํธ ํ์ด ์ธ์ฝ๋ฉ
์ฌ๋ผ์ด๋ฉ ์๋์ฐ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ ํ๋ จ ์์ ์ํ๋ง
ํ ํฐ์ ๋ํ ์ธ์ด ๋ชจ๋ธ์ ์ ๋ ฅํ๊ธฐ ์ํ ๋ฒกํฐ๋ก ๋ณํ
2.1. Understanding word embeddings
๋ฐ์ดํฐ๋ฅผ ๋ฒกํฐ ํ์์ผ๋ก ๋ณํํ๋ ๊ฐ๋ ์ ์๋ฒ ๋ฉ์ด๋ผ๊ณ ํจ
๋ค๋ฅธ ๋ฐ์ดํฐ ํ์์๋ ๊ฐ๊ธฐ ๋ค๋ฅธ ์๋ฒ ๋ฉ ๋ชจ๋ธ์ด ํ์
- e.g. ํ ์คํธ ์๋ฒ ๋ฉ ๋ชจ๋ธ์ ์ค๋์ค or ๋น๋์ค ์๋ฒ ๋ฉ์ ๋ถ์ ์
Word2Vec๊ณผ ๊ฐ์ ์๋ฒ ๋ฉ ๋ชจ๋ธ ์ธ ์๋ ์๋๋ฐ, ์ผ๋ฐ์ ์ผ๋ก ์์ฒด ์๋ฒ ๋ฉ์ ์์ฑํจ
2.2. Tokenizing text
regex๋ก ํ ํฌ๋์ด์ง
re.split(r'([,.]|\\s)', text)Input text โ Tokenized text โ Token IDs โ Token embeddings
2.3. Converting tokens into token IDs
ํ ํฐ ID๋ก ๋งคํํ๋ ค๋ฉด ์ดํ(vocabulary)๋ฅผ ๋ง๋ค์ด์ผ ํจ
Vocabulary: ๋ชจ๋ธ์ด ๋ค๋ฃฐ ์ ์๋ ๋จ์ด/ํ ํฐ๋ค์ ์ ์ฒด ์งํฉ
๊ฐ ๊ณ ์ ๋จ์ด์ ํน์๋ฌธ์๋ฅผ ๊ณ ์ ํ ์ ์์ ๋งคํํ๋ ๋ฐฉ๋ฒ์ ์ ์ํจ
์์ ์์๋ ๊ทธ๋ฅ ์ํ๋ฒณ์์ผ๋ก ์ ๋ ฌํจ
Dictionary: ๋งคํ ์ ์ฉ ํ ํ ์ด๋ธ
Encoding: dictionary๋ฅผ ์ฌ์ฉํด ํ ์คํธ๋ฅผ ID๋ก ๋ณํ
Decoding: dictionary๋ฅผ ์ฌ์ฉํด ID๋ฅผ ํ ์คํธ๋ก ์ญ๋ณํ
2.4. Adding special context tokens
ํน์ ๋ฌธ๋งฅ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ํน์ ํ ํฐ ์ถ๊ฐ ํ์
GPT ๋ชจ๋ธ์ ๋จ์ํ๋ฅผ ์ํด
<|endoftext|>ํ ํฐ๋ง ์ฌ์ฉ- ํ ํฐ๋ค์ ํน์ ๊ตฌ๊ฐ์ ์์์ด๋ ๋์ ์๋ฆฌ๋ ๋ง์ปค ์ญํ
GPT ๋ชจ๋ธ์ ๋จ์ด๋ฅผ ํ์ ๋จ์ด ๋จ์๋ก ๋ถํดํ๋ Byte pair encoding ์ฌ์ฉ
2.5. Byte pair encoding
๊ธฐ์กด์ ์๋ ๋จ์ด๋ฅผ ๋ถ๋ฆฌํ๋ ์๊ณ ๋ฆฌ์ฆ
character ๋จ์์์ ์ ์ฐจ์ ์ผ๋ก vocabulary๋ฅผ ๋ง๋ค์ด ๋ด๋ bottom up
๋ ์์ ํ์ ๋จ์ด or ๊ฐ๋ณ ๋ฌธ์๋ก ๋ถํด ํ vocabulary์ ์ถ๊ฐ
์ฐ์์ ์ผ๋ก ๊ฐ์ฅ ๋ง์ด ๋ฑ์ฅํ ๊ธ์ ์์ ์ฐพ์์ ํ๋์ ๊ธ์๋ก ๋ณํฉ
tiktoken: A fast BPE tokeniser
2.6. Data sampling with a sliding window
์ฌ๋ผ์ด๋ฉ ์๋์ฐ: ํ ์คํธ๋ฅผ ์ผ์ ํฌ๊ธฐ์ ๊ฒน์น๋ ๊ตฌ๊ฐ์ผ๋ก ๋๋์ด ์ ๋ ฅ๊ณผ ํ๊ฒ์ ์์ฑ
max_length: ํ ๋ฒ์ ์ฒ๋ฆฌํ ํ ํฐ ์, ์ถ๋ก ์ ์ปจํ ์คํธ ์๋์ฐ์ ์ํstride: ์๋์ฐ๊ฐ ์ด๋ํ๋ ๊ฐ๊ฒฉstride < max_length์ผ๋ก ์ค์ ํ์ฌ ๊ณผ์ ํฉ(overfitting)์ ๋ฐฉ์ง
2.7. Creating token embeddings
์๋ฒ ๋ฉ์ด ํ์ํ ์ด์
๋ฅ๋ฌ๋ ์ ๊ฒฝ๋ง์ ์ฐ์์ ์ธ ๋ฒกํฐ ํํ ํ์
์ญ์ ํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํ๋ จ๋๊ธฐ ๋๋ฌธ
์ ์ํ ํ ํฐ ID๋ก๋ gradient ๊ณ์ฐ ๋ถ๊ฐ
์๋ ๋ฉ์ปค๋์ฆ
์กฐํ ์์ (Lookup): ํ ํฐ ID๋ก ๊ฐ์ค์น ํ๋ ฌ์์ ํด๋น ํ ์ ํ
e.g. ํ ํฐ ID 3 โ ๊ฐ์ค์น ํ๋ ฌ์ 4๋ฒ์งธ ํ(0-indexed)
One-hot ์ธ์ฝ๋ฉ + ํ๋ ฌ ๊ณฑ์ ์ ํจ์จ์ ๊ตฌํ
2.8. Encoding word positions
ํ ํฐ ์๋ฒ ๋ฉ์ ํ๊ณ
Self-attention ๋ฉ์ปค๋์ฆ์ด ํ ํฐ์ ์์น๋ ์์๋ฅผ ์ดํดํ์ง ๋ชปํ๋ ๋ฌธ์ ๊ฐ ์์
์๋ฒ ๋ฉ ๋ ์ด์ด๋ ํ ํฐ ID๊ฐ ์ด๋ ์์น์ ์๋ ํญ์ ๋์ผํ ๋ฒกํฐ๋ก ๋ณํ
์์น ์๋ฒ ๋ฉ์ ํ์์ฑ
์ ๋์ ์์น ์๋ฒ ๋ฉ: ์ํ์ค ๋ด ํน์ ์์น์ ์ฐ๊ฒฐ๋๋ฉฐ, ๊ฐ ์์น๋ง๋ค ๊ณ ์ ํ ์๋ฒ ๋ฉ์ ํ ํฐ ์๋ฒ ๋ฉ์ ๋ํจ
์๋์ ์์น ์๋ฒ ๋ฉ: ํ ํฐ ๊ฐ์ ์๋์ ๊ฑฐ๋ฆฌ์ ์ค์ ์ ๋๋ฉฐ, ํ๋ จ ์ค ๋ณด์ง ๋ชปํ ๊ธธ์ด์ ์ํ์ค์๋ ์ ์ผ๋ฐํ๋ฉ๋๋ค



