huggingface transformers๋ฅผ ์ฌ์ฉํ๋ฉด์ ์ ๋ฆฌํ ์๋ฃ๋ค์ ์์นด์ด๋น ํฉ๋๋ค.
# Requirements
transformers==4.5.0
(์ฐธ๊ณ : Python version์ ๋ฐ๋ผ 4.5.0์์ ์คํ๋์ง ์๋ ๊ฒฝ์ฐ์ python version์ ๋ง๋ transformers ์ค์น ํ์ํจ)
- Huggingface Transformer๋ ๋ชจ๋ธ์ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์์ฑํ๊ณ , ํ์ตํ๊ณ , ๋ฐฐํฌํ๊ธฐ ์ํด ๋ง๋ค์ด์ง Highlevel Library์ ๋๋ค
- NLP ๋ชจ๋ธ์ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ํ์ตํ ์ ์์ผ๋ฉฐ, ๋ค์ํ pipeline ๋ฐ ์ ํํ๋ ์ฝ๋๋ฅผ ์ ๊ณตํฉ๋๋ค
- Transformers๋ Transformer๊ธฐ๋ฐ์ ๋ชจ๋ธ์ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค
-
NLP ๋ชจ๋ธ์ ์๋์ ๊ฐ์ Pipeline์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค
Input
->Tokenization
->Model training/Inference
->Post-Processing
(task dependent) ->Output
-
์ด๋ฌํ pipeline์ ๋ชจ๋ scratch๋ถํฐ ๊ตฌํํด๋ณด๋๊ฒ์ ๋งค์ฐ ์๋ฏธ์๋ ์์ ์ ๋๋ค
-
ํ์ง๋ง task์ ์๋ง๋ ๋ชจ๋ธ์ ๋น ๋ฅด๊ฒ ๊ตฌํํ๊ธฐ ์ํด์๋ ๋ฐ๋ณต์ ์ธ ์์ ์ ์ ํํ ํ ํ์์ฑ์ด ์์ต๋๋ค
-
transformers๋ฅผ ์ฌ์ฉํจ์ผ๋ก์ ๋ฐ๋ณต๋๋ ์์ ์ ๊ฐํธํ๊ฒ ์ํํ ์ ์๊ณ , ๋ชจ๋ธ ๊ฐ๋ฐ์ ์ด์ ์ ๋ง์ถ์ด ๊ฐ๋ฐ ๋ฐ ์ฐ๊ตฌ๋ฅผ ์งํํ ์ ์๊ฒ๋ฉ๋๋ค.
-
์๋์ ๋งํฌ์์ ๋ ์์ธํ๊ณ ๊ผผ๊ผผํ ๊ณต์ ํํ ๋ฆฌ์ผ์ ๊ณต๋ถํ ์ ์์ต๋๋ค.
-
์๋์ ๋งํฌ์์ huggingface์์ ์ ๊ณตํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ discussion์ ์ดํด๋ณผ ์ ์์ต๋๋ค.
huggingface๋ ์์ฒด์ ์ผ๋ก ์์ธํ document๋ฅผ ์ ๊ณตํ๋ฉฐ, ๊ด๋ จ notebook๊ณผ course๋ฅผ ์ ๊ณตํฉ๋๋ค. ํ์ง๋ง ๋ณด๋ค ์ฝ๊ฒ transformers ๋ฅผ ๋น ๋ฅด๊ฒ ํ์ด๋ณผ ์ ์๋ ๋ด์ฉ์ผ๋ก ๊ตฌ์ฑํ์์ผ๋ฉฐ, ๋ชจ๋ธ๋ง ๊ณผ์ ์์ ์๊ฒ๋ ์ฃผ์์ฌํญ์ ํจ๊ป ๊ธฐ์ ํ์์ต๋๋ค.
- Tokenizer ๋ถ๋ฌ์ค๊ธฐ
- Config ๋ถ๋ฌ์ค๊ธฐ
- Pretrained model ๋ถ๋ฌ์ค๊ธฐ
- Huggingface Trainer ์ฌ์ฉํ๊ธฐ
- Token ์ถ๊ฐํ๊ธฐ
- special token ์ถ๊ฐํ๊ธฐ
- ์ผ๋ฐ token ์ถ๊ฐํ๊ธฐ
- [CLS] output ์ถ์ถํ๊ธฐ
- ์ฐธ๊ณ : [CLS] ํ ํฐ์ ์ ๋ง ๋ฌธ์ฅ์ ๋ํํ ๊น ?
transformers๋ฅผ ํ์ฉํ์ฌ ๋ชจ๋ธ๋ง์ ์งํํ๋ค ์๊ฒ๋ ์๊ณ ์์คํ ๋ฉ๋ชจ๋ค์ ์ ๋ฆฌํ์์ต๋๋ค.
-
checkpoint loading์ ์ฃผ์ํ ์
- model state_dict์ผ๋ถ๋ง loadingํ๊ธฐ
- Tokenizer ์ฌ์ฉ์ ๊ณ ๋ คํ๋ฉด ์ข์ ๋ช๊ฐ์ง ํฌ์ธํธ
- tokenizer.encode์ tokenizer.convert_tokens_to_ids
transformers๋ฅผ ํ์ฉํ์ฌ ๊ฐ๋จํ nlp ๋ชจ๋ธ์ ๊ตฌํํฉ๋๋ค.
- Trainer ์ฌ์ฉ, config ์์ , ํจ์ ๋ถ๋ฆฌ
- datasets์ CoNLL-2003 ์ฌ์ฉํ์ฌ ๋ชจ๋ธ๋ง
- eval_f1: 0.93, eval_acc: 0.98