๐Ÿค– 2โ€2๋‹จ๊ณ„ : ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ์ถ”๋ก  ์„ฑ๋Šฅ ์ตœ์ ํ™” - 100-hours-a-week/7-team-ddb-wiki GitHub Wiki

๐Ÿ“˜ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ ๋ฐ ์ถ”๋ก  ์ตœ์ ํ™” ๊ณ„ํš

1. ๊ธฐ์กด ๋ชจ๋ธ ์ถ”๋ก  ์„ฑ๋Šฅ ์ง€ํ‘œ

์žฅ์†Œ ์ถ”์ฒœ ์‹œ์Šคํ…œ์—์„œ ์œ ์‚ฌํ•œ ์žฅ์†Œ ํ‚ค์›Œ๋“œ๋ฅผ ์ถ”์ฒœํ•˜๊ธฐ ์œ„ํ•ด,
์‚ฌ์šฉ์ž ์ž…๋ ฅ์—์„œ ์ถ”์ถœ๋œ ํ‚ค์›Œ๋“œ๋ฅผ ๋ฒกํ„ฐํ™”ํ•˜์—ฌ DB ๋‚ด ํ‚ค์›Œ๋“œ ๋ฒกํ„ฐ์™€ ์˜๋ฏธ ๊ธฐ๋ฐ˜ ์œ ์‚ฌ๋„๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์ฑ„ํƒํ•จ.
์ด์— ๋”ฐ๋ผ ์ž„๋ฒ ๋”ฉ ๋ฒกํ„ฐ ํ’ˆ์งˆ, ๋ฌธ๋งฅ ์œ ์‚ฌ๋„, ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ์„ ๊ธฐ์ค€์œผ๋กœ 4์ข…์˜ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ์„ ๋น„๊ต ํ‰๊ฐ€ํ•จ.

ํ…Œ์ŠคํŠธ๋Š” Colab CPU ํ™˜๊ฒฝ์—์„œ ์ˆ˜ํ–‰๋˜์—ˆ์œผ๋ฉฐ,
๋ชจ๋“  ๋ชจ๋ธ์€ ํ‚ค์›Œ๋“œ 10๊ฐœ ๋‚ด์™ธ์˜ ์งง์€ ์ž…๋ ฅ์— ๋Œ€ํ•ด encode() ์ˆ˜ํ–‰ ์‹œ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•จ.

๐Ÿ“Œ ๋ชจ๋ธ ํ›„๋ณด๊ตฐ ์„ ์ • ๊ธฐ์ค€

  • ์‹ค์ œ ์„œ๋น„์Šค๋Š” ์งง์€ ํ‚ค์›Œ๋“œ ๊ธฐ๋ฐ˜์˜ ์‹ค์‹œ๊ฐ„ ๋ฒกํ„ฐ ๊ฒ€์ƒ‰์ด ์ค‘์‹ฌ์ด๋ฏ€๋กœ,
    ๊ฒฝ๋Ÿ‰ ๊ตฌ์กฐ์™€ ๋น ๋ฅธ ์ถ”๋ก  ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•˜๋Š” MiniLM ๊ณ„์—ด์„ ์šฐ์„  ์„ ์ •ํ•จ
  • ํ•œ๊ตญ์–ด ํ‘œํ˜„๋ ฅ ๊ฐ•ํ™”๋ฅผ ์œ„ํ•œ ๋น„๊ต๊ตฐ์œผ๋กœ, ๊ตญ๋‚ด์—์„œ ์„ฑ๋Šฅ์ด ์ž…์ฆ๋œ ํ•œ๊ตญ์–ด ํŠนํ™” ๋ชจ๋ธ์ธ KR-SBERT๋ฅผ ํฌํ•จํ•จ
  • ๋‹ค๊ตญ์–ด ๋Œ€์‘๋ ฅ ๋˜๋Š” ๊ฒ€์ƒ‰ ์‘๋‹ต ์ตœ์ ํ™”์— ์ดˆ์ ์„ ๋‘” distiluse-multilingual, multi-qa-MiniLM๋„ ํ›„๋ณด๊ตฐ์— ํฌํ•จํ•จ

