Quick Start Guide
์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ DS2.ai ๋Š” ์ธ๊ณต์ง€๋Šฅ ๋ชจ๋ธ ๊ฐœ๋ฐœ๊ณผ ์šด์˜์„ ํ•œ ๊ณณ์—์„œ ํ•  ์ˆ˜ ์žˆ๋Š” MLOps ๊ธฐ๋ฐ˜ No-code AI ๊ฐœ๋ฐœ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์ค€๋น„์—์„œ ๋ ˆ์ด๋ธ” ์ง€์ •, ์ธ๊ณต ์ง€๋Šฅ ๊ฐœ๋ฐœ, ๋ฐฐํฌ, ์œ ์ง€ ๊ด€๋ฆฌ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์„ ์ž๋™ํ™”ํ•˜๋Š” ํ”Œ๋žซํผ์ธ DS2.ai ์—์„œ AI ๋„์ž…๋ถ€ํ„ฐ ๋ฐฐํฌ๊นŒ์ง€ ๊ฐ„๋‹จํ•œ ํด๋ฆญ์œผ๋กœ ์ธ๊ณต์ง€๋Šฅ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๊ณ , ๊ฐœ๋ฐœ์ž์™€ ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž์—๊ฒŒ๋Š” ์•ˆ์ •์ ์ธ ์„œ๋ฒ„ ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ๊ณผ AI ์‹œ์Šคํ…œ ๊ตฌ์ถ•์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€๋“œ๋ฆฝ๋‹ˆ๋‹ค.
  • ๋ฉ”๋‰ด์–ผ & ์˜คํ†  ๋ผ๋ฒจ๋ง ํˆด (์ •ํ˜•ํ™”, ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€, ์ถ”์ฒœ์‹œ์Šคํ…œ)
  • ๋จธ์‹ ๋Ÿฌ๋‹ & ๋”ฅ๋Ÿฌ๋‹ ํ•™์Šต (Pytorch, Tensorflow, XGboost, etc)
  • AI ๋ถ„์„ (์ฒ˜๋ฐฉ์  ๋ถ„์„๊ณผ ๋ฐ์ดํ„ฐ ๋ถ„์„ ์ง€์›)
  • AI ๋ชจ๋ธ ๋ฐฐํฌ์™€ ๋ชจ๋‹ˆํ„ฐ๋ง
  • API & Python SDK ์ง€์›
โ€‹

Step 1 : ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ํ•˜๊ธฐ

โ€‹
๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. 1. DS2.ai ๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” nvidia-docker2 ์™€ docker-compose ์„ค์น˜๊ฐ€ ํ•„์ˆ˜์ ์œผ๋กœ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋งํฌ๋ฅผ ๋ˆŒ๋Ÿฌ ์„ค์น˜๋ฅผ ๋จผ์ € ์™„๋ฃŒํ•ด์ฃผ์„ธ์š”.
2. nvidia-docker2 docker-compose ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด, ํ„ฐ๋ฏธ๋„์„ ์‹คํ–‰ํ•œ ํ›„, ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
GPU version (nvidia-docker2 ์„ค์น˜ ํ•„์š”)
CPU version
โ€‹
mkdir ds2ai
โ€‹
cd ds2ai
โ€‹
wget https://assetdslab.s3.ap-southeast-1.amazonaws.com/gpu/docker-compose.yml
โ€‹
sudo docker-compose up -d
โ€‹
mkdir ds2ai
โ€‹
cd ds2ai
โ€‹
wget https://assetdslab.s3.ap-southeast-1.amazonaws.com/cpu/docker-compose.yml
โ€‹
sudo docker-compose up -d
3. ์„ค์น˜๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ ๋˜๋ฉด http://localhost:13000 ์œผ๋กœ ์ ‘์†ํ•˜์—ฌ ds2.ai ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
์ตœ์ดˆ ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋œ ํ›„ ์•ฝ 3~5๋ถ„ ์ •๋„์˜ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ง„ํ–‰๋œ ํ›„ ์ ‘์†์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
* ์‚ญ์ œ๋ฅผ ์›ํ•˜์‹œ๋Š” ๊ฒฝ์šฐ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์‹œ๋ฉด ์‚ญ์ œ๊ฐ€ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
sudo docker stop ds2ai-container
sudo docker rm ds2ai-container
sudo docker rmi dslabglobal/ds2ai:stable
โ€‹

Step 2: ๊ด€๋ฆฌ์ž ๊ณ„์ • ๋“ฑ๋กํ•˜๊ธฐ

์„ค์น˜๊ฐ€ ๋๋‚œ ํ›„ http://localhost:13000 ๋กœ ์ ‘์†ํ•˜๋ฉด, ๊ด€๋ฆฌ์ž๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
๊ฐ€์ž…์ด ๋๋‚˜๋ฉด ds2.ai ์˜ ์ตœ์ดˆ ๊ด€๋ฆฌ์ž ๊ณ„์ •์ด ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์ž…์ด ๋˜๊ณ  ๋‚˜๋ฉด ์ตœ์ดˆ ํŽ˜์ด์ง€๊ฐ€ ๋ณด์—ฌ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
โ€‹

