Skip to content
forked from seawavve/NLU_STS

Training and service of the similarity analysis model of Korean sentences

Notifications You must be signed in to change notification settings

yjinheon/NLU_STS

ย 
ย 

Repository files navigation

NLU_STS

ํ•œ๊ตญ์–ด ๋ฌธ์žฅ์˜ ์œ ์‚ฌ๋„ ๋ถ„์„ ๋ชจ๋ธ ํ›ˆ๋ จ ๋ฐ ์„œ๋น„์Šคํ™”
ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ๋Š” ํ•™์Šต ๋ฐ์ดํ„ฐ ์…‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜๋ฏธ์  ํ…์ŠคํŠธ ์œ ์‚ฌ๋„ ๋ชจ๋ธ ํ›ˆ๋ จ

Process

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๊ฐ’์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

Data

๋ฐ์ดํ„ฐ๋กœ 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๋กœ ์ด์ง„ํ™”ํ•œ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค. image

Data Preprocessing

๋ชจ๋ธ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ๋ผ์น  ์ˆ˜ ์žˆ๋Š” 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

image

  • Preprocessed Dev Data

image

Data Augumentation

ใ€€๋ฐ์ดํ„ฐ ๊ณผ์ ํ•ฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฆ๊ฐ•ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋…ผ๋ฌธ์„ ์„œ์น˜ํ•˜์—ฌ Back Translation๊ณผ EDA ์ด ๋‘ ๊ฐ€์ง€ ํ…์ŠคํŠธ ์ฆ๊ฐ• ๊ธฐ๋ฒ•์„ ์„ ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์œ„ ๊ธฐ๋ฒ•์œผ๋กœ ํŽธํ–ฅ์ด ์ ๊ฒŒ ๋ฐœ์ƒํ•˜๋„๋ก ํ•˜๋ฉด์„œ ๊ธฐ์กด ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๋ฅผ ๋Š˜๋ ค ๋ชจ๋ธ์˜ ์ผ๋ฐ˜ํ™” ์„ฑ๋Šฅ์„ ์˜ฌ๋ ธ์Šต๋‹ˆ๋‹ค. ๋‘ ๋ฌธ์žฅ์˜ ์œ ์‚ฌ๋„๋ฅผ ๋„์ถœํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ๋‘ ๋ฌธ์žฅ ๋ชจ๋‘ ์ฆ๊ฐ• ์ฒ˜๋ฆฌํ•œ ๋ฐ์ดํ„ฐ์— ๊ธฐ์กด ๋ผ๋ฒจ๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ฐ์ดํ„ฐ ์˜ค์—ผ ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋‘ ๋ฌธ์žฅ ์ค‘ ํ•œ ๋ฌธ์žฅ์€ ์ฆ๊ฐ•๋œ ๋ฌธ์žฅ, ํ•œ ๋ฌธ์žฅ์€ ๊ธฐ์กด ๋ฌธ์žฅ์„ ํŽ˜์–ด๋กœ ๋ฌถ์–ด ์ฆ๊ฐ• ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ตœ์ข… ๋ฐ์ดํ„ฐ๋Š” Train๊ณผ Test๋ฅผ 9:1 ๋น„์œจ์ž…๋‹ˆ๋‹ค. Test ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ์ง€ํ‘œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ์…‹์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ํŒ€์€ ์กฐ๊ธˆ์ด๋ผ๋„ ๋” ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•™์Šตํ•ด์„œ ๋ชจ๋ธ ์ž์ฒด์˜ ์„ฑ๋Šฅ์„ ๋Œ์–ด์˜ฌ๋ฆฌ๋Š”๊ฒŒ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ ์œ„์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ๋น„์œจ์„ ์„ ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
Data Augumentation Code
Augumented Data Download
๋ฐ์ดํ„ฐ ๋น„์œจ ์„ ์ • ์ฐธ๊ณ ์ž๋ฃŒ

image

Back Translation

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์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹คํ—˜ ์ฝ”๋“œ image

EDA (Easy Data Augmentation)

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๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

Model

Pretrained Model

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

Sentence Bert๋Š” Computational Cost๊ฐ€ ํฌ๋ฉด์„œ ์„ฑ๋Šฅ๋„ ๊ธฐ์กด Embedding ๋ณด๋‹ค ๋‚ฎ๊ฒŒ ๋‚˜ํƒ€๋‚˜๋Š” BERT์˜ Sentence Embedding ๋ฐฉ์‹์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ ๋˜์˜€์œผ๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