๐Ÿ“Š ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ๋ณ„ ๊ตฌ์กฐ ๋ฐ ํŠน์„ฑ ์š”์•ฝ

๋ชจ๋ธ๋ช… ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜ ์–ธ์–ด ์ง€์› ํ•™์Šต ๋ชฉ์  ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜ (๋Œ€๋žต) ํŠน์ด ์‚ฌํ•ญ
paraphrase-MiniLM-L6-v2 MiniLM (Transformer) ์˜์–ด Paraphrase, STS ~22M ๊ฒฝ๋Ÿ‰ ๊ตฌ์กฐ, ๋น ๋ฅธ ์‘๋‹ต
multi-qa-MiniLM-L6-cos-v1 MiniLM ์˜์–ด QA ๊ฒ€์ƒ‰ ์ตœ์ ํ™” ~22M QA ํŠนํ™”, ์ผ๋ฐ˜ ์œ ์‚ฌ๋„ ์•ฝํ•จ
KR-SBERT-V40K-klueNLI-augSTS KoBERT + SBERT ํ•œ๊ตญ์–ด NLI, STS ~110M ํ•œ๊ตญ์–ด ๋ฌธ๋งฅ ํ‘œํ˜„์— ๊ฐ•ํ•จ
distiluse-base-multilingual-cased-v1 DistilBERT + USE ๋‹ค๊ตญ์–ด STS ~66M ์–ธ์–ด ๋ฒ”์šฉ์„ฑ, ์„ฑ๋Šฅ์€ ํ‰๊ท ์ 

๐Ÿ“Š ๋ชจ๋ธ๋ณ„ ์ž„๋ฒ ๋”ฉ ํ’ˆ์งˆ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๋น„๊ต

๋ชจ๋ธ๋ช… ํ‰๊ท  Cosine ์œ ์‚ฌ๋„ ํ‰๊ท  L2 ์œ ์‚ฌ๋„ ์ •์„ฑ ํ‰๊ฐ€ CPU ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ (MB)
paraphrase-MiniLM-L6-v2 0.9759 0.3843 โš ๏ธ ์œ ์‚ฌ ํ˜•ํƒœ ์œ„์ฃผ ๋งค์นญ 36.02
multi-qa-MiniLM-L6-cos-v1 0.8879 0.8297 โš ๏ธ ์œ ์‚ฌ ํ˜•ํƒœ ์œ„์ฃผ ๋งค์นญ 37.20
KR-SBERT-V40K-klueNLI-augSTS 0.7796 0.1043 โœ… ํ•œ๊ตญ์–ด ๋ฌธ๋งฅ ์ดํ•ด๋„ ์šฐ์ˆ˜ 332.20
distiluse-base-multilingual-cased-v1 0.7871 0.7567 โŒ ํ‘œํ˜„๋ ฅ ๋ถˆ์•ˆ์ • 165.45

๐Ÿง  ์ •์„ฑ์  ์œ ์‚ฌ๋„ ํ‰๊ฐ€ ์˜ˆ์‹œ (๋ชจ๋ธ ๊ฐ„ ๋น„๊ต)