Step 3: ๋ผ๋ฒจ๋ง ์‹œ์ž‘ํ•˜๊ธฐ

์ธ๊ณต์ง€๋Šฅ ๋ชจ๋ธ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํ•™์Šต๋ฐ์ดํ„ฐ ๋ผ๋ฒจ๋ง ๋„๊ตฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ƒ๋‹จ ๋ฉ”๋‰ด์—์„œ ๋ผ๋ฒจ๋ง์„ ํด๋ฆญ ํ•œ ํ›„ ๋ฐ์ดํ„ฐ์…‹์„ ์—…๋กœ๋“œํ•˜๋ฉด ์ˆ˜๋™ ๋ผ๋ฒจ๋ง๊ณผ ์˜คํ† ๋ผ๋ฒจ๋ง ํˆด ์ค‘ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์—ฌ ๋ผ๋ฒจ๋ง์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Step 4: ํ•™์Šต ์‹œ์ž‘ํ•˜๊ธฐ

๋ผ๋ฒจ๋ง์ด ์™„๋ฃŒ๋˜๋ฉด ํ•™์Šต๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ธ๊ณต์ง€๋Šฅ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ์…‹์ด๋‚˜ ๋ผ๋ฒจ๋ง ํ”„๋กœ์ ํŠธ ํ™”๋ฉด์—์„œ "์ธ๊ณต์ง€๋Šฅ ๊ฐœ๋ฐœ ์‹œ์ž‘ํ•˜๊ธฐ" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์ธ๊ณต์ง€๋Šฅ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์„ค์ •ํ™”๋ฉด์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์„ค์ • ํ™”๋ฉด์—์„œ๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์ง€์›ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ˆ˜๋™ ์„ค์ • : ๋”ฅ๋Ÿฌ๋‹ & ๋จธ์‹ ๋Ÿฌ๋‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (Pytorch, Tensorflow, XGboost ๋“ฑ) ์„ค์ • ์ง€์› ๊ธฐ๋Šฅ
  • ์ฝ”๋“œ ์ƒ์„ฑ : ์ฃผํ”ผํ„ฐ ํ™˜๊ฒฝ์—์„œ ๋ฐ”๋กœ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•œ ์ธ๊ณต์ง€๋Šฅ ๊ฐœ๋ฐœ ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ
  • ํ•™์Šต ์†๋„ ๋น ๋ฅด๊ฒŒ (AutoML) : AutoML ํ•™์Šต ๊ธฐ๋ฒ• ์ค‘ ํ•™์Šต ์†๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•˜์—ฌ ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๊ธฐ๋Šฅ
  • ์ •ํ™•๋„ ๋†’๊ฒŒ (AutoML) : AutoML ํ•™์Šต ๊ธฐ๋ฒ• ์ค‘ ์ •ํ™•๋„๊ฐ€ ๋†’๊ฒŒ๋” ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ธฐ๋Šฅ
์›ํ•˜๋Š” ํ•™์Šต ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•œ ํ›„ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” Start ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํ•™์Šต์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์‹œ์ž‘ ํ›„ ํ•˜๋‹จ์— "๋ชจ๋ธ" ํƒญ์„ ํด๋ฆญํ•˜๋ฉด ๊ฐœ๋ฐœ๋˜๋Š” ๋ชจ๋ธ์˜ ์ง„ํ–‰์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•™์Šต์ด ๋๋‚˜๊ณ  ๋‚˜๋ฉด ๊ฐ ๋ชจ๋ธ์˜ ์ •ํ™•๋„๋“ฑ ์ •๋ณด ํ™•์ธ๊ณผ ๋ชจ๋ธ์„ ์ด์šฉํ•œ "์˜ˆ์ธกํ•˜๊ธฐ" ๊ธฐ๋Šฅ, ๋ชจ๋ธ์„ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” "๋ฐฐํฌํ•˜๊ธฐ" ๊ธฐ๋Šฅ, ๋ชจ๋ธ์„ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง„ ์˜ˆ์ธก ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ์…‹์„ ํ†ตํ•œ "๋ถ„์„ํ•˜๊ธฐ" ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Step 5 : ๋ชจ๋ธ ๋ฐฐํฌํ•˜๊ธฐ