Siames Neural Network

  • Siames Network๋Š” ๊ฐ™์€ ๊ฐ€์ค‘์น˜๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ๋กœ ์ด ๊ตฌ์กฐ ํ•˜์—์„œ ๋‘ ๋ฌธ์žฅ์˜ Embedding์ด ๊ฐ๊ฐ ๋”ฐ๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.
  • ์ดํ›„ ๊ฐ Embedding Vector์— ๋Œ€ํ•ด Cosine Similarity ๋‚˜ Manhattan Distance ๋ฅผ ๊ณ„์‚ฐํ•ด ์œ ์‚ฌ๋„๋ฅผ ์‚ฐ์ถœํ•ฉ๋‹ˆ๋‹ค.
  • ํ•™์Šต ์‹œ์—๋Š” ๋ฌธ์žฅ์˜ pair๊ฐ€ ๊ฐ™์€ label์ด๋ผ๋ฉด ์œ ์‚ฌ๋„๊ฐ€ ๊ฐ€๊นŒ์›Œ์ง€๋„๋ก, ๋‹ค๋ฅด๋‹ค๋ฉด ๋ฉ€์–ด์ง€๋„๋ก ๊ฐ€์ค‘์น˜๊ฐ€ ํ•™์Šต๋ฉ๋‹ˆ๋‹ค.

Computational Efficiency

  • BERT๋Š” pair๋‹จ์œ„๋กœ ํ•œ๋ฒˆ์— transformer encoder์— ๋ฐ›์•„์„œ inferenceํ•˜๋Š” cross encoder ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ธฐ์— Computational Cost๊ฐ€ ์ปค์„œ Servingํ™˜๊ฒฝ์—์„œ ์“ฐ๊ธฐ ์–ด๋ ต๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Siames Network ํ•˜์—์„œ๋Š” ์ž…๋ ฅ์„ pair๋กœ ๋ฐ›๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ฐ๊ฐ์˜ ๋ฌธ์žฅ์— ๋Œ€ํ•œ Embedding์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ธฐ๋•Œ๋ฌธ์— BERT๋กœ 65์‹œ๊ฐ„ ๊ฑธ๋ฆฌ๋˜ ์ž‘์—…์„ 5์ดˆ๋งŒ์— ๋๋‚ด๋Š” Computatinal Efficientํ•œ ๋ชจ์Šต์„ ๋ณด์ž…๋‹ˆ๋‹ค.

Training

  • ๋ฐ์ดํ„ฐ ์†Œ์Šค์˜ ์ถœ์ฒ˜๊ฐ€ ๋‹ค์–‘ํ•˜๊ธฐ์— ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋‹จ์–ด์˜ ์˜๋ฏธ๋ฅผ ์ž„๋ฒ ๋”ฉ์— ๋ฐ˜์˜ํ•˜๊ณ ์ž Mean Pooling ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • objective function์œผ๋กœ๋Š” Cosine Similarity ๊ธฐ๋ฐ˜ MSE loss๋ฅผ ์‚ฌ์šฏํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • Optimizer๋กœ๋Š” AdamW๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • early train sample๋กœ ์ธํ•œ ํŽธํ–ฅ๋œ ํ•™์Šต์„ ๋ง‰๊ธฐ ์œ„ํ•ด linear learing rate scheduler์—์„œ์˜ warmup step์„ ํ•™์Šต๋ฐ์ดํ„ฐ์˜ 10% ๋กœ ์„ค์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Param Tuning

  • ํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹์€ 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 ์ดํ•˜์˜ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•จ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. image

2. Parameter importance with respect to loss

  • ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ loss๋ฅผ ์˜ˆ์ธกํ•˜๋Š”๋ฐ ์œ ์šฉํ•œ ์ •๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” Importance์™€, ํŒŒ๋ผ๋ฏธํ„ฐ์™€ loss์˜ ์–‘์˜ ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” Correlation ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • loss์— ๊ฐ€์žฅ ๋งŽ์€ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ๋†’์€ ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ๋ฏธ์น˜๋Š” faeture๋Š” optimizer parameter์˜ learning rate ์ด๋ฉฐ, weigth decay์™€ batch size๋Š” ๋น„์Šทํ•œ ์ค‘์š”๋„์™€ ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ๋ณด์ž…๋‹ˆ๋‹ค.
    image

3. Change of Loss according to Step

  • ๋ชจ๋ธ์ด ํ•™์Šตํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ฐ์†Œํ•˜๋Š” loss๋ฅผ ๋‚˜ํƒ€๋‚ธ ๊ทธ๋ž˜ํ”„์ž…๋‹ˆ๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ๋ณ„๋กœ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • learning_rate
      lr=0.0003์ผ ๊ฒฝ์šฐ ํ•™์Šต์ด ์ œ๋Œ€๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. lr=0.00005์™€ lr=0.0001๋Š” ๋น„์Šทํ•œ ํ•™์Šต์„ ๋ณด์ด์ง€๋งŒ, ์ „์ž์˜ ๊ฒฝ์šฐ ๋” ์•ˆ์ •์ ์œผ๋กœ ํ•™์Šต๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
      image

    • batch_size
      learning rate์—์„œ ํ•™์Šต์ด ๊ฑฐ์˜ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๋Š” 0.0003๋ฅผ ์ œ์™ธํ•˜๊ณ  batch size๋Š” ์–ด๋–ค ํ•™์Šต์„ ๋ณด์ด๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. batch size=64์ผ ๊ฒฝ์šฐ ๋น ๋ฅด๊ฒŒ loss๊ฐ€ ๊ฐ์†Œํ•˜๋Š” ๋ชจ์Šต์„ ๋ณด์ด๋ฉฐ, batch size=16์ผ ๊ฒฝ์šฐ, ์ดˆ๋ฐ˜์— ๋ถˆ์•ˆ์ •ํ•˜๊ฒŒ loss๊ฐ€ ๊ฐ์†Œํ•จ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
      image