์ž…๋ ฅ ํ‚ค์›Œ๋“œ MiniLM-L6-v2 KR-SBERT multi-qa-MiniLM distiluse-multilingual
24์‹œ๊ฐ„ ์นดํŽ˜ 24์‹œ๊ฐ„ ์นดํŽ˜ (โœ… 1.00) 24์‹œ๊ฐ„ ์นดํŽ˜ (โœ… 1.00) 24์‹œ๊ฐ„ ์นดํŽ˜ (โœ… 1.00) 24์‹œ๊ฐ„ ์นดํŽ˜ (โœ… 1.00)
๊ฐ์„ฑ ์ข‹์€ ์นดํŽ˜ ๊ฐ์„ฑ ์นดํŽ˜ (โœ… 0.99) ๊ฐ์„ฑ ์นดํŽ˜ (โœ… 0.83) ๊ฐ์„ฑ ์นดํŽ˜ (โœ… 0.98) ๊ฒฝ์น˜ ์ข‹์€ ์นดํŽ˜ (โš ๏ธ 0.96)
๊ฐ•์•„์ง€ ๋™๋ฐ˜ ์นดํŽ˜ ์กฐ์šฉํ•œ ๋™๋„ค ์นดํŽ˜ (โš ๏ธ 0.98) ๋ฐ˜๋ ค๋™๋ฌผ๋™๋ฐ˜ (โœ… 0.59) ๊ณต๊ฐ„ ๋„“์€ ์นดํŽ˜ (โš ๏ธ 0.88) ๋กœ์ปฌ ์ปคํ”ผ ๋ง›์ง‘ (โŒ 0.69)
๊ฒฝ์น˜ ์ข‹์€ ์นดํŽ˜ ๊ฒฝ์น˜ ์ข‹์€ ์นดํŽ˜ (โœ… 1.00) ๊ฒฝ์น˜ ์ข‹์€ ์นดํŽ˜ (โœ… 1.00) ๊ฒฝ์น˜ ์ข‹์€ ์นดํŽ˜ (โœ… 1.00) ๊ฒฝ์น˜ ์ข‹์€ ์นดํŽ˜ (โœ… 1.00)

โœจ ์ •์„ฑ ํ‰๊ฐ€ ์ด๋ชจํ‹ฐ์ฝ˜ ๊ธฐ์ค€

์ด๋ชจํ‹ฐ์ฝ˜ ์˜๋ฏธ
โœ… ์˜๋ฏธ๊ฐ€ ๊ฑฐ์˜ ๋™์ผํ•˜๊ฑฐ๋‚˜ ๋งค์šฐ ์œ ์‚ฌ (์ถ”์ฒœ์— ์‚ฌ์šฉ ๊ฐ€๋Šฅ)
โš ๏ธ ์ผ๋ถ€ ์œ ์‚ฌํ•˜๋‚˜ ๋ฌธ๋งฅ ์˜คํ•ด ๊ฐ€๋Šฅ์„ฑ ์žˆ์Œ (์ฃผ์˜ ํ•„์š”)
โŒ ์˜๋ฏธ ์™œ๊ณก, ์ถ”์ฒœ ๋งฅ๋ฝ์—์„œ ๋ถ€์ ์ ˆํ•จ (์‚ฌ์šฉ ๋ถˆ๊ฐ€)

