๊ฒฝ๋ถ๋ํ๊ต ์ข ํฉ์ค๊ณํ๋ก์ ํธ2 - 3ํ
AutoML ์ ๊ทผ์ ์ํ gcp ์ ๊ทผ์ฉ json ํ์ผ์ ๋ณด์์์ ์ด์ ๋ก github์ ๊ณต๊ฐํ๊ณ ์์ง ์์ผ๋ฉฐ ํ์์์ ์คํ์์ค ์ปค๋ฎค๋ํฐ์ธ ๋์ค์ฝ๋ ์ฑ๋์ ํตํ ๋ฌธ์ ๋ถํํฉ๋๋ค.
- ๊นํ๋ธ ํด๋ก
์๋์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด ๋ณธ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ git cloneํฉ๋๋ค.
git clone https://github.com/Geunboda/KNU_CapD2_3.git
- ์๋ฒ ๊ตฌ๋
Python3๋ฅผ ๋จผ์ installํ ํ, google, google-cloud-automl, flask๋ฅผ ์ค์นํฉ๋๋ค.
pip3 install google
pip3 install google-cloud-automl
pip3 install flask
์๋์ ํด๋๋ก ์ด๋ํ์ฌ ์๋ฒ๋ฅผ ๊ตฌ๋ํฉ๋๋ค. ์๋ฒ๋ฅผ ๊ตฌ๋ํ๊ธฐ ์ json ํ์ผ์ ํด๋ ์๋๋ก ์ด๋์์ผ์ฃผ์ญ์์ค.
cd KNU_CapD2_3/api/serving
python3 predict3.py
- ๋ฆฌ์กํธ ์น ์๋ฒ ๊ตฌ๋
ํธ์คํ ํ ์น ์๋ฒ์ endpoint ์ฃผ์๋ฅผ ๋ณ๊ฒฝํ์๋์ง ํ์ธํด์ฃผ์๊ณ React ์น์ ์คํํ์ญ์์ค.
cd ui/knu-capd2-ui
npm start
ํ์ฌ ์ฐ๋ฆฌ๊ฐ ์ด๊ณ ์๋ 4์ฐจ์ฐ์ ํ๋ช ์๋์ IT์ฐ์ ์ ๋ฐ์ ์ธ๊ณต์ง๋ฅ์ด ๊ณณ๊ณณ์ ํฌ์งํด ์๋ค๊ณ ํด๋ ๊ณผ์ธ์ด ์๋ ์ ๋๋ค. ์ธ๊ณต์ง๋ฅ๊ณผ ๋จธ์ ๋ฌ๋ ๊ธฐ์ ์ ์ฐ์ ์ ๋์ด์ ๊ต์ก, ๋ฌธํ, ์๋ฃ ๋ฑ ์ฐ๋ฆฌ ์ถ ์์์ ์ธ๊ณต์ง๋ฅ์ ์ ์ฉ์ ๋ณผ ์ ์๋ค๊ณ ๊ธฐ๋ํด๋ ์ข๊ธฐ ๋๋ฌธ์ด๋ค.
โฒ<๋ํ> Google Cloud Industries: Artificial Intelligence acceleration among manufacturers
๋ง๋ถ์ฌ, ์ธํฐ๋ท ์ฌ์ฉ์ ์์ ์ฆ๊ฐ๋ก ์ธํด ๋ก๊ทธ ๋ฐ์ดํฐ ์์ด ์ฆ๊ฐํ์๋ค. ๋ก๊ทธ ๋ฐ์ดํฐ๋ ์ค์ ํ์ค์์ ๋ฐ์ํ๋ ์ฌ๊ฑด์ ๋ฐ์ดํฐ๋ก ๊ธฐ๋กํ ๊ฒ์ผ๋ก, ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ๋ฉด ์ค์ ํํฉ์ ๋ํด์ ์์ธํ ํ์ธํ ์ ์๋ค.
โฒ<๊ทธ๋ํ> JetBrain 2020, Java ์ฌ์ฉ๋ฅ ์กฐ์ฌ ๊ฒฐ๊ณผ
๊ทธ ์ค ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ ๋ก๊ทธ ๋ฐ์ดํฐ ์ค ํ๋๋ ๋ฐ๋ก Java Thread Dump์ด๋ค. Thread Dump๋ ์ ํํ๋ ๋ฐ์ดํฐ์ด๋ฉฐ ์น ์๋ฒ์์๋ ๋ง์ ์์ ๋์ ์ฌ์ฉ์๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์์ญ~์๋ฐฑ ๊ฐ ์ ๋์ Thread๋ฅผ ์ฌ์ฉํ๋ค. ๋ ๊ฐ ์ด์์ Thread๊ฐ ๊ฐ์ ์์์ ์ด์ฉํ ๋๋ ํ์ฐ์ ์ผ๋ก Thread ๊ฐ์ ๊ฒฝํฉ(Contention)์ด ๋ฐ์ํ๊ณ ๊ฒฝ์ฐ์ ๋ฐ๋ผ์๋ ๋ฐ๋๋ฝ(Deadlock)์ด ๋ฐ์ํ ์๋ ์๋ค. ์ด๋ฌํ Thread์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ๋ก๊ทธ ๋ฐ์ดํฐ์ธ Thread Dump๋ฅผ ๋ถ์ํ์ฌ ๋ฌธ์ ๋ฐ์ ์์ ๊ทธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ฐพ๊ธฐ ์ฌ์ฐ๋ฉฐ ๋ฌธ์ ๋ฐ์ ์ ์๋ Thread Dump๋ฅผ ๋ถ์ํ์ฌ Contention๊ณผ Deadlock ๋ฑ ์์ผ๋ก ๋ฐ์ํ ๋ฌธ์ ๋ฅผ ์ฌ์ ์ ์๋ฐฉํ ์ ์๋ค. ๋๋ฌธ์ ์๋ฒ ์ด์์ Thread Dump ๋ถ์์ด ํ์ํ๋ค.
ํ์ง๋ง ์ด์์์ ์์๋ ์์คํ ํน์ฑ์ ๋ฐ๋ผ ๋ค์ํ ์ฌ์ฉ์๋ค์ด ์๋น์ค๋ฅผ ๋์์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ก๊ทธ ์ถ์ ์ด ์ด๋ ค์ฐ๋ฉฐ, ๋ก๊ทธ ์ถ์ ์ ํ์ง ๋ชปํด ๋ฌธ์ ์์ธ ์ถ์ ์ ํฌ๊ธฐํ๋ ๊ฒฝ์ฐ๋ ์์ฃผ ๋ฐ์ํ๋ค. ์ด ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ํ๋ํ๋ ์ธ๊ฐ์ด ๊ตฌ๋ถํ๊ณ ๋ถ์ํ๋๋ฐ์๋ ๋ฌผ๋ฆฌ์ ์ธ ํ๊ณ๊ฐ ์์ ์ ๋ฐ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ฌ ์ฌ์ฉ๋๋ Thread Dump ๋ถ์ ๋๊ตฌ๋ค์ ๋จ์ํ๊ฒ running, sleeping, blocked ์ ๋๋ก ๊ฐ๋จํ ๋คํ ๋ถ์๋ง์ ์ง์ํ๋ค.
โฒ<๊ทธ๋ฆผ> Thread Dump ๋ถ์์ ์ง์ํ๋ ์จ๋ผ์ธ Dump ๋ถ์ ์ฌ์ดํธ FastThread
๋๋ฌธ์ ์ด๋ฌํ Thread Dump๋ฅผ ์ข ๋ ์ฒด๊ณ์ ์ด๊ณ ํจ๊ณผ์ ์ผ๋ก ๋ถ์ํ ์ ์๋ ๋๊ตฌ์ ํ์์ฑ์ด ๋๋๋๊ณ ์๋ค.
๋ณธ ํ๋ก์ ํธ์์๋ Google Cloud Platform(์ดํ, GCP)์์ ์ ๊ณตํ๋ AutoML๊ณผ BERT๋ฅผ ํ์ฉํ์ฌ Thread Dump๋ฅผ ๋ถ์ํ๋ ์๋ํ๋ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ๊ฐ๋ฐํ๊ณ ์ ํ๋ค. ํ๋ก์ ํธ์ ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๋ ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค. ํ ์คํ ํ๊ฒฝ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ง์ ์์งํ๊ณ ๋ถ์ํ ํ, ๋ถ์ ๋ชจ๋ธ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฅํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์น์ ํ์ํ๋ค. OpenNaru์ OpenMaru APM์ธ Khan ์๋น์ค์ ์ฐ๊ณํ์ฌ ํ์ ์์๋ ์ฐ์ผ ์ ์๋๋ก ํ๊ณ ์ ํ๋ค. Thread Dump ๋ถ์์ ์๋ํํ์ฌ ์ ๋ฌธ์ธ๋ ฅ์ ๋์์์ด๋ ํ๋ก๊ทธ๋จ์ ์๋ฌ๋ฅผ ๋ถ์ํ๊ณ ์ด์ ๋์ํ ์ ์๋๋ก ํ๋ ๊ฒ์ด ํ๋ก์ ํธ์ ์ต์ข ๋ชฉ์ ์ด๋ค.
์ฐ์ stack๋ถ๋ถ์ ์ฝ๋๋ฅผ ๋ฐ์์ ์๋ก ํด์ํ๋๋ฐ, ํฌ๊ฒ 3๊ฐ์ง์ ์์ญ์ผ๋ก ๋๋ ์ ์๋ค. ๊ฐ์ฅ ๋ฐ์ ํ๋ ์์ญ์ Java base์ฝ๋/WAS ์ฝ๋๋ก jboss, wildfly, weblogic ๋ฑ WAS์ ์ข ๋ฅ๊ฐ ๊ธฐ์ ๋ ์๋ฐ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ํธ์ถ๋๋ ๋ถ๋ถ์ด๊ณ , ๋ ธ๋ ์์ญ์ ๊ฐ๋ฐ์๊ฐ ์์ฑํ ํจ์๋ถ๋ถ์ด๋ฉฐ ํ์ฌ๋ง๋ค ์ฌ์ฉํ๋ Framework๊ฐ ๋ค๋ฅด๊ธฐ์ mysql๊ณผ ๊ฐ์ ์ฌ์ฉ์ ์ ์ ํ๋ก๊ทธ๋จ์ธ Main Function ์์ฑ์ ์ด์ฉ๋๋ Framework ๊ธฐ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ฌ๋ผ ํธ์ถ๋๋ ํจ์ ์ด๋ฆ์ด ๋ค๋ฅผ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋นจ๊ฐ ์์ญ์ Main Function ์ํ ์๋ฃ ํ Thread ์ข ๋ฃ๋ฅผ ์ํด ๋ค์ Java๋ก ๋์์์ ๋ ํธ์ถ๋๋ Java library ๋ถ๋ถ์ด๋ค. Stack์ ๊ตฌ์กฐ๋ฅผ ํ์ ํ์ฌ ๋ ์ด๋ธ์ ํจํด ๋ถ์ํ ๋ ์ฐธ๊ณ ํ์๋ค.โผ<๊ทธ๋ฆผ> Java Thread Dump 3์์ ๋ถ๋ฅ
3-1-2์ 1์ฐจ ๋ฐ์ดํฐ ๋ถ์ ๋ด์ฉ์ ํ ๋๋ก Base/WAS์ฝ๋์ Main Function์ ๊ธฐ์ค์ผ๋ก ํ์ฌ ๋ ์ด๋ธ๋ง ์์ ์ ๋์ ํ๋ค. ๊ตฌ๊ธ ์คํ๋ ๋์ํธ๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ ๋ผ๋ฒจ์ ๋ถ์ด๊ณ , ํด๋น ๋ผ๋ฒจ์ ํด๋นํ๋ ๋คํ ๋ฐ์ดํฐ๊ฐ ๋ช ๊ฐ์ธ์ง ์์ฑํ๋ ๊ฒ์ผ๋ก ์งํํ์๋ค. ๊ทธ ํ ๊ฐ ๋ผ๋ฒจ์ ์ํ ๋ฐ์ดํฐ๋ฅผ ํ๋ ์ฒจ๋ถํ์ฌ ๋ผ๋ฒจ์ด ์ด๋ ํ ํ์(์ดํ ํจํด)์ ๊ฐ์ถ๋์ง ํ์ ํ๊ธฐ ์ฝ๊ฒ ํ์๋ค.
โฒ<๊ทธ๋ฆผ> ์ ์ฒ๋ฆฌ ํ๊ณ ์ ํ๋ ๋ด์ฉ
์ ์ฒ๋ฆฌ๋ Stack์ ๊ธฐ์ค์ผ๋ก ์งํํ์๋ค. ์ฐ์ ์ฒซ๋ฒ์งธ ๋ค๋ชจ๋ Thread์ ์ด๋ฆ์ ๋ํ๋ด๋ฉฐ, ์ฌ๊ธฐ์ ์์ด๋ ๋์ด์ฐ๊ธฐ๋ฅผ ์ ์ธํ ์ซ์๋ ๊ธฐํธ๋ ์ ๊ฑฐํ๋ค. ๊ทธ๋ฆฌ๊ณ Thread ๊ณ ์ ๋ฒํธ(#์ซ์)์ prio, os_prio์ ๊ฐ์ thread์ ์ฐ์ ์์๋ ํจํด๊ณผ ๊ด๋ จ์์ผ๋ฏ๋ก ์ ๊ฑฐํ๋ค. ๊ทธ ํ Tid(Java-Level Thread ID), nid(Native Thread ID), ํฌ์ธํฐ ์ ์ฅ์์น([0x00โฆ], <0x000โฆ>), ์๋ฐํ์ผ ํ๋ฒํธ, ํฌ์ธํฐ ์ฃผ์๊ฐ๊ณผ ๊ฐ์ด ๊ฐ Thread๋ง๋ค ์คํํ ๋ ๋ง๋ค ๋ณํํ๋ ์๋ฏธ์๋ ๊ฐ๋ค์ ๋ชจ๋ ์ ๊ฑฐํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋จ์ Javax, at, java, com, org ์ฒ๋ผ Thread ํจํด์ ๋ถ์ํ๋ ๊ฒ์ ์ ์๋ฏธํ ์ฐจ์ด๋ฅผ ๋ง๋ค์ง ์๋ ๊ณตํต๋๋ ์์ฃผ ๋ฑ์ฅํ๋ ๋จ์ด๋ค์ ์ ๊ฑฐํ๋ค.
โฒ <๊ทธ๋ฆผ> AutoML 1์ฐจ Label ์ ํ๋ ๋ฐ ์ ๋ฐ๋
๊ทธ๋ฌ๋ 1์ฐจ ๋ฐ์ดํฐ ๋ถ์์์ ์ ํ๋์ ์ฌํ์จ์ด 100%๋ก ํ์ต๋๋ ๋์ค๋ ์ด์๋ฅผ ํ์ธํ๋ค. ์์ธ์ ๋ฐ์ดํฐ์ ๋ ์ด๋ธ๋ง ๋ฐฉ์์ด๋ผ ์๊ฐํ์ฌ ์ด๋ฅผ ๋ฐ๊ฟ์ผ๋ก์จ ์ด์๋ฅผ ํด๊ฒฐํ๊ณ ์ ํ์๋ค. ๊ธฐ์กด์๋ ๊ฐ Thread Dump์ ํน์ ํ ๋ฌธ์ฅ์ด ๋ค์ด์์ผ๋ฉด ํด๋น ํจํด์ผ๋ก ๋ถ๋ฅํ๋ ๋ฐฉ์์ ์ฌ์ฉํ์๋ค. ํ ๋ฌธ์ฅ๋ง ๋ณด๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ ์ด๋ธ๋ง ํ๋ค๋ณด๋ ๋ชจ๋ธ ํ์ต์ด ๋จ์กฐ๋ก์์ง ์ ๋ฐ์ ์์๊ณ , ์ด๊ฒ์ด ์์ธ์ด ๋์ด ์ ๋ฐ๋๊ฐ 100%๋ก ๋ฐ์ํ์๋ค๊ณ ๊ฒฐ๋ก ์ง์๋ค. ๋ฐ๋ผ์ ๋ ์ด๋ธ๋ง ๋ฐฉ์์ ์์ ์ด ํ์ํ๋ค๊ณ ๋ณด์, ๊ฐ ํจํด์ ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ํ์ ํ๊ณ ์ด์ ๋ง๊ฒ ๋ผ๋ฒจ์ ๊ตฌ์ฑํ์ฌ ๋ ์ด๋ธ๋ง์ ์งํํ๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝํ์๋ค. Thread Dump๋ฅผ ๊ฐ๊ฐ ์ดํด๋ณด๋ฉด์ ์ด๋ ํ ํจํด์ด ๋ํ๋๋์ง ํ์ธํ๋ ๊ณผ์ ์ ๊ฑฐ์น๊ณ ์ด๋ฅผ ๋ฐํ์ผ๋ก ๋ ์ด๋ธ๋ง์ ์งํํ์๋ค.
โฒ<๊ทธ๋ฆผ> ์ต์ข ์์ ์ ๋ง์น ๋ผ๋ฒจ
2์ฐจ ๋ฐ์ดํฐ ๋ ์ด๋ธ๋ง ๋ฐฉ์์ 1์ฐจ์ ๊ฐ๋, ํจํด ์ ์ฒด์ ํ๋ฆ์ ๊ณ ๋ คํ์ฌ ๋ ์ด๋ธ๋ง์ ์งํํ์๋ค. ๋คํ์ State๊ฐ Waiting์ธ ๊ฒฝ์ฐ ํ๋ก๊ทธ๋จ์ ๋ฌธ์ ๋ฅผ ๋ฐ์์ํค์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋๋ค์์ด๊ธฐ์ ๋ฌดํ ๋ฃจํ์ ๋น ์ง ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ Idle๋ก ํจํด์ ๋ช ๋ช ํ์๋ค. ๋ํ ๋ผ๋ฒจ์ ๊ฐ์๊ฐ ํ ์๋ฆฌ ์์ธ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๊ฐ ์ถฉ๋ถํ์ง ์์ ํ์ต ๋ฐ์ดํฐ์ ์ ์ํฅ์ ๋ฏธ์น ์ ์๋ ๋ ธ์ด์ฆ ์์๊ฐ ๋๋ฏ๋ก ํ์ต ๋ฐ์ดํฐ์์ ์ ์ธํ์๋ค. ์ถํ ๋ ์ด๋ธ๋ง์ ์ฝ๊ฒ ํ๊ธฐ ์ํด, ํจํด๋ง๋ค ์ํ ๋งํฌ๋ฅผ ์ถ๊ฐํ์ฌ ํด๋ฆญ์ ํด๋น ํจํด์ ์ฝ๋๋ก ์ด๋ํ๋๋ก ํ์ฌ ๊ฐ ํจํด์ ํด๋นํ๋ ์ํ Dump ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ํ์ ํ ์ ์๋๋ก ํ์๋ค.
โฒ<๊ทธ๋ฆผ> ํ ์คํธ ๋ ์ด๋ธ๋ง ์๋ํ ์ฝ๋
โฒ<๊ทธ๋ฆผ> AutoML ํ์ต ํ ์ ๋ฐ๋์ ์ฌํ์จ
AutoML ๋ชจ๋ธ ๊ฐ๋ฐ์ Google Cloud Platform์ ํ์ฉํ์ฌ ์งํํ์๋ค. ๋ค์ค ํ ์คํธ ๋ถ๋ฅ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ Thread Dump๊ฐ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ฉด ๊ฐ ๋ ์ด๋ธ์ ํด๋นํ๋ ํ๋ฅ ์ ๋ฐํํ๋ ๋ชจ๋ธ์ ๊ฐ๋ฐํ์๋ค. ์ 3-1์ ๊ฒฐ๊ณผ๋ฌผ์ธ ๋ฐ์ดํฐ ํ์ผ๋ก ํ์ต์ ์งํํ์๋ค. 165๊ฐ์ ๋ ์ด๋ธ์ ํ์ต์์ผฐ์ผ๋ฉฐ, ์ ๋ฐ๋๋ 99.02%๋ก ๋์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์๋ค. ์์๋ณด๋ค ํจ์ฌ ๋์ ์ ๋ฐ๋๋ฅผ ์ป์ด์ ์ด์ ๋ํ ์ด์ ๋ฅผ ํ์ ํ๊ณ ์ ํ์ฌ ๋ฉํ ๋๊ป ํผ๋๋ฐฑ์ ์์ฒญํ ๊ฒฐ๊ณผ, 2๊ฐ์ง ์์ธ์ ์๊ฐํด ๋ณผ ์ ์๊ฒ ๋์๋ค. ์ฒซ ๋ฒ์งธ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ ์ ์ด๋ค. ์ ์ฒด ๋ฐ์ดํฐ์ ๊ฐ์๋ ์ฝ 7500๊ฐ ์ ๋์ด๋ค. ๋ฐ์ดํฐ์ ๋ค์์ฑ์ด ์ ๋ค๋ณด๋ ์์ธก์ด ์ข ๋ ์ฌ์ ๋ค๊ณ ์๊ฐํ ์ ์๋ค. ํ์ ์์๋ ๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์ค์ ๋ก ์ ์ฉํ๋ค๋ฉด ์ ์๋ฒ์๋ด์ ์ ๋ฐ๋์ ์ฌํ์จ์ ๊ฐ์ง ๊ฒ์ ์์ธกํ ์ ์๋ค. ๋ ๋ฒ์งธ๋ Thread Dump ๋ฐ์ดํฐ๊ฐ ์ ํํ ๋์ด์๋ค๋ ์ ์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก ์์ฐ์ด, ์ฆ ๋ํ ๋ฌธ์ฅ์ ์๊ฐํ๋ค๋ฉด ๋งค์ฐ ๋ค์ํ๋ค๋ ์ ์ด ํน์ง์์ ์ ์ ์๋ค. ๊ทธ๋ฌ๋ Thread Dump ๋ฐ์ดํฐ๋ ํ์์ด ์ ํด์ ธ ์๋ ๋ฐ์ดํฐ๋ก, ๊ฐ์ ๋ ์ด๋ธ์ด๋ผ๋ฉด ๋๋ถ๋ถ์ด ๋์ผํ ๋ด์ฉ์ ๊ฐ์ง๊ณ ์๋ค. ์ด๋ฌํ ์ ์ด ์ ๋ฐ๋๋ฅผ ๋์ด๋ ๋ฐ์ ํฌ๊ฒ ์์ฉํ์ ๊ฒ์์ ์ ์ ์๋ค. ์ถํ์ ์ด๋ฌํ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ์ ๊ท ํ์ต์ ์๋์ผ๋ก ํ ์ ์๋ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ ๊ฒ์ด ํ์ํ ๊ฒ์ด๋ค.
โฒ<๊ทธ๋ฆผ> BERT ํ์ต ์ฝ๋ ์ค ์ผ๋ถ
์ข ๋ ์ต์ ํ๋ ๋ถ์ ๋ชจ๋ธ์ ์ํด BERT์ BertForSequenceClassification ๋ชจ๋ธ๋ก ํ์ต์ ์งํํ์๋ค. BERT๋ฅผ ํ์ต์ํค๋ฉด์ ์ ๊ฒฝ์ด ๋ถ๋ถ์ Tokenizer๋ก, Keras hub์์ ์ ๊ณตํ๋ Default tokenizer๋ฅผ ์ฌ์ฉํ์๋ค. ๊ทธ ์ด์ ๋ ํ ํฌ๋์ด์ ์ ์ต๋ ๋ถ์ ํ ํฐ์ ๊ฐ์๊ฐ 512๊ฐ์ธ๋ฐ, Thread Dump ์ค์์ 512๊ฐ๋ฅผ ๋๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ ์กด์ฌํ์๋ค. ๋ณดํต ์ด๋ ์๋ฅด๋ ๋ฐฉ์(Default)์ด๋ ์ ์ฒด๋ฅผ ๋ฃ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋๋ฐ, ํ๋ก์ ํธ์์๋ ์๋ถ๋ถ๋ง ์๋ฅด๋ ๋ฐฉ์์ ์ฌ์ฉํด์ ์งํํ์๋ค. ๊ทธ๋ฆฌ๊ณ optimizer๋ก๋ Adam์ ์ฌ์ฉํ์๊ณ , loss ๊ณ์ฐ์ cross entropy๋ฅผ ์ฌ์ฉํ์๋ค. ๊ทธ ๊ฒฐ๊ณผ, 95.08%์ ์ ํ๋๋ฅผ ์ป์ ์ ์์๋ค. AutoML๊ณผ BERT ๋ชจ๋ธ์ ๋น๊ตํ์ ๋, ํ ์ํฉ์์๋ ์ ๋ฐ๋๊ฐ ๋ ๋๊ฒ ๋ํ๋ AutoML ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋์ฑ ์ ์ ํ๋ค๊ณ ํ๋จํ์๊ณ , ์ดํ ์๊ฐํ๋ฅผ ์ํ ์น ์๋น์ค์์ AutoML ๋ชจ๋ธ์ ์ฌ์ฉํ์๋ค.
โฒ<๊ทธ๋ฆผ> BERT ํ์ต epoch์ ๋ฐ๋ฅธ loss, accuracy, recall, precision, f1 ๊ทธ๋ํ
โฒ<๊ทธ๋ฆผ> ํ๋ ฅ์ ์ฒด OpenNaru์ ์๋ฒ ๋ชจ๋ํฐ๋ง ๋ฐ ๊ด๋ฆฌ ์๋ฃจ์ OpenMaru APM
ํ๋ ฅ์ ์ฒด์ ์๋น์ค์ธ OpenMaru APM(์ดํ Khan)๊ณผ ์ฐ๊ณํ์ฌ ๋ชจ๋ธ์ ์ด์ฉํด ํ์ตํ๊ณ ๊ฒฐ๊ณผ ๊ฒ์ฆ์ ํ ์คํธํ Thread Dump๋ฅผ ์ถ์ถํ๊ธฐ๋ก ํ์๋ค.
โฒ<๊ทธ๋ฆผ> OpenMaru APM์ ์ด์ฉํด Thread Dump๋ฅผ ์ถ์ถํ๋ ๋ชจ์ต
ํ์ง๋ง OpenNaru์์ ๊ณ ๊ฐ์ ๋์์์ด Thread Dump ๋ฐ์ดํฐ๋ฅผ ์ ์ถํ ์ ์๊ณ ์์ง ๊ฒ์ฆ๋์ง ์์ ์๋น์ค์ ๊ฒฐ๊ณผ๋ฅผ ๊ณ ๊ฐ์๊ฒ ์ ๊ณตํ ์ ์์ด ์ด๋ฐ์ ์ ๊ณต๋ฐ์ Thread Dump ๋ฐ์ดํฐ ์ธ์ ์ถ๊ฐ์ ์ธ ๋ฐ์ดํฐ๋ ์ ๊ณต๋ฐ๊ธฐ ์ด๋ ค์ ๋ค. ์ด๋ฌํ ๊น๋ญ์ผ๋ก ์ถํ ์ถ๊ฐ ๋ฐ์ดํฐ ํ์ต ๋ฐ ๊ฒฐ๊ณผ ๊ฒ์ฆ์๋ ์ง์ ์๋ฌ ์ํฉ์ ์ฌ์ฐํด ํ์ํ Thread Dump๋ฅผ ์์ฑํด์ผ ํ์๋ค. ๋ฐ๋ผ์ ์ง์ ์ธ์์ ์ธ ์๋ฌ๋ฅผ ๋ฐ์์ํค๋ ์น ํ์ด์ง๋ฅผ ๊ฐ๋ฐํ์๋ค.
โฒ<๊ทธ๋ฆผ> ์ธ์์ ์ธ ์๋ฌ๋ฅผ ๋ฐ์์ํค๋ ์น ํ์ด์ง
โฒ<ํ> ๋ก๊ทธ ๋ถ์ ์๋ฒ EndPoint
์๋ฒ์์ ๋ก๊ทธ ๋ถ์์ ์ํด Khan์์ ๋ก๊ทธ ๋ถ์ ์๋ฒ๋ก Thread Dump๋ฅผ ์ ์ก๋ฐ๊ณ ์ด๋ฅผ AutoML์ ์ด์ฉํด์ ๋ถ์ ํ, ํด๋น ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ์๊ฐํ ์ํค๊ธฐ ์ํ ์น ์๋น์ค์ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ ์กํด์ผํ์๋ค. AutoML์ Thread Dump ๋ถ์ ์์ฒญ์ ํ๊ธฐ ์ํด์๋ Python์ ์ด์ฉํ ์๋ฒ ๊ฐ๋ฐ์ ํ๋ ๊ฒ์ด ์ข ๋ ์ฉ์ดํ์ผ๋ฉฐ ์ด๋ฅผ ์ํด Python Flask๋ฅผ ์ด์ฉํ์ฌ ์๋ฒ๋ฅผ ๊ฐ๋ฐํ์๋ค.
โฒ<๊ทธ๋ฆผ> Khan Thread Dump ๋ชฉ๋ก ์์ฒญ ๋ฐ ๋ถ์ ํญ
Khan์์ ๋ถ์ํ๊ณ ์ถ์ ์ํ์ ์น ํ์ด์ง์ Thread Dump๋ฅผ ์์ฒญํ ํ, ๋ถ์์ ์ํด ํต์๋น์ค ๋ฒํผ์ ๋๋ฌ Thread Dump ๋ถ์ ๋ฒํผ์ ๋๋ฅด๋ฉด ํด๋น Thread Dump๊ฐ ๋ก๊ทธ ๋ถ์ ์๋ฒ์ Rest API๋ฅผ ํตํด ์๋ฒ๋ก ์ ์ก๋๊ฒ ๋๋ค.
โฒ<๊ทธ๋ฆผ> ์ ์ก๋ Thread Dump Data๋ฅผ ๋ฐ์ GCP์ ๋ฐฐํฌ๋ ๋ก๊ทธ ๋ถ์ ์๋ฒ
์ด๋ ๊ฒ ๋ฐ์ Thread Dump๊ฐ์ ์๋ฒ์ ์ ์ฅ์ํจ๋ค. DB๋ฅผ ์ด์ฉํด์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ค๊ณ ํ์์ง๋ง, Thread Dump์ ํน์ฑ์ ์คํ๋๋ Thread์ history๋ฅผ Stack์ฒ๋ผ ์์ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ด๋ ค์์ด ์์๋ค. ์ ๊ณต๋ฐ์ Thread Dump Sample Data ๋งํด๋ char ํฌ๊ธฐ๊ฐ 200์์ 25000๊น์ง ๊ต์ฅํ ์ฐจ์ด๊ฐ ํฌ๋ฏ๋ก DB์ ์ ์ฅํ๊ธฐ์ ์ ํฉํ์ง ์์๋ค. ๋ํ ์๋ฒ์ ํน์ฑ์ ๋ฐ๋ผ Thread Dump ์ Stack ํฌ๊ธฐ๋ ๋ฌด๊ถ๋ฌด์งํ๊ฒ ์ปค์ง ์ ์๊ธฐ ๋๋ฌธ์ DB๋ฅผ ์ด์ฉํ์ฌ ์ ์ฅ์ํฌ ๋ Losslessํ๊ฒ ์ ์ฅํ๊ธฐ๋ ์ด๋ ค์ ๋ค. ๋๋ฌธ์ local์ txt๋ก ์ ์ฅ์ํด์ผ๋ก์ ๋ฐ์ดํฐ์ ํฌ๊ธฐ์ ๊ตฌ์ ๋ฐ์ง ์๊ณ ๋ชจ๋ธ ๋ถ์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์์์์ด ๋ชจ๋ธ๋ก ์ ์กํ ์ ์๊ฒ ํ์๋ค.
์ด๋ ๊ฒ ์ ์ก๋์ด ์ ์ฅ๋ Thread Dump๋ ์๊ฐํ ์น ์๋น์ค์์ api๋ฅผ ํตํด ๋ถ์ ์์ฒญ์ด ๋ค์ด์ค๋ฉด ์ ์ฅ๋ ํ์ผ์ ์ด์ด ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋ ์ด๋ธ๋ง์ ๋์ ํ ์ ์ฒ๋ฆฌ์ ๋๊ฐ์ด ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ๋ฅผ ํด์ค ํ, ์ ์ฒ๋ฆฌ ์๋ฃ๋ ๋ฐ์ดํฐ๋ฅผ AutoML ๋ชจ๋ธ๋ก ์ ์กํ๋ค.
โฒ<๊ทธ๋ฆผ> Thread Dump ์ ์ฒ๋ฆฌ ์ฝ๋
์ ์ฒ๋ฆฌ ์๋ฃ๋ Dump ๋ฐ์ดํฐ๋ฅผ ํ์ต์ํจ Google AutoML ๋ชจ๋ธ๋ก ์ ์กํ๊ณ ๋ฐํ๋ฐ์ ๋ชจ๋ธ์ ๊ฒฐ๊ณผ๊ฐ์ ์น์ผ๋ก ์ ์กํ๋ค. ์๊ฐํ ์น ์๋น์ค๋ ์ ์ก๋ฐ์ ๊ฐ์ ๊ฐ๊ณตํด ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆด ์ ์๋ค.
โฒ<๊ทธ๋ฆผ> AutoML Thread Dump ๋ถ์ ๊ฒฐ๊ณผ๊ฐ
โฒ<๊ทธ๋ฆผ> Thread Dump ๋ถ์ ๊ฒฐ๊ณผ๊ฐ์ ํ์ธํ ์ ์๋ ์น ์๋น์ค
React์ Typescript๋ฅผ ์ด์ฉํด์ AutoML ์์ธก๊ฐ์ ๊ฐ ๋ผ๋ฒจ๊ณผ ํ๋ฅ ๋ก ์ถ๋ ฅํ๋ UI๋ฅผ ๊ฐ๋ฐํ๋ค. ์น์ ์ต์ด ๋ ๋๋ง ์, API ํธ์ถ์ ํตํด ์์ธก๊ฐ์ ์์ฒญํ๊ณ , ๊ทธ ๋ฐํ ๊ฐ์ ํ ์คํธ ํ์๊ณผ ๊ทธ๋ํ ํ์์ผ๋ก ์ถ๋ ฅํ๋ค. ์ฌ๊ธฐ์ ๊ทธ๋ํ๋ ์ฐจํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ amcharts4๋ฅผ ์ฌ์ฉํ๋ค.
โฒ<ํ> ์ด๊ฒฝ์ , ํฉ๋ณด์ ์ . (2020). ์ธ๊ณต์ง๋ฅ๊ณผ ์์ฐ์ฑ. ์ ๋ณด๊ณผํํ์ง, 38(11), 8-16
-
๊ธฐ์ ๊ด์ ์์์ ๊ธฐ๋ ํจ๊ณผ
-
์ ๋ฌด ํ๋ก์ธ์ค ๊ฐ์ํ
-
๋ก๊ทธ ๋ฐ์ดํฐ ๋ถ์์ ์ํ ์๊ฐ ๋ฐ ์ธ๊ฑด๋น ์ ๊ฐ
-
๊ฐ๋ฐ์ ๊ด์ ์์์ ๊ธฐ๋ ํจ๊ณผ
-
NLP ๊ธฐ๋ฐ์ ๋ก๊ทธ ๋ฐ์ดํฐ ๋ถ์ ๋ฐฉํฅ์ฑ ์ ์ ๋ฐ ํ์ฉ์ฑ ๊ทน๋ํ
-
์์คํ ์ ์ง ๋ฐ ๋ณด์ ๋ฐฉํฅ์ฑ ์ ์
-
์๋น์ ๊ด์ ์์์ ๊ธฐ๋ํจ๊ณผ
-
์พ์ ํ๊ณ ํธ๋ฆฌํ ์๋น์ค ์ ๊ณต๋ฐ์
-
๋์ฆ์ ์ต์ ํ๋ ์๋น์ค ์ ๊ณต๋ฐ์
-
๋ก๊ทธ ๋ฐ์ดํฐ ๋ถ์ ์น ์ ํ๋ฆฌ์ผ์ด์
-
๋ก๊ทธ ๋ถ์ ๋ชจ๋ธ ๊ฐ๋ฐ ํ, ๋ชจ๋ธ ํ์ฉ์๋ ์ ๋ฌธ ์ธ๋ ฅ์ ๋์ ์ด ํ์์ ์ด์ง ์๋ค. ๊ทธ๋ฌํ ์ฅ์ ์ ๊ทน๋ํ ์ํค๊ธฐ ์ํด ๋ชจ๋ธ์ ํ์ฉํ ์ ์๋ ์๋น์ค๋ฅผ ํตํด ์ ๊ทผ์ฑ์ ๋์ด๋ ๊ฒ์ด ์ค์ํ๋ค. ๋ฐ๋ผ์ Khan๊ณผ ์ฐ๊ณํ์ฌ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ํํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํตํด ๋น๊ฐ๋ฐ์๋ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ๋ถ์์ด ๊ฐ๋ฅํ๋๋ก ํ์๋ค.
-
REST API๋ฅผ ํ์ฉํ ๋ถ์ ๊ฒฐ๊ณผ ํต์
-
ํ ์ฌ์์ ์์ฒญ๋ฐ์ ๋ฐ์ดํฐ ๋ถ์์ ๊ฐ๋ฐ๋ ๋ชจ๋ธ์ ํตํด ์งํ ํ ํ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ REST API๋ก ๋๊ฒจ์ฃผ๋ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ค. ์ด๋ฅผ ํตํด ํ ๊ธฐ์ ์ ์ํํธ์จ์ด์ ๋ชจ๋ธ์ ์ด์ํ์ฌ ์ฌ์ฉํ ์ ์์ด ํ์ฉ๋๊ฐ ๋์์ง ๊ฒ์ด๋ค.
Name | ๊น๋ณด๊ทผ | ๊น๋ํ | ๊น๋คํ | ์ฅ๋ช ์ฃผ | ์ดํ์ง |
---|---|---|---|---|---|
Profile | |||||
role | Team Leader 1,2์ฐจ ๋ฐ์ดํฐ ๋ถ์ 1, 2์ฐจ ๋ ์ด๋ธ๋ง AutoML ๊ฐ๋ฐ BERT ๊ฐ๋ฐ |
1์ฐจ ๋ฐ์ดํฐ ๋ถ์ AutoML ๊ฐ๋ฐ Test Web Application Model Serving Server ๊ฐ๋ฐ |
1, 2์ฐจ ๋ฐ์ดํฐ ๋ถ์ 1, 2์ฐจ ๋ ์ด๋ธ๋ง AutoML ๊ฐ๋ฐ ํ์ต์ฉ ๋ฐ์ดํฐ ํ์ผ ๊ตฌ์ถ |
๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ 1, 2์ฐจ ๋ฐ์ดํฐ ๋ถ์ ๋ฐ 1, 2์ฐจ ๋ ์ด๋ธ๋ง AutoML ๊ฐ๋ฐ BERT ๊ฐ๋ฐ |
1์ฐจ ๋ฐ์ดํฐ ๋ถ์ AutoML ๊ฐ๋ฐ Serving Web Service UI/UX ๋์์ธ ๋ฐ FrontEnd ๊ฐ๋ฐ |
Github | @Geunboda | @lamknh | @Loreha0223 | @dhraudwn | @hyunji-lee99 |