๋ ์ ๋นํ ๊ฑฐ๋ฆฌ๋ฅผ ๋์.
์ต๊ทผ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์, LLM ๋ชจ๋ธ์๊ฒ ํ๋กฌํํธ ์์ง๋์ด๋ง์ ํตํด ์ฝ 400๊ฐ ์ ๋์ ๊ฐ์ ๋จ์ด ๋ฆฌ์คํธ๋ฅผ ๊ณ ์ ์ ์ผ๋ก ์ ๊ณตํ ๋ค, ์ธํ ๋ฌธ์ฅ์ ์ํฉ๊ณผ ๋ฌธ๋งฅ์ ๊ฐ์ฅ ์ด์ธ๋ฆฌ๋ ๋จ์ด๋ฅผ ์ถ์ถํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ฒ ๋์๋ค.
์๋ฅผ ๋ค์ด "์ค๋์ ๋์ ์์ผ์ด๋ค!"๋ผ๋ ๋ฌธ์ฅ์ ๋ํด์ LLM์ '๊ธฐ์๋ค', 'ํ๋ณตํ๋ค', '๊ธฐ๋ํ๋ค' ๋ฑ์ ๊ฐ์ ๋จ์ด๋ฅผ ์ ํํด์ผํ๋ค.
๊ทธ๋ฐ๋ฐ ๊ธฐ๋ณธ์ ์ผ๋ก LLM์ ์์๋ ฅ์ด ๋์น๋ ์์ด๋ค. ๋ถ๋ฅ ๋ฌธ์ ๋ฑ์ ํด๊ฒฐํ๋ ๋ถ๋ฅ๊ธฐ ๋ฑ๊ณผ๋ ๋ชฉ์ ๋ถํฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ๋ผ์ ๊ฐ๋์ฉ ์ ์๋ ๋จ์ด ๋ชฉ๋ก์ธ ๊ธฐ๋ถ ์ข๋ค
๋ฅผ ๋ฌด์ํ๊ณ ๊ธฐ๋ถ์ด ์ข๋ค
๋ฅผ ์ถ๋ ฅํ์๋ค.!
์ฐ๋ฆฌ์ ์๋น์ค๋ LLM์ ์ถ๋ ฅ์ ์ ์ ํ ํ์ฑํ๊ณ , ์ค์ DB ์์ ๊ฐ์ ๋จ์ด์ ๋งคํํด์ผํ๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ถ์ด ์ข๋ค
์ ๊ฐ์ ์๋ชป๋ ์ถ๋ ฅ์ DB ์์ ์กด์ฌํ์ง ์๋ ๋ฐ์ดํฐ ์ทจ๊ธ์ ๋ฐ๊ณ ๋ฒ๋ ค์ง๊ฒ ๋๋ค.
์ฌ๊ฐ์ฑ์ ๋๋ผ๊ณ LLM์ ๋ฐ์ด๋ ์ฐฝ์๋ ฅ์ ์ ํํด๋ณด๊ณ ์ Temperature ๋ฑ์ ์ฌ๋ฌ ํ๋ผ๋ฏธํฐ๋ฅผ ์กฐ์ ํ์์ง๋ง, ๋์ผํ ๋ฌธ์ ๋ ์ง์์ ์ผ๋ก ๋ฐ์ํ๋ค.
์ด๋ฐ์์ผ๋ก ๋์ด์ฐ๊ธฐ์ ์ฝ๊ฐ์ ์กฐ์ฌ๊ฐ ๋ค๋ฅด๋ค๋ ์ด์ ๋ก ์๋ชป๋ ๊ฒฐ๊ณผ๋ฌผ ์ทจ๊ธ์ ๋ฐ๋ ๋ฐ์ดํฐ๋ค์ด ๋๋ฌด๋ ์๊น์ ๊ธฐ์, ์ด๋ฅผ DB์์ ์กด์ฌํ๋ ์ ์ ๋จ์ด๋ก ์ ์ ํ ๋งคํํ๊ณ ์ ๊ณ ๋ฏผํ๊ฒ ๋์๋ค.
๊ทธ๋ฌ๋ค ํ์ git ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ๋, ์คํ๊ฐ ๋ฐ์ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ํฉ์ด ๋ฐ์ํ๋ค๋ ์ฌ์ค์ ๊ธฐ์ตํ๊ฒ ๋์๋ค.
๋ช ๋ น์ด์ ์คํ๊ฐ ๋ฐ์ํ๋ฉด ์์์ ๋์น์๊ณ ์ผ์ค์๊ฒ ๊ต์ ํด์ฃผ๋ ์ฐฉํ git
์ด๋ป๊ฒ ์ด๋ ๊ฒ ๋น ๋ฅธ ์๊ฐ ๋ด์, ๋ด๊ฐ ์ํ๋ ๋๋ต์ ์ฐพ์์ ์ถ์ฒํด์คฌ๋ ๊ฑธ๊น?
์์ฃผ ๋ถ๋ฌ์ด ๋ฅ๋ ฅ์ด๋ค.
๊ทธ ๋ฅ๋ ฅ์ ๋น๋ฐ์ ๋ ๋ฒค์ํ์ธ ๊ฑฐ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ์ ์๋ค.
๋ ๋ฒค์ํ์ธ ๊ฑฐ๋ฆฌ(Levenshtein Distance)๋ ๋ ๋ฌธ์์ด ๊ฐ์ ํธ์ง ๊ฑฐ๋ฆฌ๋ฅผ ์ธก์ ํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋ฌธ์์ด์ ๋ค๋ฅธ ๋ฌธ์์ด๋ก ๋ณํํ๊ธฐ ์ํด ํ์ํ ์ฝ์ , ์ญ์ , ๊ต์ฒด ์ฐ์ฐ์ ์ต์ ๊ฐ์๋ฅผ ๊ณ์ฐํ๋ค. ์ด ์๊ณ ๋ฆฌ์ฆ์ ์ฃผ๋ก ์คํ ๊ต์ , ๋ฌธ์์ด ์ ์ฌ๋ ๊ณ์ฐ, DNA ์์ด ๋ถ์ ๋ฑ์์ ์ฌ์ฉ๋๋ค.
๋ ๋ฒค์ํ์ธ ๊ฑฐ๋ฆฌ ๊ณ์ฐ์ ๋์ ๊ณํ๋ฒ(Dynamic Programming)์ ์ฌ์ฉํ๋ค.
๋ ๋ฌธ์์ด (A)์ (B)์ ๊ธธ์ด๊ฐ ๊ฐ๊ฐ (m)๊ณผ (n)์ผ ๋, (m * n) ํฌ๊ธฐ์ ํ๋ฅผ ๋ง๋ค๊ณ , ๊ฐ ์นธ์ ๋ถ๋ถ ๋ฌธ์์ด ๊ฐ์ ํธ์ง ๊ฑฐ๋ฆฌ๋ฅผ ๊ธฐ๋กํ๋ค. ์ด 3๊ฐ์ง ๊ธฐ๋ณธ ํธ์ง ์ฐ์ฐ์ด ์๋ค.
ํ ์ด๋ธ์ D[i][j]๋ (A)์ ์ฒ์ (i)๊ฐ ๋ฌธ์์ (B)์ ์ฒ์ (j)๊ฐ ๋ฌธ์ ์ฌ์ด์ ๋ ๋ฒค์ํ์ธ ๊ฑฐ๋ฆฌ๋ฅผ ๋ปํ๋ค.
ํ ์ด๋ธ์ ์ด๊ธฐ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ๋ค.
"kitten"๊ณผ "sitting"์ ๋ํด์
"" | s | i | t | t | i | n | g | |
---|---|---|---|---|---|---|---|---|
"" | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
k | 1 | |||||||
i | 2 | |||||||
t | 3 | |||||||
t | 4 | |||||||
e | 5 | |||||||
n | 6 |
์ดํ ๋ค์์ ์ ํ์์ ๋ฐ๋ผ ํ ์ด๋ธ์ ์ฑ์ด๋ค.
์ด์ ๋ฐ๋ผ ํ ์ด๋ธ์ ์ฑ์ฐ๋ฉด
"" | s | i | t | t | i | n | g | |
---|---|---|---|---|---|---|---|---|
"" | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
k | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
i | 2 | 2 | 1 | 2 | 3 | 4 | 5 | 6 |
t | 3 | 3 | 2 | 1 | 2 | 3 | 4 | 5 |
t | 4 | 4 | 3 | 2 | 1 | 2 | 3 | 4 |
e | 5 | 5 | 4 | 3 | 2 | 2 | 3 | 4 |
n | 6 | 6 | 5 | 4 | 3 | 3 | 2 | 3 |
์ต์ข ์ ์ผ๋ก D[m][n] = 3, ์ฆ "kitten"์ "sitting"์ผ๋ก ๋ณํํ๊ธฐ ์ํ ์ต์ ์ฐ์ฐ ํ์๋ 3์ด๋ค.
๊ตฌํ์ด ์ด๋ ต์ง ์๊ณ ์ง๊ด์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
๊ทธ๋ฌ๋ ํด๋น ๋ถ๋ถ์ ์์
ํ ๋ ๋๋ฌด ๋ฐ์ ๋๋จธ์ง ๋ค์์ ๊ธ๋จ์ ๊ธฐ์ ์ ์ฌ์ฉํ๋ค. (๋น๋ฐ, ๊ฟํ)
# pip installl levenshtein
import Levenshtein
Levenshtein.distance(target_word, word)
์ด์ ๋ ์ฌ์ด ์๊ณ ๋ฆฌ์ฆ์ด ๋๋ค.
๋๋ฌด ์์ฃผ ์ฌ์ฉ๋๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์กด์ฌํ๋ ๊ฒ ๊ฐ๋ค.
์ผ ๊ฒ ๋น์ง๋ก์ด๋ผ๊ณ , ๊ทธ๋ฅ import
ํ๊ณ ๋์ด๊ฐ๊ธฐ์๋ ๋ญ๊ฐ ์ฐ์ฐํ๋๊น ๊ทธ ์๋ฆฌ๋ ํ ๋ฒ์ฉ ์์๋๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค. (์ด๋ฐ ์ง์์ ์ธ์ ๊ฐ ๋์์ด ๋๊ธฐ์...)
์ด๋ ๊ฒ ์ด์ฌํ ๊ตฌํํ๊ณ ํ
์คํธํด ๋ณธ ๊ฒฐ๊ณผ...!!
๋๋๊ฒ๋ ์๋ํ๋ค
๋ฅผ ์ ๋ํ๋ค
๋ก, ์กฐ์ฉํ๋ค
๋ฅผ ์ฒ์ฐธํ๋ค
๋ก ๋ฐ๊ฟจ๋ค..!!!! (์ฒ์ฐธํ ๊ฑด ๋์ ๋ง์์ด๋ค)
ํ๊ธ์ ํ ๊ธ์๋ฅผ ์ ๋์ฝ๋ 1๊ฐ๋ก ์ธ์ํ๋ ๋ฌธ์ ๋ก ๋ณด์ธ๋ค.
์ฐพ์๋ณด๋ ๊ณ ์ฐจ์์ ์ธ ์๋ํ ํ๊ธ์ ์ ๋๋ก ๋ถ์ํ๊ธฐ ์ํด์๋, ์์๊ณผ ๋ชจ์์ ๋ถ๋ฆฌํด์ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํด์ผํ๋ค๋ ๊ฒ์ ์๊ฒ ๋์๋ค.
# pip install jamo
from jamo import h2j, j2hcj
# ...
๊ทธ๋ฌ๋ ์ด๋ณด๋ค ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ ์ ์ด ์๋ค.
๋ ๋ฒค์ํ์ธ ๊ฑฐ๋ฆฌ๋ ๋จ์ด์ ์๋ฏธ๋ก ์ ์ ์ฌ๋๋ ์ธก์ ํ์ง ๋ชปํ๋ค๋ ๊ฒ์ด๋ค.
์ฌ์ค ์ฐ๋ฆฌ์ ์๋น์ค๊ฐ ๊ฐ์ ๋จ์ด๋ฅผ ์ ๋๋ก ๋งคํ์ํค๊ธฐ ์ํด์๋ ๋จ์ ์คํ ๊ต์ ์ด ์๋, ๋จ์ด์ ์๋ฏธ๋ก ์ ์ธ ์ ์ฌ์ฑ๊น์ง๋ ๊ณ ๋ คํด์ผํ๋ค.
๋ ๋ฒค์ํ์ธ ๊ฑฐ๋ฆฌ๋ ํธ์ง ๊ฑฐ๋ฆฌ๋ง์ ๊ณ ๋ คํ๊ธฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ํ ์์ฒด๊ฐ ๋ถ์ ์ ํ๋ค๊ณ ํ๋จํ๋ค.
๋ฐ๋ผ์ ํ ์คํธ ๋ฒกํฐ ์๋ฒ ๋ฉ ๊ธฐ๋ฒ์ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๊ณ , ๋ชจ๋ ๋ ๋ฒค์ํ์ธ ๊ฑฐ๋ฆฌ ๊ด๋ จ ์ฝ๋๋ ์ญ์ ํ์๋ค.
pip uninstall levenshtein
๊ทธ๋๋ ์ ๊น์ด์ง๋ง ๋ง๋์ ๋ฐ๊ฐ์ ์ด levenshtein. ๐ฅน
git์์ ๋งจ๋ ๋ํ๋์ ์ ์คํ๋ฅผ ๊ต์ ํด์ฃผ๋ ๊ฒ ์ด ์๊ณ ๋ฆฌ์ฆ์ด์๊ตฐ์!!
์๊ณ ๋ฆฌ์ฆ ์ ๊ณต์์๋ ์ธ๊ธ๋ ๊ฐ๋ ์ธ ๊ฑฐ ๊ฐ์๋ฐ ๋ค์ ๋ณด๋ ๋ฐ๊ฐ๋ค์~~