โœ… ๊ฒฐ๋ก  ๋ฐ ๋„์ž… ๋ชจ๋ธ

  • ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ, KR-SBERT๋Š” ์ •์„ฑ ํ‰๊ฐ€์—์„œ ๊ฐ€์žฅ ๋›ฐ์–ด๋‚œ ๋ฌธ๋งฅ ํ•ด์„๋ ฅ์„ ๋ณด์˜€์œผ๋ฉฐ,
    ํŠนํžˆ ํ‚ค์›Œ๋“œ ์ผ๋ฐ˜ํ™” ๋ฐ ์˜๋ฏธ ์น˜ํ™˜ ์ธก๋ฉด์—์„œ ์‹ค์ œ ์ถ”์ฒœ ํ’ˆ์งˆ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์‘๋‹ต์„ ์ƒ์„ฑํ•จ
  • paraphrase-MiniLM-L6-v2์™€ multi-qa-MiniLM์€ ์ •์„ฑ ํ‰๊ฐ€๊ฐ€ ๋งค์šฐ ์œ ์‚ฌํ•œ ์ˆ˜์ค€์ด์—ˆ์œผ๋‚˜,
    paraphrase-MiniLM์€ ๋ฌธ์žฅ ์˜๋ฏธ ์œ ์‚ฌ๋„(STS)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•™์Šต๋œ ๋ชจ๋ธ๋กœ,
    ์žฅ์†Œ ์ถ”์ฒœ์—์„œ ์š”๊ตฌ๋˜๋Š” "ํ‚ค์›Œ๋“œ ๊ฐ„ ์˜๋ฏธ ๊ธฐ๋ฐ˜ ์œ ์‚ฌ๋„ ๊ณ„์‚ฐ" ๋ชฉ์ ์— ๋” ์ ํ•ฉํ•˜๋‹ค๊ณ  ํŒ๋‹จ๋จ
  • ๋‹ค๋งŒ ๋ณธ ์„œ๋น„์Šค์—์„œ๋Š” ์‹ค์‹œ๊ฐ„์„ฑ๋ณด๋‹ค ์ถ”์ฒœ ํ’ˆ์งˆ์˜ ์ •๋ฐ€๋„์™€ ๋ฌธ๋งฅ ์ ํ•ฉ์„ฑ์ด ๋”์šฑ ์ค‘์š”ํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•˜์˜€๊ณ ,
    AI ์„œ๋ฒ„์—์„œ ๋‹ค๋ฅธ task๋Š” GPU๋กœ ๋ถ„๋ฆฌ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๋‹ค์†Œ ํฌ๋”๋ผ๋„ ์ˆ˜์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•จ
  • ๋”ฐ๋ผ์„œ ์ตœ์ข…์ ์œผ๋กœ๋Š” KR-SBERT-V40K-klueNLI-augSTS๋ฅผ ์ฃผ๋ ฅ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ๋กœ ์„ ์ •ํ•˜์˜€์œผ๋ฉฐ,
    ํ–ฅํ›„ ์„ฑ๋Šฅ-์ž์› ๊ท ํ˜•์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ MiniLM-L6-v2๋ฅผ ๋ณด์กฐ ๋ชจ๋ธ ๋˜๋Š” ๊ต์ฒด ๋ชจ๋ธ๋กœ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„ํ•จ

2. ์‹๋ณ„๋œ ์„ฑ๋Šฅ ๋ณ‘๋ชฉ ์š”์†Œ ๋ฐ ์›์ธ ๋ถ„์„

์ตœ์ข… ๋„์ž… ๋ชจ๋ธ์ธ KR-SBERT-V40K-klueNLI-augSTS๋Š”
์ •์„ฑ ํ‰๊ฐ€ ๊ธฐ์ค€์œผ๋กœ ๊ฐ€์žฅ ๋›ฐ์–ด๋‚œ ๋ฌธ๋งฅ ํ•ด์„๋ ฅ์„ ๋ณด์˜€์œผ๋ฉฐ,
์‹ค์ œ ํ…Œ์ŠคํŠธ์—์„œ๋„ ๋†’์€ ์ถ”์ฒœ ํ’ˆ์งˆ์„ ํ™•์ธํ•จ.
๊ทธ๋Ÿฌ๋‚˜ ์„œ๋น„์Šค ๊ด€์ ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ณ‘๋ชฉ ์š”์†Œ๊ฐ€ ๋ฐœ๊ฒฌ๋˜์—ˆ๊ณ , ์ด์— ๋Œ€ํ•œ ๊ฐœ์„  ๋ฐฉํ–ฅ์„ ์ •๋ฆฌํ•จ.

๐Ÿ“ ๋†’์€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์œผ๋กœ ์ธํ•œ ์ž์› ์ œ์•ฝ

KR-SBERT๋Š” KoBERT ๊ธฐ๋ฐ˜ ๋Œ€ํ˜• ๊ตฌ์กฐ๋กœ, ๋ชจ๋ธ ๋กœ๋”ฉ ์‹œ ์•ฝ 330MB ์ด์ƒ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•จ.
Jetson Orin Nano์™€ ๊ฐ™์€ ๊ฒฝ๋Ÿ‰ AI ์„œ๋ฒ„์—์„œ ๋‹จ์ผ ๋ชจ๋ธ๋งŒ ์šด์šฉ ๊ฐ€๋Šฅํ•œ ํ™˜๊ฒฝ์—์„œ๋Š”
๋‹ค๋ฅธ AI ๊ธฐ๋Šฅ(์˜ˆ: ํ‚ค์›Œ๋“œ ์ถ”์ถœ, ์š”์•ฝ ๋“ฑ)๊ณผ ๋ณ‘ํ–‰ ์šด์šฉ์ด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Œ.