DS2.ai ๋ฅผ ํ†ตํ•ด ํ•™์Šต์„ ์™„๋ฃŒํ•˜๊ฑฐ๋‚˜ ์ด๋ฏธ ๋งŒ๋“ค์–ด๋†“์€ ๋ชจ๋ธ์„ DS2.ai ์— ์—…๋กœ๋“œํ•˜์—ฌ ๋ชจ๋ธ ๋ฐฐํฌํ•˜๊ธฐ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋ชจ๋ธ์„ ์ง์ ‘ ์—…๋กœ๋“œ ํ•˜๋Š” ๊ธฐ๋Šฅ์€ Pytorch ์™€ Tensorflow2 ๋ชจ๋ธ์„ ์ง€์›ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.)
์ƒ๋‹จ์— ์žˆ๋Š” "๋ฐฐํฌ" ๋ฉ”๋‰ด ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์—…๋กœ๋“œ๋ฅผ ํ•˜๊ฑฐ๋‚˜ "ํ•™์Šต" ๋ฉ”๋‰ด์—์„œ ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ๋œ ๋ชจ๋ธ์„ "๋ฐฐํฌํ•˜๊ธฐ" ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋ฐฐํฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฐฐํฌ๊ฐ€ ๋œ ๋ชจ๋ธ์€ ๋ณ„๋„์˜ ์—”๋“œํฌ์ธํŠธ๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, API ํ˜ธ์ถœํšŸ์ˆ˜๋“ฑ์„ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ชจ๋ธ์ด ๋ฐฐํฌ๋œ ํ›„, ์˜ˆ์ธก์— ์‚ฌ์šฉ๋œ ์ž…๋ ฅ๊ฐ’๊ณผ ์ถœ๋ ฅ๊ฐ’์€ ์ž๋™์œผ๋กœ ๋ฐ์ดํ„ฐ์…‹์— ์ €์žฅ๋˜์–ด ์•กํ‹ฐ๋ธŒ ๋Ÿฌ๋‹์„ ํ†ตํ•ด ์ •ํ™•๋„๊ฐ€ ๋” ๋†’์€ ์ธ๊ณต์ง€๋Šฅ์„ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.

Step 6 : Python SDK ์ด์šฉํ•˜๊ธฐ

DS2.ai ์˜ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋Š” ๋‹ค์–‘ํ•œ ์กฐ๊ฑด์˜ ํ•™์Šต ์„ค์ •์„ ์‰ฝ๊ฒŒ ํ•˜์—ฌ ์ตœ์ ์˜ ์ธ๊ณต์ง€๋Šฅ ๋ชจ๋ธ์„ ๋„์ถœ ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋™ ์„ค์ • ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.
pip install ds2ai
ds2ai ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜๋ฅผ ์™„๋ฃŒํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ˆ์ œ๋ฅผ ์ด์šฉํ•ด์„œ ํ•™์Šต ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
import ds2ai
ds2 = ds2ai.DS2("your-app-code")
โ€‹
project = ds2.train(
"BankMarketing.csv",
option="custom",
training_method="normal",
value_for_predict="๊ณผ๊ธˆ ์—ฌ๋ถ€",
algorithm="keras_ann",
hyper_params={
"layer_width": [20,3,5],
"layer_deep": [3],
"epochs": [10],
"loss_function": ["mean_squared_error"],
"optimizer": [
{
"clipvalue": 0.5,
"learning_rate": 0.001,
"beta_1": 0.9,
"beta_2": 0.9999,
"epsilon": None,
"decay": 0,
"amsgrad": False,
"function_name": "Adam"
}
],
"activation": ["relu"],
"batch_size": [32],
"output_activation": ["relu"]
}
)
์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์˜ ์œ ์ € ์ด๋ฆ„์„ ํด๋ฆญํ•˜๋ฉด ์•ฑ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด ์•ฑ์ฝ”๋“œ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ๋„ฃ์–ด์ค€ ํ›„ ์œ„ ์ฝ”๋“œ๋กœ ํ•™์Šต ์‹œ์ž‘์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ds2 = ds2ai.DS2("Your App code")
์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ๋‚˜๋ฉด ds2.ai ์—์„œ ์ž‘์—… ์ƒํ™ฉ ๋ฐ ํ•™์Šต์ด ์™„๋ฃŒ๋œ ๋ชจ๋ธ์„ ์˜ˆ์ธกํ•˜๊ฑฐ๋‚˜ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ ์™ผ์ชฝ ๋ฉ”๋‰ด ์ค‘ "SDK | PYTHON" ์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

๋‹ค์Œ ๋‹จ๊ณ„

์•ž์„  ๊ธฐ๋Šฅ๋“ค์€ UI ์—์„œ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ API ๋‚˜ Python SDK ๋ฅผ ํ†ตํ•ด ๊ธฐ์กด์— ์ž‘์—…๋˜ ์ฝ”๋“œ์™€ ์—ฐ๋™ํ•˜์—ฌ ์‹œ๋„ˆ์ง€๋ฅผ ๋ฐœํœ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ด๋“œ ์™ผ์ชฝ ๋ฉ”๋‰ด ์ค‘ Recipe ๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์˜ˆ์ œ๋ฅผ ์‹ค์Šตํ•ด๋ณผ ์ˆ˜ ์žˆ๊ณ , AI ๋ชจ๋ธ์„ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋Š” "๊ฒ€์ฆ" ๋ฉ”๋‰ด๋‚˜ ์ฃผํ”ผํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ํฌํŠธ์— ๋ถ„๋ฆฌํ•˜์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” "์ฃผํ”ผํ„ฐ" ๋ฉ”๋‰ด ๋“ฑ ์ธ๊ณต์ง€๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ํƒ‘์žฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋” ์ž์„ธํ•œ ๊ฐ€์ด๋“œ๋Š” ์•„๋ž˜ ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.