Metric

  • KLUE-STS Leaderboard

    image
  • F1 score & Pearson's r

    ์ตœ์ข… ๋ชจ๋ธ์˜ F1 Score๋Š” 0.84์ด๋ฉฐ, ํ”ผ์–ด์Šจ ์ƒ๊ด€๊ณ„์ˆ˜๋Š” 0.885์ž…๋‹ˆ๋‹ค. KLUE-STS์˜ Leaderboard F1 score ๊ธฐ์ค€ 5์œ„์ž…๋‹ˆ๋‹ค.

    image image

Evaluation

๋‘ ๋ฌธ์žฅ์„ ๋„ฃ์œผ๋ฉด ํ•™์Šต๋œ sentence-klue-roberta-base ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด ๋ฌธ์žฅ ์œ ์‚ฌ๋„๊ฐ’(STS)๋ฅผ ๋„์ถœํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‹จ์— Serving Code๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ API๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. sentence-klue-roberta-base inference code

Serving

FastAPI ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ sentence-klue-roberta-base ๋ชจ๋ธ์„ ์„œ๋น™ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ณธ ๋ชจ๋ธ์€ ๋‘ ๋ฌธ์žฅ์˜ ์œ ์‚ฌ๋„๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” STS(Sentence Textual Similarity) Task ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. ๋‘ ๋ฌธ์žฅ์ด ๋“ค์–ด์˜ค๋ฉด ์ด๋ฅผ RestAPI๋กœ inference ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์œ„ ์ฝ”๋“œ๋Š” ๋ชจ๋“ˆํ™” ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Model์„ ์„œ๋น™ํ•˜๊ธฐ์œ„ํ•ด Python ๊ธฐ๋ฐ˜ ๋ฐฑ์•ค๋“œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ณ ๋ฏผํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ์ˆ˜ํ•œ ๊ณต์‹ ๋ฌธ์„œ์™€ ํฐ ์ƒํƒœ๊ณ„๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ์žฅ๊ณ  ํ”„๋ ˆ์ž„์›Œํฌ์™€ ์ง๊ด€์ ์ด๊ณ  ๊ฐ€๋ฒผ์šด ํ”Œ๋ผ์Šคํฌ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ณ ๋ คํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณ ๋ฏผ ๋์— ๋น„๊ต์  ์†๋„๊ฐ€ ๋น ๋ฅธ FastAPI ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

main.py๋กœ ๋‘ ๋ฌธ์žฅ์„ ๋„ฃ์–ด predict_sentences๋ฅผ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค. ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง„ ๋ฌธ์žฅ(sentence),๋‘ ๋ฌธ์žฅ์˜ ์ฝ”์‚ฌ์ธ ์œ ์‚ฌ๋„ ์‹ค์ˆ˜๊ฐ’(score), binary ์œ ์‚ฌ๋„ ๊ฐ’(pred), ์ฝ”๋“œ ๋Ÿฐํƒ€์ž„(runtime)์ž…๋‹ˆ๋‹ค. image

์ฝ”๋“œ๋ฅผ ๋Œ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•, ๋ชจ๋“ˆ ์„ค๋ช… ๋“ฑ ๋” ์ž์„ธํ•œ ์„ค๋ช…์€ ํ•ด๋‹น Repository๋ฅผ ํ™•์ธํ•ด์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์„œ๋น™ ์ฝ”๋“œ

Future work

  • 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์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์•ˆ์„ ๋งˆ๋ จํ•˜์—ฌ ๋ณด์™„ํ•œ๋‹ค๋ฉด ๋ชจ๋ธ์˜ ๊ณผ์ ํ•ฉ์„ ํ”ผํ•˜๊ณ  ํ•™์Šต์˜ ํšจ์œจ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

References

STS

EDA

model

๊ธ‰ํ•  ๊ฒฝ์šฐ sentence bert ๊ด€๋ จ์œผ๋กœ๋Š” ์œ„์˜ 2๊ฐœ ๋งํฌ๋งŒ ๋ณด์…”๋„ ๋ฉ๋‹ˆ๋‹ค.

Cosine Similarity

Framework

Wandb

FastAPI

About

Training and service of the similarity analysis model of Korean sentences

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 86.3%
  • Python 13.7%