๐Ÿ’ก ๊ฐœ์„  ๋ฐฉํ–ฅ

  • GPU ๊ธฐ๋ฐ˜ ๋ณ‘๋ ฌ ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด ์ฃผ์š” ์ถ”๋ก  ๊ธฐ๋Šฅ์„ ๋ถ„์‚ฐ
  • ์ถ”๋ก  ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ ์ƒํ™ฉ์— ๋”ฐ๋ผ, ๋ชจ๋ธ ์‹คํ–‰ ์šฐ์„ ์ˆœ์œ„ ์„ค์ • ๋˜๋Š” ํ”„๋กœ์„ธ์Šค ์ˆœํ™˜ ๊ด€๋ฆฌ
  • ์„ฑ๋Šฅ ์ตœ์ ํ™”๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ MiniLM ๊ธฐ๋ฐ˜ ๊ฒฝ๋Ÿ‰ ๋ชจ๋ธ๊ณผ์˜ ๊ต๋Œ€ ์šด์šฉ ๊ณ ๋ ค (์˜ˆ: ์ €์‚ฌ์–‘ fallback)

๐Ÿ“ cosine ์œ ์‚ฌ๋„ ๊ธฐ๋ฐ˜ ์ถ”์ฒœ์˜ ์™œ๊ณก ๊ฐ€๋Šฅ์„ฑ

KR-SBERT๋Š” ๋ฌธ๋งฅ์ ์œผ๋กœ ์œ ์‚ฌํ•œ ํ‚ค์›Œ๋“œ๋ฅผ ์ž˜ ์ถ”์ถœํ•˜์ง€๋งŒ,
์ž„๋ฒ ๋”ฉ ๋ฒกํ„ฐ ๊ฐ„ cosine ์œ ์‚ฌ๋„ ์ ์ˆ˜๋Š” ์ „๋ฐ˜์ ์œผ๋กœ ๋‚ฎ์€ ๋ฒ”์œ„(0.7~0.9)์— ๋ฐ€์ง‘๋จ.
์ด๋กœ ์ธํ•ด ์ถ”์ฒœ ํ›„๋ณด ์ •๋ ฌ ์‹œ ์ ์ˆ˜ ์ฐจ์ด๊ฐ€ ๋šœ๋ ทํ•˜์ง€ ์•Š๊ฑฐ๋‚˜, ์˜๋ฏธ๋ณด๋‹ค ์ˆซ์ž์— ์˜์กดํ•œ ์™œ๊ณก์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ.

๐Ÿ’ก ๊ฐœ์„  ๋ฐฉํ–ฅ

  • cosine ์œ ์‚ฌ๋„ ๋Œ€์‹  ์‹ค์ œ ์ •๋Ÿ‰ ํ‰๊ฐ€์—์„œ ํ‰๊ท ์ด ๋งค์šฐ ๋‚ฎ์•˜๋˜ L2 ๊ฑฐ๋ฆฌ ๊ธฐ๋ฐ˜ ์œ ์‚ฌ๋„ ๊ณ„์‚ฐ ๋ฐฉ์‹์œผ๋กœ ์ „ํ™˜
  • ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ๋ณ„ ๋ฒกํ„ฐ ๋ถ„ํฌ ํŠน์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ, ์œ ์‚ฌ๋„ ์ง€ํ‘œ๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ์„ ํƒํ•˜๋Š” ๊ตฌ์กฐ ์„ค๊ณ„

3. ์ ์šฉํ•  ์ตœ์ ํ™” ๊ธฐ๋ฒ•์˜ ๊ตฌ์ฒด์  ๊ณ„ํš

