ํ๊ตญ์ด ๋ฌธ์ฅ์ ์ ์ฌ๋ ๋ถ์ ๋ชจ๋ธ ํ๋ จ ๋ฐ ์๋น์คํ
ํ๋ก์ ํธ ๋ชฉํ๋ ํ์ต ๋ฐ์ดํฐ ์
์ ์ฌ์ฉํ์ฌ ์๋ฏธ์ ํ
์คํธ ์ ์ฌ๋ ๋ชจ๋ธ ํ๋ จ
Data โ Data Preprocessing โ Data Augumentation โ Model โ Param Tuning โ Metric โ Evaluation โ Serving
๋ ๊ฐ์ ํ๊ตญ์ด ๋ฌธ์ฅ์ ์ ๋ ฅ๋ฐ์ ๋ ๋ฌธ์ฅ์ ์๋ฏธ์ ์ ์ฌ๋(STS)๋ฅผ ์ถ๋ ฅํ๋ ๋ชจ๋ธ์ ์์ฑํ๊ธฐ ์ํด ํ๊ตญ์ด ๋ฌธ์ฅ ์ ์ฌ๋ ๋ฐ์ดํฐ์ KLUE-STS์ ์ฌ์ฉํฉ๋๋ค. ์ ๋ฐ์ดํฐ์ ๋ฌธ์ฅ ๋ฐ์ดํฐ๋ฅผ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฆ๊ฐ์์ผ ๊ณผ์ ํฉ์ ๋ฐฉ์งํ์ต๋๋ค. ๋ฌธ์ฅ์ด ํ๊ธ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ ์๋ฏธ๋ก ์ ์ผ๋ก ๋ ๋ฌธ์ฅ์ ์ ์ฌ๋๋ฅผ ํ๋จํ๊ธฐ ์ํด Sentence-BERT ๊ธฐ๋ฐ ๋ชจ๋ธ์ ์ฌ์ฉํ์ผ๋ฉฐ Pretrained Model๋ก huggingface์ Huffon/sentence-klue-roberta-base ๋ชจ๋ธ์ ์ฌ์ฉํ์ต๋๋ค. ์ฃผ์ด์ง ๋ฐ์ดํฐ์ ๋ Fitํ๋ ๋ชจ๋ธ์ ์ฐพ๊ธฐ ์ํด ํ๋ผ๋ฏธํฐ๋ฅผ ํ๋ํ์ต๋๋ค. ์ ํ์ต๋๋์ง ํ๊ฐํ๊ธฐ ์ํด F1 ๊ณผ Pearson's r score๋ฅผ ์ฌ์ฉํ์ฌ ๋น๊ตํ์ต๋๋ค. ์ ๋ชจ๋ธ์ FastAPI ํ๋ ์์ํฌ๋ก ์๋นํ์ต๋๋ค. ๋ฌธ์ฅ 2๊ฐ๋ฅผ API์ ๋ฃ์ด ๊ฐํธํ๊ฒ inference๊ฐ์ ๋ฐํํ ์ ์๋๋ก ๋ง๋ค์์ต๋๋ค.
๋ฐ์ดํฐ๋ก KLUE-STS (Korean Language Understanding Evaluation - STS)์ ์ฌ์ฉํ์ต๋๋ค. ๋ ๋ฌธ์ฅ์ ์๋ฏธ์ ์ ์ฌ๋ Task๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ํ๊ธ ๋ฐ์ดํฐ ์ ์ ๋๋ค. AIRBNB์์ ๊ตฌ์ด์ฒด ๋ฆฌ๋ทฐ, policy์์ ๊ฒฉ์์ฒด ๋ด์ค ๊ทธ๋ฆฌ๊ณ QaraKQC์์ ์ค๋งํธ ํ ์ฟผ๋ฆฌ ์ด ์ธ ๊ฐ์ง ๋๋ฉ์ธ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ ์ฒด ๋ฐ์ดํฐ ๊ฐ์๋ ์ฝ Train:Dev:Test = 20:1:2์ ๋น์จ์ ๋๋ค. Train Data๋ ์ด 11668๊ฐ, Dev Data๋ 519๊ฐ, Test Data๋ 1037๊ฐ๋ก ์ด 13224๊ฐ์ ๋๋ค. ๊ฐ ๋ฐ์ดํฐ๋ sentence1, sentence2, label ์ด ์ธ ๊ฐ์ ์นผ๋ผ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ๋ผ๋ฒจ์ real-label, label, binary-label ์ธ ๊ฐ์ง ๋ผ๋ฒจ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. real-label์ ๋ ๋ฌธ์ฅ์ ์ ์ฌ๋๋ฅผ ์ค์ํ์ผ๋ก ํํํ ๋ผ๋ฒจ, label์ real-label์ ์์์ ํ์๋ฆฌ ์๋งํผ ํํํ ๋ผ๋ฒจ, binary-label์ real label์ 0.3์ threshold๋ฅผ ์ฃผ์ด ์ผ์ ๊ฐ์ ๊ธฐ์ค์ผ๋ก 0๊ณผ 1๋ก ์ด์งํํ ๋ผ๋ฒจ์ ๋๋ค.
๋ชจ๋ธ ์ฑ๋ฅ์ ์ํฅ์ ๋ผ์น ์ ์๋ Noise๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ๋ฅผ ํ์ต๋๋ค. ํ๊ธ ๊ธฐ๋ฐ์ ํ์ต์ ์ํด ํ๊ธ ์ธ ํ์, ์ผ๋ณธ์ด ๋ฑ์ ๋ฌธ์๋ฅผ ์ ๊ฑฐํ์๊ณ ํน์๋ฌธ์๋ฅผ ์ ๊ฑฐํ์์ต๋๋ค. ์ซ์, ์กฐ์ฌ์ ์ ์ฌ๋ฅผ ์ ๊ฑฐํ ๊ฒฝ์ฐ ๋ฌธ์ฅ ๋ณธ์ฐ์ ์๋ฏธ๊ฐ ๋ณ์ง๋๋ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ์ฌ ์ ๊ฑฐํ์ง ์์์ต๋๋ค. ๊ฒฐ์ธก์น๋ฅผ ์ ๊ฑฐํ๊ณ ์ค๋ณต์ ์ ๊ฑฐํ์ฌ ์ ์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ์ต๋๋ค.
Preprocessed Data Download
Preprocessed Dev Data Download
- ์ ์ฒ๋ฆฌ ํ ๋ฐ์ดํฐ ๊ฐ์ : 11,661๊ฐ
- ๋ฐ์ดํฐ ์นผ๋ผ
- sentence1 : ์ ์ฌ๋ ๋น๊ต pair text1
- sentence2 : ์ ์ฌ๋ ๋น๊ต pair text2
- labels : dict ํ์์ผ๋ก ๊ตฌ์ฑ๋ label ๋ฌถ์
- score : sentence1๊ณผ sentence2 ์ฌ์ด์ ์ ์ฌ๋ ์ ์. ์ ์ฌ๋ ์ ๋์ ๋ฐ๋ผ 1์์ 5์ ๊ฐ์ ๊ฐ์ง
- binary : score๋ฅผ 3์ ๊ธฐ์ค์ผ๋ก binary label๋ก ๋ฐ๊พผ ๊ฒ 3์ ์ด์์ด๋ฉด 1 . ๊ทธ์ธ๋ 0
- normalized : score๊ฐ 0์์ 1 ์ฌ์ด์ ๊ฐ์ ๊ฐ์ง๋๋ก ์ ๊ทํํ label
- Preprocessed Train Data
- Preprocessed Dev Data
ใ๋ฐ์ดํฐ ๊ณผ์ ํฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ์ฆ๊ฐํ์ต๋๋ค. ๋
ผ๋ฌธ์ ์์นํ์ฌ Back Translation๊ณผ EDA ์ด ๋ ๊ฐ์ง ํ
์คํธ ์ฆ๊ฐ ๊ธฐ๋ฒ์ ์ ์ ํ์ต๋๋ค. ์ ๊ธฐ๋ฒ์ผ๋ก ํธํฅ์ด ์ ๊ฒ ๋ฐ์ํ๋๋ก ํ๋ฉด์ ๊ธฐ์กด ๋ฐ์ดํฐ ๊ฐ์๋ฅผ ๋๋ ค ๋ชจ๋ธ์ ์ผ๋ฐํ ์ฑ๋ฅ์ ์ฌ๋ ธ์ต๋๋ค.
๋ ๋ฌธ์ฅ์ ์ ์ฌ๋๋ฅผ ๋์ถํ๋๋ฐ ์์ด์ ๋ ๋ฌธ์ฅ ๋ชจ๋ ์ฆ๊ฐ ์ฒ๋ฆฌํ ๋ฐ์ดํฐ์ ๊ธฐ์กด ๋ผ๋ฒจ๊ฐ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐ์ดํฐ ์ค์ผ ์ํ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋ ๋ฌธ์ฅ ์ค ํ ๋ฌธ์ฅ์ ์ฆ๊ฐ๋ ๋ฌธ์ฅ, ํ ๋ฌธ์ฅ์ ๊ธฐ์กด ๋ฌธ์ฅ์ ํ์ด๋ก ๋ฌถ์ด ์ฆ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ์ต๋๋ค. ์ต์ข
๋ฐ์ดํฐ๋ Train๊ณผ Test๋ฅผ 9:1 ๋น์จ์
๋๋ค. Test ๋ฐ์ดํฐ๋ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํ๊ฐํ๊ธฐ ์ํ ์งํ๋ก ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ์
์
๋๋ค. ์ฐ๋ฆฌ ํ์ ์กฐ๊ธ์ด๋ผ๋ ๋ ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ํ์ตํด์ ๋ชจ๋ธ ์์ฒด์ ์ฑ๋ฅ์ ๋์ด์ฌ๋ฆฌ๋๊ฒ ์ค์ํ๋ค๊ณ ์๊ฐํ์ฌ ์์ ๊ฐ์ ๋ฐ์ดํฐ ๋น์จ์ ์ ์ ํ์ต๋๋ค.
Data Augumentation Code
Augumented Data Download
๋ฐ์ดํฐ ๋น์จ ์ ์ ์ฐธ๊ณ ์๋ฃ
Back Translation์ ํ๊ธ ํ ์คํธ๋ฅผ ์์ด ํ ์คํธ๋ก ๋ณํํ ๋ค์ ๋ค์ ํ ๋ฒ ํ๊ธ๋ก ๋ฒ์ญํ๋ ๋ฐฉ์์ ๋๋ค. Source Sentence๋ฅผ ์ฃผ์ด Target Sentence๋ฅผ ์์ฑํ๊ณ ์ด๋ก ๋ณํ๋ Source Sentence๋ ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ์์ฐ์ค๋ฌ์ด ์ธ๊ณต๋ฐ์ดํฐ๋ฅผ ์์ฑํฉ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ฆ๊ฐํ ํ ์ค๋ณต๋๋ ๋ฐ์ดํฐ๋ ์ ๊ฑฐํ์ต๋๋ค.
Back Translation์ ์ด๋ค ๋ฒ์ญ๊ธฐ๋ฅผ ์ ํํ๋๋์ ๋ฐ๋ผ ์ฑ๋ฅ์ด ์ข์ฐ๋๋ค๋ ์ ์ ๊ณ ๋ คํ์ต๋๋ค. Pororo, Papago, Googletrans ์ธ ๊ฐ์ง ๋ฒ์ญ API๋ฅผ ์ผ๋ํด ์ง์ ์ฑ๋ฅ์ ์คํํ์ต๋๋ค. ์ธ ๊ฐ์ง ๋ฒ์ญ๊ธฐ ๋ชจ๋ ๋ฒ์ญ ํ์ง์ ์ฐ์ํ์ต๋๋ค. Papago๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ 1,000,000 ๊ธ์ ๋น 20,000 ์์ด ๋ถ๊ณผ๋๋ค๋ ๊ธ์ ์ ์ธ ์ด์, Googletrans๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ Google Translation ์น ๋ฒ์ ์ ์ ํ์ผ๋ก ์ธํด ํญ์ ์ ๋๋ก ์๋ํ์ง ์์ ์ ์๋ค๋ ๋ถ์์ ์ฑ ์ด์๋ก ์ธํด ์๊ฐ์ด ๋ ์ค๋๊ฑธ๋ฆฐ๋ค๋ ์ ์ ๊ฐ์ํ๊ณ Pororo Translator๋ฅผ ์ ์ ํ์ฌ BackTranslation์ ์งํํ์ต๋๋ค. ์คํ ์ฝ๋
EDA๋ 4๊ฐ์ง ์ฆ๊ฐ ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ํ ์คํธ ๋ฐ์ดํฐ์ ์์ ์ฆ๊ฐ์ํค๋ ๋ฐฉ๋ฒ์ ๋๋ค. SR, RI, RS, RD ๊ธฐ๋ฒ์ ์ฌ์ฉํฉ๋๋ค.
- SR(Synonym Replacement): ๋ฌธ์ฅ์์ ๋๋ค์ผ๋ก ๋ถ์ฉ์ด๋ฅผ ์ ์ธํ n๊ฐ์ ๋จ์ด๋ฅผ ์ ํํ์ฌ ๋์์ด๋ก ๋ฐ๊พผ๋ค.
๋ด ๋ ์จ ๋๋ฌด ์ข์ง ์๋? => ๋ด ๊ณ์ ๋๋ฌด ์ข์ง ์๋? - RI(Random Insertion): ๋ฌธ์ฅ์์ ๋๋ค์ผ๋ก ๋ถ์ฉ์ด๋ฅผ ์ ์ธํ์ฌ ๋จ์ด๋ฅผ ์ ํํ๊ณ , ํด๋น ๋จ์ด์ ์ ์์ด๋ฅผ ๋ฌธ์ฅ ๋ด ์์์ ์๋ฆฌ์ ๋ฃ๋๋ค. ์ด๋ฅผ n๋ฒ ๋ฐ๋ณตํ๋ค.
๋ด ๋ ์จ ๋๋ฌด ์ข์ง ์๋? => ๋ด ๋ ์จ ๊ฐ์ ๋๋ฌด ์ข์ง ์๋? - RS(Random Swap): ๋ฌด์์๋ก ๋ฌธ์ฅ ๋ด์์ ๋ ๋จ์ด๋ฅผ ์ ํํ๊ณ ์์น๋ฅผ ๋ฐ๊พผ๋ค. ์ด๋ฅผ n๋ฒ ๋ฐ๋ณตํ๋ค.
๋ด ๋ ์จ ๋๋ฌด ์ข์ง ์๋? => ๋ด ์๋ ๋๋ฌด ์ข์ง ๋ ์จ? - RD(Random Deletion): ๋จ์ด๋ง๋ค p์ ํ๋ฅ ๋ก ๋๋คํ๊ฒ ์ญ์ ํ๋ค.
๋ด ๋ ์จ ๋๋ฌด ์ข์ง ์๋? => ๋ด ๋๋ฌด ์ข์ง ์๋?
RI์ SR์ ๊ฒฝ์ฐ ํด๋น ์ธ์ด Wordmap์ด ํ์ํ ์ฆ๊ฐ ๊ธฐ๋ฒ์ ๋๋ค. KAIST์์ ๋ฐฐํฌํ ํ๊ธ ์๋๋งต Korean Wordnet์ ์ฌ์ฉํ์ฌ ๋ ๊ธฐ๋ฒ์ ํ ์คํธ ํด ๋ณธ ๊ฒฐ๊ณผ ๋ถ์ ์ ํ ์ ์์ด๋ก ์ฆ๊ฐ๋๋ ๊ฒฝ์ฐ๊ฐ ์์์ต๋๋ค. ์ ์ด์๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ตญ๋ฆฝ๊ตญ์ด์์์ ์ ๊ณตํ๋ ์ ์์ด ์ฌ์ ์๋ฃ๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ๊ตญ๋ฆฝ๊ตญ์ด์์์ ์ดํ ๊ด๊ณ ์๋ฃ : NIKLex๋ฅผ ํ ๋๋ก ์ ์์ด ์ฌ์ ์ ๋ง๋ค์์ต๋๋ค. <์ฐ๋ฆฌ๋ง์>์ ๋ฑ๋ก๋ ๋น์ทํ๋ง, ๋ฐ๋๋ง, ์์์ด, ํ์์ด ์ดํ ์์ ๋์์ผ๋ก ์ดํ ๊ด๊ณ ๊ฐ๋๋ฅผ 5์ ์ฒ๋๋ก ์ด 5๋ง ๋ช ์ด ํ๊ฐํ ์๋ฃ์ ๋๋ค. ๊ธฐ์กด Korean Wordnet์ ๊ฒฝ์ฐ ์ ์ฌ๋๋ฅผ ์ ๊ณตํ๋ ๋จ์ด ์๊ฐ 9714๊ฐ๋ก ์ ๊ณ ๊ฐ ๋จ์ด์ ์ ์ฌ๋์ ์์ค๋ ์ ์๋ก ์ ๊ณต๋์ง ์๋ ๋ฐ๋ฉด ๋ชจ๋์ ๋ง๋ญ์น ์๋ฃ์์๋ 60000๊ฐ์ ๋จ์ด์์ ์ ์ฌ๋์ ์ ์๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ชจ๋์ ๋ง๋ญ์น๋ฅผ ํตํด ์ ์์ด ๊ฐ์๊ฐ ์ ๊ณ ์ ๋ขฐ๋๊ฐ ์ ๋ค๋ ํ๊ตญ์ด Wordnet ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ์ ์๋ฏธํ ์ ์์ด๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด ์ ์์ด ๋จ์ด ์ ์ ์ฌ๋์ ์ ์ฒด ํ๊ท ์ธ 3.7284703333333455 ์ด์์ธ ์ ์์ด ๋จ์ด์์ ์ฌ์ฉํ์ต๋๋ค. ์ต์ข ์ ์ผ๋ก ๋ชจ๋์ ๋ง๋ญ์น ์ ์์ด ์ฌ์ ์์ ๋จ์ด๊ฐ ์ ์ฌ๋๊ฐ ํ๊ท ์ ์ฌ๋ ๋จ์ด์๋ณด๋ค ๋์ 33895๊ฐ์ ํ๊ตญ์ด ๋จ์ด ์ ์ฌ๋ ๋จ์ด์์ ์ฌ์ฉํ์ฌ ์ฌ์ ์ ๋ง๋ค์์ต๋๋ค.
์๋ ํ๋ ๋ ผ๋ฌธ์ ์๊ฐ๋ 4๊ฐ์ง ๊ธฐ๋ฒ์ ํ๋ผ๋ฏธํฐ ์ค์ ์ ๋ฐ๋ฅธ ์ฑ๋ฅ ์คํ ๊ทธ๋ํ์ ๋๋ค. ์ํ ํ๋ผ๋ฏธํฐ๋ ๊ฐ ์ฆ๊ฐ์ ์ํด ๋ณ๊ฒฝ๋ ๋ฌธ์ฅ์ ๋จ์ด ๋น์จ์ ๋๋ค. ์ด ํ๋ผ๋ฏธํฐ ๊ฐ์ด ์ฝ 0.1~0.2 ์ฌ์ด์ผ ๋ ์ต์ ์ฑ๋ฅ์ด๋ผ๋ ๋ ผ๋ฌธ ์ฐ๊ตฌ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ๋ณธ ์ฝ๋์์๋ ๋ชจ๋ EDA ๊ธฐ๋ฒ์ ์ํ ํ๋ผ๋ฏธํฐ๋ฅผ 0.2๋ก ์ค์ ํฉ๋๋ค.
NLU ๋ฌธ์ฅ์ ์ฌ๋ ๊ณ์ฐ(STS) Task๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Sentence-BERT ๊ธฐ๋ฐ ๋ชจ๋ธ์ ์ฌ์ฉํ์ผ๋ฉฐ Pretrained Model๋ก huggingface์ Huffon/sentence-klue-roberta-base ๋ชจ๋ธ์ ์ฌ์ฉํ์ต๋๋ค. ์ด ๋ชจ๋ธ์ RoBERTa base ๋ฌธ์ฅ ์๋ฒ ๋ฉ ๋ชจ๋ธ์ ๋๋ค. ๋ชจ๋ธ์ ์ ์ ํ๋๋ฐ์ ์์ด์ ๋ฐ์ดํฐ ์ ํฉ์ฑ, ์๋ฏธ๋ก ์ ์ ๊ทผ, ๋ชจ๋ธ ํฌ๊ธฐ, ๊ฐ๋ฐ ์ฉ์ด์ฑ์ ๊ธฐ์ค์ผ๋ก ๋ชจ๋ธ์ ์ ์ ํ์ต๋๋ค.
Fine-Tuning ์ฐธ๊ณ ์๋ฃ
sentence-klue-roberta-base
KoSentenceBERT-SKT
- ๋ฐ์ดํฐ ์ ํฉ์ฑ: ํ๊ธ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ธฐ์ ํ๊ธ ์ธ์ด์ ๋ง์ถฐ์ง Pretrained Model ์ฌ์ฉ์ ๊ณ ๋ คํ์ต๋๋ค. KLUE Corpus ๋ฐ์ดํฐ๋ฅผ ๋ฐํ์ผ๋ก ๊ฐ ๋จ์ด์ Contexual ์๋ฏธ๋ฅผ ํ์ตํ๋ค๋ ์ ์์ ํ๋ก์ ํธ ๋ชฉํ์ ์ ํฉํ๋ค๊ณ ํ๋จํ์ต๋๋ค.
- ์๋ฏธ๋ก ์ ์ ๊ทผ : huggingface์ STS ๋ค์ค์ด ๋ชจ๋ธ(multi)์ ๊ณ ๋ คํ์ฌ inference ์คํํด ๋ณธ ๊ฒฐ๊ณผ ๊ฐ ๋ฌธ์ฅ์ ์๋ฏธ๋ณด๋ค๋ ์๋ชจ์์ด ์ผ๋ง๋ ์ผ์นํ๋์ง์ ํฌ๊ฒ ๋ณ๋ํ์ต๋๋ค. Tokenํ๊ฐ ํํ์ ๊ธฐ์ค์ด ์๋ ์๋ชจ์์ด๋ผ๋ ์ธ์ด๊ธฐํธ ๊ธฐ์ค์ผ๋ก ๋๋ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ์ฌ, ์ด์ฒ๋ผ ์๋ฏธ๋ฅผ ํ์ ํ์ง ์๊ณ ๋จ์ ์๋ชจ์ ์ธ์ด๊ธฐํธ์ ์ ์ฌ์ฑ์ผ๋ก ํ๋จํ๋ ๋ชจ๋ธ์ 'ํ์ต ๋ฐ์ดํฐ ์ ์ ์ฌ์ฉํ์ฌ ์๋ฏธ์ ํ ์คํธ ์ ์ฌ๋ ๋ชจ๋ธ์ ํ๋ จํ๋ค'๋ ํ๋ก์ ํธ ๋ชฉํ์ ๋ง์ง ์๋ค๊ณ ํ๋จํ์ต๋๋ค.
- ๊ฐ๋ฐ ์ฉ์ด์ฑ: ๊ฐ๋ฐํ๋ ๋ฐฉ๋ฒ์ด ํํ ๋ฆฌ์ผ๋ก ์ ๊ตฌ์ฑ๋์ด์๋ ๊ฐ๋ฐ ๊ฐ๋ฅํ ๋ชจ๋ธ์ ์ ์ ํ์ต๋๋ค. ๋ณธ ๋ชจ๋ธ์ ๊ฒฝ์ฐ Usage๋ฅผ ๋ช ์ํ์ฌ ๋ชจ๋ธ ์๋์ ์ง๊ด์ ์ผ๋ก ์ดํดํ ์ ์์ต๋๋ค.
- ๋ชจ๋ธ ํฌ๊ธฐ: ํ์ด ํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ ์์์์ ์ถฉ๋ถํ ๋์๊ฐ ์ ์๋ ๋ชจ๋ธ์ธ์ง ๊ณ ๋ คํ์ต๋๋ค. API ์๋น์ ๊ณ ๋ คํ์ฌ ๋น ๋ฅด๊ฒ Inferenceํ ์ ์๋๋ก ๊ฐ๋ฒผ์ด ๋ชจ๋ธ์ ์ ์ ํ์์ต๋๋ค. API ์๋ต ์๋๋ฅผ ๊ณ ๋ คํ์ฌ ์์๋ธ ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ง ์์์ต๋๋ค.
Sentence Bert๋ Computational Cost๊ฐ ํฌ๋ฉด์ ์ฑ๋ฅ๋ ๊ธฐ์กด Embedding ๋ณด๋ค ๋ฎ๊ฒ ๋ํ๋๋ BERT์ Sentence Embedding ๋ฐฉ์์ ๋ณด์ํ๊ธฐ ์ํด ๊ณ ์ ๋์์ผ๋ฉฐ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ๊ฐ์ง๋๋ค.
- Siames Network๋ ๊ฐ์ ๊ฐ์ค์น๋ฅผ ๊ณต์ ํ๋ ๋คํธ์ํฌ ๊ตฌ์กฐ๋ก ์ด ๊ตฌ์กฐ ํ์์ ๋ ๋ฌธ์ฅ์ Embedding์ด ๊ฐ๊ฐ ๋ฐ๋ก ๊ณ์ฐ๋ฉ๋๋ค.
- ์ดํ ๊ฐ Embedding Vector์ ๋ํด Cosine Similarity ๋ Manhattan Distance ๋ฅผ ๊ณ์ฐํด ์ ์ฌ๋๋ฅผ ์ฐ์ถํฉ๋๋ค.
- ํ์ต ์์๋ ๋ฌธ์ฅ์ pair๊ฐ ๊ฐ์ label์ด๋ผ๋ฉด ์ ์ฌ๋๊ฐ ๊ฐ๊น์์ง๋๋ก, ๋ค๋ฅด๋ค๋ฉด ๋ฉ์ด์ง๋๋ก ๊ฐ์ค์น๊ฐ ํ์ต๋ฉ๋๋ค.
-
BERT๋ pair๋จ์๋ก ํ๋ฒ์ transformer encoder์ ๋ฐ์์ inferenceํ๋ cross encoder ๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ์ Computational Cost๊ฐ ์ปค์ Servingํ๊ฒฝ์์ ์ฐ๊ธฐ ์ด๋ ต๋ค๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
-
Siames Network ํ์์๋ ์ ๋ ฅ์ pair๋ก ๋ฐ๋ ๊ฒ์ด ์๋๋ผ ๊ฐ๊ฐ์ ๋ฌธ์ฅ์ ๋ํ Embedding์ ์์ฑํ ์ ์๊ธฐ๋๋ฌธ์ BERT๋ก 65์๊ฐ ๊ฑธ๋ฆฌ๋ ์์ ์ 5์ด๋ง์ ๋๋ด๋ Computatinal Efficientํ ๋ชจ์ต์ ๋ณด์ ๋๋ค.
- ๋ฐ์ดํฐ ์์ค์ ์ถ์ฒ๊ฐ ๋ค์ํ๊ธฐ์ ๊ฐ๋ฅํ ๋ชจ๋ ๋จ์ด์ ์๋ฏธ๋ฅผ ์๋ฒ ๋ฉ์ ๋ฐ์ํ๊ณ ์ Mean Pooling ๋ฐฉ์์ ์ฌ์ฉํ์์ต๋๋ค.
- objective function์ผ๋ก๋ Cosine Similarity ๊ธฐ๋ฐ MSE loss๋ฅผ ์ฌ์ฏํ์์ต๋๋ค.
- Optimizer๋ก๋ AdamW๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
- early train sample๋ก ์ธํ ํธํฅ๋ ํ์ต์ ๋ง๊ธฐ ์ํด linear learing rate scheduler์์์ warmup step์ ํ์ต๋ฐ์ดํฐ์ 10% ๋ก ์ค์ ํ์์ต๋๋ค.
- ํ๋ผ๋ฏธํฐ ํ๋์ Weight & Bias (Wandb)๋ฅผ ์ฌ์ฉํ์์ต๋๋ค. Wandb์ Sweep ๊ธฐ๋ฅ์ ํ์ฉํ๋ฉด ํ์ดํผ ํ๋ผ๋ฏธํฐ์ ๋ฒ์๋ฅผ ์ง์ ํ๊ณ ์คํํด๋ณผ ์ ์์ต๋๋ค. ๋ํ, ์ฌ๋ฌ๊ฐ์ง ํ์ดํผ ํ๋ผ๋ฏธํฐ์ ๋ฐ๋ฅธ ์ฑ๋ฅ ์ถ์ด ๊ทธ๋ํ๋ฅผ ์ง์ ์๊ฐํํ์ฌ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ํ์ต์ด ์ ์ด๋ฃจ์ด์ง๊ณ ์๋์ง, ์ต์ ์ ํ๋ผ๋ฏธํฐ ์กฐํฉ์ ๋ฌด์์ธ์ง ์ง๊ด์ ์ผ๋ก ํ์ธํ ์ ์์ต๋๋ค.
- ํ์ต ์๊ฐ์ ๊ณ ๋ คํ์ฌ ์์น ๋ฐฉ์์ Random, Grid, Bayesian ์ค์ Random Search ๋ฐฉ์์ผ๋ก ์งํํ์ต๋๋ค.
- ์กฐ์ ํ ํ๋ผ๋ฏธํฐ: batch_size, optimizer_parameters_learning_rate, weight_decay
- learning rate๋ SentenceBERT Paper์์ ์ถ์ฒํ๋ ๊ฐ์ผ๋ก ์ ์ ํ์ต๋๋ค.
- ๊ณผ์ ํฉ ๋ฐฉ์ง์ ํ์ต ํจ์จ์ฑ์ ์ํด 1000 step ๋์ loss์ ๊ฐ์๊ฐ ์๋ค๋ฉด ํ์ต์ ๋ฉ์ถ๋ early terminate๋ฅผ ์งํํ์ต๋๋ค.
sweep_config = { 'method': 'random' } parameters_dict = { # optimizer๋ adamw๋ก ๊ณ ์ 'optimizer_params': { 'values' : [ {'lr':1e-4}, {'lr':3e-4}, {'lr':5e-5}] }, 'weight_decay':{ 'distribution': 'uniform', 'min': 0.01, 'max': 0.1 }, 'batch_size' :{ 'values': [16,32,64] # 64๋ฅผ ๋์ด๊ฐ ํ์๋ ์์ } } early_terminate = { 'type': 'hyperband', 'max_iter': 1000, }
1. Parallel Coordinates
- Axes(์ถ)์ ์กฐ์ ํ ํ๋ผ๋ฏธํฐ๋ฅผ ์๋ฏธํ๋ฉฐ, Lines(์ )์ ํ๋ผ๋ฏธํฐ ์กฐํฉ ๋ณ ๋จ์ผ ์คํ์ ๋ํ๋ ๋๋ค. ์ต๊ณ ์ฑ๋ฅ์ผ๋ก ์ด์ด์ง๋ ์กฐํฉ์ ์ด์ ์ ๋ง์ถ ๊ทธ๋ํ์ ๋๋ค.
- batch_size์ weight_decay์ ๊ฒฝ์ฐ ๋ถ์ฐ์ด ๋๊ณ , learning_rate๋ ๋ถ์ฐ์ด ๋ฎ์ต๋๋ค. ํนํ, ์ต๊ณ ์ฑ๋ฅ ๋ชจ๋ธ์ ๋ชจ๋ learning_rate๊ฐ 0.0001 ์ดํ์ ๋๋ค. ์ถํ ์๋ก์ด ํ๋ผ๋ฏธํฐ ์กฐํฉ์ ๋ง๋ค ๋, learing rate๋ 0.0001 ์ดํ์ ๊ฐ์ผ๋ก ์ค์ ํด์ผ ํจ์ ์ ์ ์์ต๋๋ค.
2. Parameter importance with respect to loss
- ํ๋ผ๋ฏธํฐ๊ฐ loss๋ฅผ ์์ธกํ๋๋ฐ ์ ์ฉํ ์ ๋๋ฅผ ๋ํ๋ด๋ Importance์, ํ๋ผ๋ฏธํฐ์ loss์ ์์ ์๊ด๊ด๊ณ๋ฅผ ๋ํ๋ด๋ Correlation ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ต๋๋ค.
- loss์ ๊ฐ์ฅ ๋ง์ ์ํฅ์ ๋ฏธ์น๋ ํ๋ผ๋ฏธํฐ์ ๋์ ์๊ด๊ด๊ณ๋ฅผ ๋ฏธ์น๋ faeture๋ optimizer parameter์ learning rate ์ด๋ฉฐ, weigth decay์ batch size๋ ๋น์ทํ ์ค์๋์ ์๊ด๊ด๊ณ๋ฅผ ๋ณด์
๋๋ค.
3. Change of Loss according to Step
- ๋ชจ๋ธ์ด ํ์ตํ๋ ๊ณผ์ ์์ ๊ฐ์ํ๋ loss๋ฅผ ๋ํ๋ธ ๊ทธ๋ํ์
๋๋ค. ํ๋ผ๋ฏธํฐ๋ณ๋ก ์ด๋ป๊ฒ ๋ค๋ฅธ์ง ํ์ธํ ์ ์์ต๋๋ค.
-
learning_rate
lr=0.0003์ผ ๊ฒฝ์ฐ ํ์ต์ด ์ ๋๋ก ์ด๋ฃจ์ด์ง์ง ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. lr=0.00005์ lr=0.0001๋ ๋น์ทํ ํ์ต์ ๋ณด์ด์ง๋ง, ์ ์์ ๊ฒฝ์ฐ ๋ ์์ ์ ์ผ๋ก ํ์ต๋๊ณ ์์ต๋๋ค.
-
batch_size
learning rate์์ ํ์ต์ด ๊ฑฐ์ ์ด๋ฃจ์ด์ง์ง ์๋ 0.0003๋ฅผ ์ ์ธํ๊ณ batch size๋ ์ด๋ค ํ์ต์ ๋ณด์ด๋์ง ํ์ธํ ์ ์์ต๋๋ค. batch size=64์ผ ๊ฒฝ์ฐ ๋น ๋ฅด๊ฒ loss๊ฐ ๊ฐ์ํ๋ ๋ชจ์ต์ ๋ณด์ด๋ฉฐ, batch size=16์ผ ๊ฒฝ์ฐ, ์ด๋ฐ์ ๋ถ์์ ํ๊ฒ loss๊ฐ ๊ฐ์ํจ์ ์ ์ ์์ต๋๋ค.
-
-
KLUE-STS Leaderboard
-
F1 score & Pearson's r
์ต์ข ๋ชจ๋ธ์ F1 Score๋ 0.84์ด๋ฉฐ, ํผ์ด์จ ์๊ด๊ณ์๋ 0.885์ ๋๋ค. KLUE-STS์ Leaderboard F1 score ๊ธฐ์ค 5์์ ๋๋ค.
๋ ๋ฌธ์ฅ์ ๋ฃ์ผ๋ฉด ํ์ต๋ sentence-klue-roberta-base ๋ชจ๋ธ์ ์ฌ์ฉํด ๋ฌธ์ฅ ์ ์ฌ๋๊ฐ(STS)๋ฅผ ๋์ถํฉ๋๋ค. ํ๋จ์ Serving Code๋ฅผ ์ฌ์ฉํ์ฌ API๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์๋ณผ ์ ์์ต๋๋ค. sentence-klue-roberta-base inference code
FastAPI ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ sentence-klue-roberta-base ๋ชจ๋ธ์ ์๋นํ์ต๋๋ค. ๋ณธ ๋ชจ๋ธ์ ๋ ๋ฌธ์ฅ์ ์ ์ฌ๋๋ฅผ ๋ฐํํ๋ STS(Sentence Textual Similarity) Task ๋ชจ๋ธ์ ๋๋ค. ๋ ๋ฌธ์ฅ์ด ๋ค์ด์ค๋ฉด ์ด๋ฅผ RestAPI๋ก inference ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค. ์ ์ฝ๋๋ ๋ชจ๋ํ ๋์ด ์์ต๋๋ค. Model์ ์๋นํ๊ธฐ์ํด Python ๊ธฐ๋ฐ ๋ฐฑ์ค๋ ํ๋ ์์ํฌ๋ฅผ ๊ณ ๋ฏผํ์ต๋๋ค. ์ฐ์ํ ๊ณต์ ๋ฌธ์์ ํฐ ์ํ๊ณ๋ฅผ ๊ฐ๊ณ ์๋ ์ฅ๊ณ ํ๋ ์์ํฌ์ ์ง๊ด์ ์ด๊ณ ๊ฐ๋ฒผ์ด ํ๋ผ์คํฌ ํ๋ ์์ํฌ๋ฅผ ๊ณ ๋ คํ์ต๋๋ค. ๊ณ ๋ฏผ ๋์ ๋น๊ต์ ์๋๊ฐ ๋น ๋ฅธ FastAPI ํ๋ ์์ํฌ๋ฅผ ์ ํํ์ต๋๋ค.
main.py๋ก ๋ ๋ฌธ์ฅ์ ๋ฃ์ด predict_sentences๋ฅผ ์คํํ ๊ฒฐ๊ณผ์ ๋๋ค. ๋ณ์๋ก ์ฃผ์ด์ง ๋ฌธ์ฅ(sentence),๋ ๋ฌธ์ฅ์ ์ฝ์ฌ์ธ ์ ์ฌ๋ ์ค์๊ฐ(score), binary ์ ์ฌ๋ ๊ฐ(pred), ์ฝ๋ ๋ฐํ์(runtime)์ ๋๋ค.
์ฝ๋๋ฅผ ๋๋ฆฌ๋ ๋ฐฉ๋ฒ, ๋ชจ๋ ์ค๋ช ๋ฑ ๋ ์์ธํ ์ค๋ช ์ ํด๋น Repository๋ฅผ ํ์ธํด์ฃผ์๊ธฐ ๋ฐ๋๋๋ค. ์๋น ์ฝ๋
-
Baseline ์ค์ ์๋ณธ ๋ฐ์ดํฐ์ ํ์ต ์์ด '์๋ณธ + Back Translation(BT) + Easy Data Augmentaton(EDA)'์ ๋ฐ์ดํฐ๋ก ํ์ต์ ์งํํ์ต๋๋ค. ํ๋ผ๋ฏธํฐ ํ๋ ์ดํ ๋ฐ์ดํฐ๋ณ ์ฑ๋ฅ ๋น๊ต๋ฅผ ์ํ baseline ๋ชจ๋ธ์ด ํ์ํจ์ ๊นจ๋ฌ์๊ณ , ์ดํ '์๋ณธ', '์๋ณธ+ BT'์ ๋ฐ์ดํฐ๋ก ํ์ต์ ์งํํ์ต๋๋ค. ์ ์์ '์๋ณธ' ๋ฐ์ดํฐ๋ก ํ์ตํ ๋ชจ๋ธ์ ๊ฒฝ์ฐ ํ์ต ๊ณผ์ ์์ data leakage๊ฐ ๋ฐ์ํ๊ณ , ์ต์ข ์ ์ผ๋ก ์ฌ์ฉํ ๋ชจ๋ธ์ '์๋ณธ + BT' ๋ฐ์ดํฐ์ '์๋ณธ + BT + EDA' ๋ฐ์ดํฐ๋ก ํ์ต์ํจ ๋ชจ๋ธ์ ๋๋ค. ์ถํ baseline์ด ๋ ์ ์๋ ์๋ณธ ๋ฐ์ดํฐ๋ก ํ์ตํด์ผ ํ ํ์๊ฐ ์์ต๋๋ค.
-
Early stopping wandb์ early_terminate๋ฅผ ์ฌ์ฉํ์์ผ๋, ํ์ต ๊ณผ์ ์์ loss๋ ์ง์์ ์ผ๋ก ๊ฐ์ํ๋๊ฒ ์๋๋ผ ์ฆ๊ฐ์ ๋ฐ๋ณตํ๊ธฐ ๋๋ฌธ์ early stopping์ด ์ฌ๋ฐ๋ฅด๊ฒ ์งํ๋์ง ์์์ต๋๋ค. wandb์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์๋, model ์์ฒด์์ early stopping์ ํ ์ ์๋ ๋ฐฉ์์ ๋ง๋ จํ์ฌ ๋ณด์ํ๋ค๋ฉด ๋ชจ๋ธ์ ๊ณผ์ ํฉ์ ํผํ๊ณ ํ์ต์ ํจ์จ์ฑ์ ๋์ผ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ธํ ๊ฒฝ์ฐ sentence bert ๊ด๋ จ์ผ๋ก๋ ์์ 2๊ฐ ๋งํฌ๋ง ๋ณด์ ๋ ๋ฉ๋๋ค.