๐ŸŒˆ ๋จธ์‹ ๋Ÿฌ๋‹ ์‹œ์Šคํ…œ ๋””์ž์ธ ํŒจํ„ด - ๋‹ค์–‘ํ•œ ๋จธ์‹ ๋Ÿฌ๋‹ ์‹œ์Šคํ…œ ๋””์ž์ธ ํŒจํ„ด์— ๋Œ€ํ•ด ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค - Serving, QA(๋ชจ๋ธ ํ…Œ์ŠคํŠธ), Training, Operation, Lifecycle ํŒจํ„ด์— ๋Œ€ํ•ด ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค - ํ•œ๊ตญ์–ด๋กœ ๋ฒˆ์—ญํ•œ ์ž๋ฃŒ๋ผ ๊ด€์‹ฌ ์žˆ๋Š” ๋ถ„๋“ค์€ ๋ณด์‹œ๋ฉด ์œ ์ตํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค! - Serving ์ค‘ Synchronous pattern๋งŒ ์˜ˆ์‹œ๋กœ ์›๋ฌธ์„ ๊ฐ€์ ธ์˜ฌ๊ฒŒ์š” :) - Github : https://github.com/mercari/ml-system-design-pattern ๐ŸŽ ์ด ๊ธ€์„ ์ถ”์ฒœํ•˜๋Š” ์ด์œ  - ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ ํ”„๋Ÿฌ๋•์…˜์‹œ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋””์ž์ธ ํŒจํ„ด์— ๋Œ€ํ•ด ์ž‘์„ฑ๋˜์–ด ์žˆ๋Š” ์ž๋ฃŒ - Serving ํŒจํ„ด ์˜ˆ์‹œ : ๋ฐฐ์น˜ ํŒจํ„ด, ๋น„๋™๊ธฐ ํŒจํ„ด, ๋™๊ธฐ ํŒจํ„ด, ๋ฐ์ดํ„ฐ ์บ์‹ฑ ํŒจํ„ด, ์˜ˆ์ธก ์บ์‹ฑ ํŒจํ„ด ๋“ฑ๋“ฑ - ๊ฐœ์ธ์ ์œผ๋กœ ๋ดค๋˜ ๊ธ€ ์ค‘(๋™์˜์ƒ, ๊ธ€ ํฌํ•จ) ์ œ์ผ ์—ฌ๋Ÿฌ ํŒจํ„ด์„ ์ž‘์„ฑํ•œ ์ปจํ…์ธ ์ž…๋‹ˆ๋‹ค - ๊ฐ ํŒจํ„ด์„ ๋„์‹ํ™”ํ•ด์„œ ์ „๋‹ฌํ•˜๊ณ , ์žฅ๋‹จ์ ๊ณผ ์–ธ์ œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์€์ง€ ์ž‘์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค - ์•ˆํ‹ฐ ํŒจํ„ด๋„ ์ž‘์„ฑ๋˜์–ด ์žˆ์–ด์„œ, ํ”ผํ•ด์•ผ ํ•˜๋Š” ํŒจํ„ด์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค - ํ•œ๊ตญ์–ด๋กœ ๋ฒˆ์—ญ๋œ ์ž๋ฃŒ! ๐Ÿ‘ ์ฝ์œผ๋ฉด ์ข‹์€ ๋ถ„ - MLOps์— ๊ด€์‹ฌ์žˆ๋Š” ๋ถ„๋“ค - ๋จธ์‹ ๋Ÿฌ๋‹ ์‹œ์Šคํ…œ์„ ํ”„๋Ÿฌ๋•์…˜์— ์ ์šฉํ•ด์•ผ ํ•˜๋Š” ๋ถ„๋“ค - ๋จธ์‹ ๋Ÿฌ๋‹ ์‹œ์Šคํ…œ ํŒจํ„ด์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค ๐Ÿ“‹ ๋‚ด์šฉ Serving patterns - ์„œ๋น™ ํŒจํ„ด์€ ์‹ค์ œ ์šด์˜ ํ™˜๊ฒฝ์—์„œ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“œ๋Š” ํŒจํ„ด - Web single pattern - Synchronous pattern - Usecase - ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์˜ˆ์ธก ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, ์˜ˆ์ธก ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ์›Œํฌํ”Œ๋กœ์šฐ๊ฐ€ ๋‹ฌ๋ผ์ง€๋Š” ๊ฒฝ์šฐ - Architecture - ์˜ˆ์ธก์„ ๋™๊ธฐ์‹์œผ๋กœ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ - REST ๋˜๋Š” GRPC๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ - ๊ฐ„๋‹จํ•œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‰ฌ์šด ํŒจํ„ด - ์žฅ์  - ์•„ํ‚คํ…์ฒ˜์˜ ๋‹จ์ˆœํ•จ์œผ๋กœ ๊ด€๋ฆฌ๊ฐ€ ์‰ฌ์›€ - ์˜ˆ์ธก์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ง„ํ–‰๋˜์ง€ ์•Š์•„ ์›Œํฌํ”Œ๋กœ์šฐ๊ฐ€ ๋‹จ์ˆœํ•ด์ง - ๋‹จ์  - ์˜ˆ์ธก ์†๋„๊ฐ€ ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ๋จ - ์˜ˆ์ธก ์ง€์—ฐ์œผ๋กœ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ์•…ํ™”๋˜์ง€ ์•Š๋„๋ก ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๊ณ ๋ คํ•ด์•ผ ํ•จ - ๋‚˜๋จธ์ง€ ํŒจํ„ด์˜ ๋””ํ…Œ์ผ์€ ๋ณธ๋ฌธ์„ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค :) - Asynchronous pattern - Batch pattern - Prep-pred pattern - Microservice vertical pattern - Microservice horizontal pattern - Prediction cache pattern - Data cache pattern - Prediction circuit break pattern - Multiple stage prediction pattern - Antipatterns - Online bigsize pattern - All-in-one pattern QA patterns - ๋ชจ๋ธ์„ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ํŒจํ„ด์ž…๋‹ˆ๋‹ค - Shadow AB-testing pattern - Online AB-testing pattern - Loading test pattern - Antipatterns - Offline-only pattern Training patterns - ํ•™์Šต ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. - Batch training pattern - Pipeline training pattern - Parameter and architecture search pattern - Antipatterns - Only-me pattern - Training code in serving pattern - Too many pipes pattern Operation patterns - ML ํ•™์Šต ์‹œ์Šคํ…œ์˜ ์„ค์ •๊ณผ ๋กœ๊น…, ๋ชจ๋‹ˆํ„ฐ๋ง, ์•Œ๋žŒ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ ์šด์˜ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. - Model-in-image pattern - Model-load pattern - Data model versioning pattern - Prediction log pattern - Prediction monitoring pattern -Parameter-based serving pattern - Condition-based-serving pattern - Antipatterns - No logging pattern - Nobody knows pattern Lifecycle patterns - ์‹ค์ œ ์šด์˜์„ ์œ„ํ•œ ML ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ํŒจํ„ด๋“ค์„ ์กฐํ•ฉํ•œ ํŒจํ„ด์ž…๋‹ˆ๋‹ค - Train-then-serve pattern - Training-to-serving pattern