์ตœ์ข… ์„ ์ •๋œ ์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ KR-SBERT-V40K-klueNLI-augSTS๋Š”
๋ฌธ๋งฅ ํ•ด์„๋ ฅ๊ณผ ์˜๋ฏธ ํ™•์žฅ ์ธก๋ฉด์—์„œ ์šฐ์ˆ˜ํ•œ ์„ฑ๋Šฅ์„ ๋ณด์˜€์œผ๋‚˜,
์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ, ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰, ๊ฒ€์ƒ‰ ํšจ์œจ์„ฑ ๋“ฑ์—์„œ์˜ ์šด์˜ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ๊ณ„๋ณ„ ์ „๋žต์„ ์ ์šฉํ•จ.

๐ŸŽฏ ์ตœ์ ํ™” ๋ชฉํ‘œ

  • ๋ฒกํ„ฐ ์ƒ์„ฑ ํšจ์œจํ™”: ์‹ค์‹œ๊ฐ„ ํ‚ค์›Œ๋“œ ๋งค์นญ์„ 0.1์ดˆ ์ด๋‚ด ์ฒ˜๋ฆฌ
  • ๊ฒ€์ƒ‰ ์ •๋ฐ€๋„ ์œ ์ง€: ์˜๋ฏธ ์œ ์‚ฌ์„ฑ ๊ธฐ๋ฐ˜ ์ถ”์ฒœ ํ’ˆ์งˆ ๋ณด์กด
  • ๋ฆฌ์†Œ์Šค ์ ˆ์•ฝ: ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ์ตœ์†Œํ™” + ์ค‘๋ณต ๋ฒกํ„ฐ ์ƒ์„ฑ ๋ฐฉ์ง€

โœ… ์ ์šฉ ์ „๋žต

๐Ÿ”น 1๋‹จ๊ณ„: ์žฅ์†Œ ํ‚ค์›Œ๋“œ ๋ฒกํ„ฐ ์‚ฌ์ „ ๊ตฌ์ถ• ๋ฐ ์ธ๋ฑ์Šค ์ตœ์ ํ™”

  • ์žฅ์†Œ ํ‚ค์›Œ๋“œ ๋ชฉ๋ก์„ ์‚ฌ์ „ ์ž„๋ฒ ๋”ฉํ•˜์—ฌ ์„œ๋ฒ„ ๊ธฐ๋™ ์‹œ ๋ฒกํ„ฐ DB์— ์ ์žฌ
  • ๋ฒกํ„ฐ ์ €์žฅ ๊ตฌ์กฐ๋Š” FAISS ๊ธฐ๋ฐ˜ FlatL2 ์ธ๋ฑ์Šค๋ฅผ ์šฐ์„  ์‚ฌ์šฉ
  • ์ดํ›„ ๋Œ€์šฉ๋Ÿ‰ ์ „ํ™˜ ์‹œ Product Quantization (PQ) ๋ฐฉ์‹ ์ ์šฉ ๊ณ ๋ ค
    โ†’ ๋ฒกํ„ฐ๋ฅผ ์••์ถ• ์ €์žฅํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ตœ๋Œ€ 10~30๋ฐฐ ์ ˆ๊ฐ ๊ฐ€๋Šฅ
    โ†’ ๊ทผ์‚ฌ ๊ฒ€์ƒ‰ ๊ธฐ๋ฐ˜์œผ๋กœ ์†๋„ ํ–ฅ์ƒ, ์ •ํ™•ํ•œ ์ •๋ ฌ์€ ์žฌ๊ฒ€์ƒ‰์œผ๋กœ ๋ณด์™„

