ML/MLOps Engineer
๋„คํŠธ์›Œํ‚น์„ ํ†ตํ•ด ๋ฐฐ์šด ๊ฒƒ๋“ค

 
11์›” ์ดˆ๋ถ€ํ„ฐ 12์›” ๋ง๊นŒ์ง€ ์šฐ์•„ํ•œ ์Šคํ„ฐ๋””์— ์ฐธ๊ฐ€ํ•˜์—ฌ Dask์™€ Ray์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ‰์†Œ ์—…๋ฌด๋ฅผ ํ•˜๋ฉด์„œ ๊ธฐ์ˆ ์ ์ธ ์–ด๋ ค์›€์ด ์žˆ์–ด๋„ ๋‚ด๋ถ€์ ์œผ๋กœ ํ•ด๊ฒฐ์ด ์–ด๋ ค์šธ ๋•Œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿด ๋•Œ ๋งˆ๋‹ค ๋‹ค๋ฅธ ํšŒ์‚ฌ์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•˜๋Š”์ง€ ๊ถ๊ธˆ์ฆ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์™ธ์—๋„ ๋‹ค๋ฅธ ์‚ฐ์—…๊ตฐ์ด๋‚˜ ์„œ๋น„์Šค์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•˜๊ณ  ์–ด๋ ค์›€๋“ค์„ ํ•ด๊ฒฐํ•˜๋Š”์ง€ ๋“ค์–ด๋ณด๊ณ  ์‹ถ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ๊ธฐํšŒ๊ฐ€ ๋˜์–ด ์Šคํ„ฐ๋””์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 
 
์—…๋ฌด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ๋Œ€์šฉ๋Ÿ‰ parquet ํŒŒ์ผ์„ ์ฝ๊ณ  pandas๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ ์—๋Ÿฌ๋ฅผ ๊ฒฝํ—˜ํ•œ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. 'pyspark to_pandas memory error' ๋ผ๊ณ  ๊ฒ€์ƒ‰ํ•˜๋ฉด ๋‹ค์–‘ํ•œ ์—๋Ÿฌ ์‚ฌ๋ก€๋“ค์ด ๋‚˜์˜ค๊ณค ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” dask ์—์„œ parquet๋ฅผ ์ฝ๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•œ ๊ฒฝํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํ„ฐ๋””์—์„œ Polars๋ฅผ ์‚ฌ์šฉํ•˜์…จ๋˜ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•ด์ฃผ์…”์„œ, ์ถ”ํ›„์— ๋น„์Šทํ•œ ๋ฌธ์ œ์— ์ฒ˜ํ•  ๋•Œ Polars๋ฅผ ์‚ฌ์šฉํ•ด์„œ๋„ ์ ‘๊ทผํ•ด ๋ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
 
dask์™€ ray์—์„œ ml ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹๋“ค๋„ ํฅ๋ฏธ๋กœ์› ๋Š”๋ฐ์š”, dask ml์—์„œ๋Š” ๊ธฐ์กด sklearn์˜ ๋ฉ”์„œ๋“œ๋“ค๊ณผ ๋™์ผํ•œ ์‚ฌ์šฉ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ๊ธฐ์กด sklearn ์‚ฌ์šฉ์ž๋“ค์ด ์‚ฌ์šฉ๋ฒ•์„ ์ตํžˆ๊ธฐ์— ์ง„์ž… ์žฅ๋ฒฝ์ด ๋‚ฎ์•„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Pytorch(Skorch)์™€ Keras(SciKeras) ์—์„œ๋„ Scikit-learn๊ณผ ํ˜ธํ™˜๋˜๊ฒŒ ๋ž˜ํ•‘ํ•œ ํ›„ Dask ml์˜ parameter search๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ๋„ ํฅ๋ฏธ๋กœ์› ์Šต๋‹ˆ๋‹ค. ray tune๋„ ํ™˜๊ฒฝ์ด ์ž˜ ๊ตฌ์ถ•๋˜์–ด์žˆ๋‹ค๋ฉด ํšจ๊ณผ์ ์ธ ์†๋„ ๊ฐœ์„ ์ด ๋˜๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๋ฒ„์ „์— ๋”ฐ๋ผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์–ด์„œ ์ด ๋ถ€๋ถ„์€ ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•ด ๋ณด์˜€์Šต๋‹ˆ๋‹ค.
 
dask, ray์™ธ์—๋„ duckdb, polars๋„ ์ ‘ํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊นŠ์ด ์žˆ๊ฒŒ ๋‹ค๋ฃจ๊ธฐ์—๋Š” ์‹œ๊ฐ„์ƒ์— ์–ด๋ ค์›€์ด ์žˆ์—ˆ์œผ๋‚˜, ํ™œ์šฉ ์‚ฌ๋ก€๋‚˜ ํŠน์ง•๋“ค์„ ์•Œ๊ฒŒ๋˜๊ณ  ๊ฐ์ž์˜ ๋ถ„์•ผ์—์„œ ์ ์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ๋“ค์–ด๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ์œ ์ตํ•œ ์‹œ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค.
 
๊ทธ๋ฆฌ๊ณ  12์›”์—๋Š” ๋ฉ€ํ‹ฐ์บ ํผ์Šค์—์„œ ๋„์ปค์™€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์˜คํ”„๋ผ์ธ ๊ต์œก๋„ ๋“ฃ๊ณ , ์ด์‚ฌ๋„ ํ•˜๊ณ , ๊ฐœ์ธ์ ์œผ๋กœ ๋งŽ์ด ํž˜์ด ๋“ค์—ˆ๋˜ ํ•œ ๋‹ฌ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์™€์ค‘์—๋„ ๊ฑธ์Šค์ธํ…๊ณผ ์นœ๊ตฌ๋“ค ๋ฐ‹์—…๋„ ๋‹ค๋…€์˜ค๋ฉฐ ๋‹ค์–‘ํ•œ ๋ถ„๋“ค๊ณผ ์ด์•ผ๊ธฐ๋ฅผ ๋“ค์–ด๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 23๋…„ ๋„์ „ํ•˜๊ณ  ์‹ถ์—ˆ๋˜ ๊ฒƒ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋„คํŠธ์›Œํ‚น ํ™œ๋™๋“ค์— ์ฐธ์—ฌํ•ด์„œ ์‹๊ฒฌ์„ ๋„“ํžˆ๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ €์˜ ๊ณ ๋ฏผ์— ๋Œ€ํ•ด์„œ๋„ ๋‚˜๋ˆ„์–ด๋ณด๊ณ  ๋‹ค์–‘ํ•œ ๊ฒฝํ—˜์„ ๋“ค์–ด๋ณด๋ฉฐ ์ž์‹ ์— ๋Œ€ํ•ด์„œ ์ข€ ๋” ์•Œ๊ฒŒ ๋˜๋Š” ์‹œ๊ฐ„์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 
 
24๋…„์—๋„ ํ•จ๊ป˜ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์—์„œ ์„ฑ์žฅํ•˜๋Š” ํ•œ ํ•ด๊ฐ€ ๋˜๊ธฐ๋ฅผ ๊ธฐ์›ํ•ฉ๋‹ˆ๋‹ค !