ml-system-design-pattern

ml-system-design-pattern

ml-system-design-pattern

๋‹ค์Œ ๋‚ด์šฉ์ด ๊ถ๊ธˆํ•˜๋‹ค๋ฉด?

๋˜๋Š”

์ด๋ฏธ ํšŒ์›์ด์‹ ๊ฐ€์š”?

2021๋…„ 2์›” 28์ผ ์˜ค์ „ 11:06

๋Œ“๊ธ€ 0




๋น„์Šทํ•œ ๊ฒŒ์‹œ๋ฌผ

์ฃผ๊ฐ„ ์ธ๊ธฐ TOP 10

1

์กฐ์„œํฌ ์ปฌ๋ฆฌ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž

๐Ÿ•Š๏ธ 2024 ๋ฒ„ํด๋ฆฌ์ฆˆ Java SpringBoot ์ธํ„ฐ๋ทฐ ์งˆ๋ฌธ

2

๊ถŒํƒœ๊ด€ NAVER ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด

๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์— ๋Œ€ํ•œ ์˜์ƒ ์ •๋ฆฌ

3

K๋ฆฌ๊ทธ ํ”„๋กœ๊ทธ๋ž˜๋จธ ์ปคํ”ผํ•œ์ž” ๊ฐœ๋ฐœ์ž

๋‹ค์‹œ ํ•œ ๋ฒˆ ์˜์–ด ๊ณต๋ถ€

4

์„œ์˜ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž

ํ† ์Šค: React Native์˜ ๋ฏธ๋ž˜ ๐Ÿ’™

5

ํ™ฉ๊ฒฝ์ฐฌ ๋ผ์ธ ํ”Œ๋Ÿฌ์Šค ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž

ํ›Œ๋ฅญํ•œ ์ฃผ๋‹ˆ์–ด FE์˜ ํŠน์ง•?

์ถ”์ฒœ ํ”„๋กœํ•„