๐Ÿ”น 2๋‹จ๊ณ„: ์œ ์‚ฌ๋„ ๊ณ„์‚ฐ ๊ธฐ์ค€ ๊ฐœ์„  ๋ฐ soft-filter ๋„์ž…

  • KR-SBERT๋Š” cosine ์œ ์‚ฌ๋„๊ฐ€ ๋‚ฎ๊ฒŒ ๋ถ„ํฌ๋˜๋ฉฐ ์ˆœ์œ„ ์ •๋ ฌ์— ํ•œ๊ณ„ ๋ฐœ์ƒ
    โ†’ L2 ๊ฑฐ๋ฆฌ ๊ธฐ๋ฐ˜ ์œ ์‚ฌ๋„ ์ ์ˆ˜๋กœ ์ „ํ™˜ํ•˜์—ฌ ์•ˆ์ •์„ฑ ํ™•๋ณด
  • ์œ ์‚ฌ๋„ ๊ธฐ์ค€์€ soft-filter ๋ฐฉ์‹์œผ๋กœ ๋ณด์™„:
    โ†’ ์ผ์ • ๊ฑฐ๋ฆฌ ์ดํ•˜(์˜ˆ: L2 ์œ ์‚ฌ๋„ โ‰ฅ 0.7)๋Š” ์ถ”์ฒœ, ๊ทธ ์™ธ๋Š” fallback ํ›„๋ณด๋กœ ํ™œ์šฉ

๐Ÿ”น 3๋‹จ๊ณ„: ์ž„๋ฒ ๋”ฉ ์ฒ˜๋ฆฌ ๊ตฌ์กฐ์˜ ํšจ์œจ์  ๋ฐฐ์น˜ ๋ฐ ์บ์‹œ ํ™œ์šฉ

  • ์‹ค์‹œ๊ฐ„ ์‚ฌ์šฉ์ž ์ž…๋ ฅ๋งŒ ์ž„๋ฒ ๋”ฉ ์ฒ˜๋ฆฌ, ์žฅ์†Œ ํ‚ค์›Œ๋“œ๋Š” ์„œ๋ฒ„ ๊ธฐ๋™ ์‹œ ์บ์‹ฑ
  • ์ž„๋ฒ ๋”ฉ ์บ์‹œ๋Š” ๋™์ผ ์‚ฌ์šฉ์ž ์ฟผ๋ฆฌ์— ๋Œ€ํ•ด ์ค‘๋ณต encode ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ๊ตฌ์กฐ๋กœ ํ™œ์šฉ
  • ๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด float16 ์ „ํ™˜, ๋˜๋Š” ONNX ๊ธฐ๋ฐ˜ ์ถ”๋ก  ๊ตฌ์กฐ ์ „ํ™˜ ๊ฐ€๋Šฅ
  • ๋ฉ€ํ‹ฐ ์ธ์Šคํ„ด์Šค ํ™˜๊ฒฝ์—์„œ์˜ ํ™•์žฅ์„ ๋Œ€๋น„ํ•˜์—ฌ, ์ž„๋ฒ ๋”ฉ ์ถ”๋ก  ๋กœ์ง์„ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šคํ™”ํ•˜์—ฌ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ ํ™•๋ณด



4. ์ตœ์ ํ™” ์ ์šฉ ํ›„์˜ ๊ธฐ๋Œ€ ์„ฑ๋Šฅ ์ง€ํ‘œ

์ž„๋ฒ ๋”ฉ ๋ชจ๋ธ KR-SBERT-V40K-klueNLI-augSTS๋Š”
๊ธฐ๋ณธ์ ์œผ๋กœ ์ž…๋ ฅ ์ž„๋ฒ ๋”ฉ ์†๋„๊ฐ€ ๋น ๋ฅธ ํŽธ์ด๋ฉฐ(0.09์ดˆ ์ด๋‚ด),
์ตœ์ ํ™”์˜ ํ•ต์‹ฌ์€ ์ค‘๋ณต ๊ณ„์‚ฐ ์ œ๊ฑฐ, ๋ฉ”๋ชจ๋ฆฌ ์ ˆ๊ฐ, ์œ ์‚ฌ๋„ ๊ธฐ์ค€ ๊ฐœ์„ ์— ์žˆ์Œ.
์•„๋ž˜๋Š” ์ตœ์ ํ™” ์ „๋žต ์ ์šฉ ํ›„ ๊ธฐ๋Œ€๋˜๋Š” ์„ฑ๋Šฅ ๋ณ€ํ™” ์ง€ํ‘œ์ž„.

ํ•ญ๋ชฉ ๊ธฐ์กด ์„ฑ๋Šฅ ์ตœ์ ํ™” ์ ์šฉ ๊ธฐ๋Œ€ ์„ฑ๋Šฅ
์‚ฌ์šฉ์ž ์ž…๋ ฅ ์ž„๋ฒ ๋”ฉ ์†๋„ ํ‰๊ท  0.02 ~ 0.09์ดˆ ๋™์ผ ์ˆ˜์ค€ ์œ ์ง€ (์†๋„ ๋ณ‘๋ชฉ ์—†์Œ)
๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ 36MB ~ 332MB ์ค‘๋ณต ๊ณ„์‚ฐ ์ œ๊ฑฐ ๋ฐ float16 ์ตœ์ ํ™”๋กœ ์ ˆ๊ฐ ๊ธฐ๋Œ€
์žฅ์†Œ ํ‚ค์›Œ๋“œ ์ž„๋ฒ ๋”ฉ ๋งค ์š”์ฒญ ์‹œ ์žฌ๊ณ„์‚ฐ ์‚ฌ์ „ ๋ฒกํ„ฐ ๊ตฌ์ถ• + ๋ฉ”๋ชจ๋ฆฌ ์ƒ์‹œ ๋กœ๋”ฉ ๊ตฌ์กฐ
์œ ์‚ฌ๋„ ๊ณ„์‚ฐ ์ •ํ™•๋„ Cosine ๊ธฐ๋ฐ˜์œผ๋กœ ์˜๋ฏธ ์™œ๊ณก ๊ฐ€๋Šฅ L2 ๊ธฐ์ค€ ๋„์ž…์œผ๋กœ ๋ฌธ๋งฅ ์ •๋ ฌ ์•ˆ์ •์„ฑ ํ–ฅ์ƒ
์ถ”์ฒœ ํ’ˆ์งˆ ์ผ๊ด€์„ฑ ์ ์ˆ˜ ๋ฐ€์ง‘ โ†’ ์ˆœ์œ„ ํŒ๋‹จ ์–ด๋ ค์›€ L2 ๊ฑฐ๋ฆฌ ๊ธฐ๋ฐ˜ soft-filter๋กœ ํ›„๋ณด ์„ ๋ณ„ ๋ช…ํ™•ํ™”
๊ฒ€์ƒ‰ ์‘๋‹ต ์‹œ๊ฐ„ ํ‰๊ท  1.0~2.0์ดˆ < 0.5์ดˆ (๋ฒกํ„ฐ ์ €์žฅ + ์‹ค์‹œ๊ฐ„ ๋น„๊ต ๊ตฌ์กฐ)

โ„น๏ธ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ์ž„๋ฒ ๋”ฉ ์†๋„๋Š” ๋ชจ๋ธ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ํ‰๊ท  0.02 ~ 0.09์ดˆ๋กœ ์ธก์ •๋˜์—ˆ์œผ๋ฉฐ,
์ด๋Š” ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ์— ์ถฉ๋ถ„ํ•˜๋‹ค๊ณ  ํŒ๋‹จ๋จ.
์ตœ์ ํ™”์˜ ์ดˆ์ ์€ ์†๋„ ๊ฐœ์„ ๋ณด๋‹ค ์ค‘๋ณต ๊ณ„์‚ฐ ๋ฐฉ์ง€ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ ํ–ฅ์ƒ์— ๋‘๊ณ  ์žˆ์œผ๋ฉฐ,
ํŠนํžˆ ์žฅ์†Œ ํ‚ค์›Œ๋“œ๋Š” ์‚ฌ์ „ ๋ฒกํ„ฐํ™”ํ•˜์—ฌ ๋กœ๋”ฉ ์ง€์—ฐ ์—†์ด ์‘๋‹ต ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ตฌ์กฐํ™”ํ•จ.

โš ๏ธ **GitHub.com Fallback** โš ๏ธ