MLOps - เด•เตเด•เตเด•เต เดฌเตเด•เตเด•เต, เด…เดงเตเดฏเดพเดฏเด‚ 1

MLOps - เด•เตเด•เตเด•เต เดฌเตเด•เตเด•เต, เด…เดงเตเดฏเดพเดฏเด‚ 1

เดŽเดฒเตเดฒเดพเดตเตผเด•เตเด•เตเด‚ เดนเดพเดฏเต! เดžเดพเตป CROC-เดฏเดฟเดฒเต† เด’เดฐเต CV เดกเต†เดตเดฒเดชเตเดชเดฑเดพเดฃเต. เดžเด™เตเด™เตพ เด‡เดชเตเดชเต‹เตพ 3 เดตเตผเดทเดฎเดพเดฏเดฟ เดธเดฟเดตเดฟ เดฎเต‡เด–เดฒเดฏเดฟเตฝ เดชเดฆเตเดงเดคเดฟเด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต. เดˆ เดธเดฎเดฏเดคเตเดคเต, เดžเด™เตเด™เตพ เดงเดพเดฐเดพเดณเด‚ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดšเต†เดฏเตเดคเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต: เดžเด™เตเด™เตพ เดกเตเดฐเตˆเดตเตผเดฎเดพเดฐเต† เดจเดฟเดฐเต€เด•เตเดทเดฟเดšเตเดšเต, เด…เด™เตเด™เดจเต† เดตเดพเดนเดจเดฎเต‹เดŸเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด…เดตเตผ เดฎเดฆเตเดฏเดชเดฟเด•เตเด•เดฐเตเดคเต, เดชเตเด•เดตเดฒเดฟเด•เตเด•เดฐเตเดคเต, เดซเต‹เดฃเดฟเตฝ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เดฐเตเดคเต, เดฑเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดจเต‹เด•เตเด•เตเด•, เดธเตเดตเดชเตเดจเด™เตเด™เดณเดฟเดฒเต‹ เดฎเต‡เด˜เด™เตเด™เดณเดฟเดฒเต‹ เด…เดฒเตเดฒ. ; เดธเดฎเตผเดชเตเดชเดฟเดค เดชเดพเดคเด•เดณเดฟเตฝ เดตเดพเดนเดจเดฎเต‹เดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดจเดฟเดฐเดตเดงเดฟ เดชเดพเตผเด•เตเด•เดฟเด‚เด—เต เดธเตเดฅเดฒเด™เตเด™เตพ เดŽเดŸเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจ เด†เดณเตเด•เดณเต† เดžเด™เตเด™เตพ เดฑเต†เด•เตเด•เต‹เตผเดกเตเดšเต†เดฏเตโ€Œเดคเต; เดคเตŠเดดเดฟเดฒเดพเดณเดฟเด•เตพ เดนเต†เตฝเดฎเดฑเตเดฑเต, เด•เดฏเตเดฏเตเดฑเด•เตพ เดฎเตเดคเดฒเดพเดฏเดต เดงเดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเตเดตเดฐเตเดคเตเดคเดฟ; เดธเต—เด•เดฐเตเดฏเดคเตเดคเดฟเตฝ เดชเตเดฐเดตเต‡เดถเดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดœเต€เดตเดจเด•เตเด•เดพเดฐเดจเต† เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดžเตเดžเต; เดžเด™เตเด™เตพเด•เตเด•เต เด•เดดเดฟเดฏเตเดจเตเดจเดคเต†เดฒเตเดฒเดพเด‚ เดžเด™เตเด™เตพ เดŽเดฃเตเดฃเดฟ.

เดžเดพเตป เดŽเดจเตเดคเดฟเดจเต เดตเต‡เดฃเตเดŸเดฟเดฏเดพเดฃเต เด‡เดคเต†เดฒเตเดฒเดพเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต?

เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเดฟเตฝ, เดžเด™เตเด™เตพ เดฌเดฎเตเดชเตเด•เตพ, เด’เดฐเตเดชเดพเดŸเต เดฌเดฎเตเดชเตเด•เตพ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเดฐเดฟเดšเดฟเดคเดฎเดพเดฏ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดญเดพเดตเดฟเดฏเดฟเตฝ เดชเดฐเดฟเดšเดฏเดชเตเดชเต†เดŸเดพเตป เดชเต‹เด•เตเดจเตเดจ เดšเดฟเดฒ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ.

เดจเดฎเตเด•เตเด•เต เดธเดพเดนเดšเดฐเตเดฏเด‚ เด…เดจเตเด•เดฐเดฟเด•เตเด•เดพเด‚

ML-เดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เด’เดฐเต เดฏเตเดต เด•เดฎเตเดชเดจเดฟเดฏเดพเดฏ "N"-เตฝ เดžเด™เตเด™เตพเด•เตเด•เต เดœเต‹เดฒเดฟ เดฒเดญเดฟเดšเตเดšเตเดตเต†เดจเตเดจเต เดธเด™เตเด•เตฝเดชเตเดชเดฟเด•เตเด•เตเด•. เดžเด™เตเด™เตพ เด’เดฐเต ML (DL, CV) เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เดชเดฟเดจเตเดจเต€เดŸเต เดšเดฟเดฒ เด•เดพเดฐเดฃเด™เตเด™เดณเดพเตฝ เดžเด™เตเด™เตพ เดฎเดฑเตเดฑเตŠเดฐเต เดœเต‹เดฒเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดจเตเดจเต, เดชเตŠเดคเตเดตเต† เด’เดฐเต เด‡เดŸเดตเต‡เดณ เดŽเดŸเตเดคเตเดคเต เดžเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเดฑเตเดฑเตŠเดฐเดพเดณเตเดŸเต† เดจเตเดฏเต‚เดฑเต‹เดฃเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเดจเตเดจเต.

  1. เดธเดคเตเดฏเดคเตเดคเดฟเดจเตเดฑเต† เดจเดฟเดฎเดฟเดทเด‚ เดตเดฐเตเดจเตเดจเต, เดจเดฟเด™เตเด™เตพ เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต เดจเดฟเตผเดคเตเดคเดฟเดฏเดคเต†เดจเตเดจเตเด‚ เดเดคเต เดนเตˆเดชเตเดชเตผเดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดชเดฐเต€เด•เตเดทเดฟเดšเตเดšเตเดตเต†เดจเตเดจเตเด‚ เดเดฑเตเดฑเดตเตเด‚ เดชเตเดฐเดงเดพเดจเดฎเดพเดฏเดฟ เด…เดต เดŽเดจเตเดคเต เดซเดฒเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดจเดฏเดฟเดšเตเดšเตเดตเต†เดจเตเดจเตเด‚ เดจเดฟเด™เตเด™เตพ เดŽเด™เตเด™เดจเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เด“เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดŽเดฒเตเดฒเดพ เดฒเต‹เดžเตเดšเตเด•เดณเดฟเดฒเตเด‚ เด†เดฐเดพเดฃเต เดตเดฟเดตเดฐเด™เตเด™เตพ เดธเด‚เดญเดฐเดฟเดšเตเดšเดคเต เดŽเดจเตเดจเดคเดฟเดจเต เดจเดฟเดฐเดตเดงเดฟ เด“เดชเตเดทเดจเตเด•เตพ เด‰เดฃเตเดŸเดพเด•เดพเด‚: เดคเดฒเดฏเดฟเตฝ, เด•เต‹เตบเดซเดฟเด—เดฑเตเด•เดณเดฟเตฝ, เดจเต‹เดŸเตเดŸเตเดชเดพเดกเดฟเตฝ, เด•เตเดฒเต—เดกเดฟเดฒเต† เดชเตเดฐเดตเตผเดคเตเดคเดจ เด…เดจเตเดคเดฐเต€เด•เตเดทเดคเตเดคเดฟเตฝ. เดนเตˆเดชเตเดชเตผเดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เด•เต‹เดกเดฟเดฒเต† เด•เดฎเดจเตเดฑเต เดšเต†เดฏเตเดค เดฒเตˆเดจเตเด•เดณเดพเดฏเดฟ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดžเดพเตป เด’เดฐเต เด“เดชเตเดทเตป เด•เดพเดฃเดพเดจเดฟเดŸเดฏเดพเดฏเดฟ, เดชเตŠเดคเตเดตเต‡, เดซเดพเตปเดธเดฟ เด’เดฐเต เดซเตเดฒเตˆเดฑเตเดฑเต. เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เดฎเดŸเด™เตเด™เดฟเดฏเต†เดคเตเดคเดฟเดฏเดคเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เดฒเตเดฒ, เด•เดฎเตเดชเดจเดฟ เดตเดฟเดŸเตเดŸเตเดชเต‹เดฏ เด’เดฐเต เดตเตเดฏเด•เตเดคเดฟเดฏเตเดŸเต† เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เดพเดฃเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เด•เต‹เดกเตเด‚ model_1.pb เดŽเดจเตเดจ เดฎเต‹เดกเดฒเตเด‚ เดชเดพเดฐเดฎเตเดชเดฐเตเดฏเดฎเดพเดฏเดฟ เดฒเดญเดฟเดšเตเดšเตเดตเต†เดจเตเดจเต เดธเด™เตเด•เตฝเดชเตเดชเดฟเด•เตเด•เตเด•. เดšเดฟเดคเตเดฐเด‚ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดพเดจเตเด‚ เดŽเดฒเตเดฒเดพ เดตเต‡เดฆเดจเด•เดณเตเด‚ เด…เดฑเดฟเดฏเดฟเด•เตเด•เดพเดจเตเด‚, เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดคเตเดŸเด•เตเด•เด•เตเด•เดพเดฐเดจเดพเดฏ เดธเตเดชเต†เดทเตเดฏเดฒเดฟเดธเตเดฑเตเดฑเต เด•เต‚เดŸเดฟเดฏเดพเดฃเต†เดจเตเดจเต เดธเด™เตเด•เตฝเดชเตเดชเดฟเด•เตเด•เตเด•.
  2. เดฎเตเดจเตเดจเต‡เดพเดŸเตเดŸเตเดชเต‡เดพเด•เตเด•. เด•เต‹เดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดžเด™เตเด™เดณเตเด‚ เด…เดคเดฟเดจเตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดŽเดฒเตเดฒเดพเดตเดฐเตเด‚ เด’เดฐเต เด…เดจเตเดคเดฐเต€เด•เตเดทเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดšเดฟเดฒ เด•เดพเดฐเดฃเด™เตเด™เดณเดพเตฝ เด…เดตเตผ เด…เดตเดจเต† เดจเดฎเตเดฎเตเดŸเต† เด…เดตเด•เดพเดถเดฎเดพเดฏเดฟ เด‰เดชเต‡เด•เตเดทเดฟเดšเตเดšเดฟเดฒเตเดฒ เดŽเดจเตเดจเดคเต เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดคเตเด‚ เดจเดฟเดธเตเดธเดพเดฐเดฎเดฒเตเดฒเดพเดคเตเดค เดœเต‹เดฒเดฟเดฏเดพเดฏเดฟ เดฎเดพเดฑเดพเด‚. เดˆ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เดธเดฎเดฏเด‚ เดชเดพเดดเดพเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ, เด…เดฒเตเดฒเต‡?
  3. เดžเด™เตเด™เตพ เด’เดฐเต เดฎเต‹เดกเตฝ เดชเดฐเดฟเดถเต€เดฒเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดฐเต เด•เดพเตผ เดกเดฟเดฑเตเดฑเด•เตเดŸเตผ). เด…เดคเต เดตเดณเดฐเต† เดฎเดฟเด•เดšเตเดšเดคเดพเดฏเดฟ เดฎเดพเดฑเตเดจเตเดจ เด˜เดŸเตเดŸเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดžเด™เตเด™เตพ เดŽเดคเตเดคเดฟเดšเตเดšเต‡เดฐเตเดจเตเดจเต - เดซเดฒเด‚ เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เดธเดฎเดฏเดฎเดพเดฃเดฟเดคเต. เดจเดฎเตเด•เตเด•เต เด‡เดคเดฟเดจเต† car_detection_v1.pb เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เดพเด‚. เดคเตเดŸเตผเดจเตเดจเต เดžเด™เตเด™เตพ เดฎเดฑเตเดฑเตŠเดจเตเดจเต เดชเดฐเดฟเดถเต€เดฒเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต - car_detection_v2.pb. เด•เตเดฑเดšเตเดšเต เดธเดฎเดฏเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚, เดžเด™เตเด™เดณเตเดŸเต† เดธเดนเดชเตเดฐเดตเตผเดคเตเดคเด•เตผ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดžเด™เตเด™เตพ เดคเดจเตเดจเต† เดตเตเดฏเดคเตเดฏเดธเตเดค เดตเดพเดธเตเดคเตเดตเดฟเดฆเตเดฏเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเตฝ เด•เต‚เดŸเตเดคเตฝ เดชเด เดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดชเตเดฐเดพเดตเดธเตเดคเตเด•เตเด•เตพ เดฐเต‚เดชเด‚ เด•เตŠเดณเตเดณเตเดจเตเดจเต, เด…เดตเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เด•เด เดฟเดจเดฎเดพเดฏเดฟ เดถเต‡เด–เดฐเดฟเด•เตเด•เดฃเด‚ (เดŽเดจเตเดจเดพเตฝ เดžเด™เตเด™เตพ เด‡เดคเต เดชเดฟเดจเตเดจเต€เดŸเต เดšเต†เดฏเตเดฏเตเด‚, เด•เดพเดฐเดฃเด‚ เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เตพเด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เดฎเตเตปเด—เดฃเดจเด•เดณเตเดฃเตเดŸเต).
  4. เดถเดฐเดฟ เด‡เดชเตเดชเต‹เตพ เดŽเดฒเตเดฒเดพเด‚ เด•เดดเดฟเดžเตเดžเต! เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดฎเดพเดคเตƒเด•เดฏเตเดฃเตเดŸเต! เดจเดฎเตเด•เตเด•เต เด…เดŸเตเดคเตเดค เดฎเต‹เดกเตฝ เดชเดฐเดฟเดถเต€เดฒเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดฎเต‹, เด’เดฐเต เดชเตเดคเดฟเดฏ เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เด’เดฐเต เดตเดพเดธเตเดคเตเดตเดฟเดฆเตเดฏ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดšเต†เดŸเตเด•เตเด•เดพเดฎเต‹, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฎเตเด•เตเด•เต เดšเดพเดฏ เด•เตเดŸเดฟเด•เตเด•เดพเตป เดชเต‹เด•เดพเดฎเต‹? เดชเดฟเดจเตเดจเต† เด†เดฐเต เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเด‚?

เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเตฝ

เด’เดฐเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดฒเต‹ เด‰เตฝเดชเตเดชเดจเตเดจเดคเตเดคเดฟเดฒเต‹ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต เดชเดฒเดฐเตเดŸเต†เดฏเตเด‚ เดœเต‹เดฒเดฟเดฏเดพเดฃเต. เด•เดพเดฒเด•เตเดฐเดฎเต‡เดฃ, เด†เดณเตเด•เตพ เดชเต‹เดฏเดฟ เดตเดฐเตเดจเตเดจเต, เด•เต‚เดŸเตเดคเตฝ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเด•เตพ เด‰เดฃเตเดŸเต, เดชเดฆเตเดงเดคเดฟเด•เตพ เดคเดจเตเดจเต† เด•เต‚เดŸเตเดคเตฝ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเด•เตเด‚. เด’เดฐเต เดคเดฐเดคเตเดคเดฟเตฝ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเดฑเตเดฑเตŠเดฐเต เดคเดฐเดคเตเดคเดฟเตฝ, เดฎเตเด•เดณเดฟเตฝ เดตเดฟเดตเดฐเดฟเดšเตเดš (เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ) เดธเตˆเด•เตเด•เดฟเดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เตพ เดšเดฟเดฒ เด•เต‹เดฎเตเดชเดฟเดจเต‡เดทเดจเตเด•เดณเดฟเตฝ เด†เดตเตผเดคเตเดคเดจเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดธเด‚เดญเดตเดฟเด•เตเด•เตเด‚. เด‡เดคเต†เดฒเตเดฒเดพเด‚ เดชเดพเดดเดพเดฏ เดธเดฎเดฏเด‚, เด†เดถเดฏเด•เตเด•เตเดดเดชเตเดชเด‚, เดžเดฐเดฎเตเดชเตเด•เตพ, เด’เดฐเตเดชเด•เตเดทเต‡ เด‰เดชเดญเต‹เด•เตเดคเตƒ เด…เดคเตƒเดชเตเดคเดฟ, เด†เดคเตเดฏเดจเตเดคเดฟเด•เดฎเดพเดฏเดฟ เดชเดฃเด‚ เดจเดทเตเดŸเดชเตเดชเต†เดŸเตฝ เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ เด•เดฒเดพเดถเดฟเด•เตเด•เตเดจเตเดจเต. เดจเดพเดฎเต†เดฒเตเดฒเดพเดตเดฐเตเด‚ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด’เดฐเต‡ เดชเดดเดฏ เดฑเต‡เด•เตเด•เต เดชเดฟเดจเตเดคเตเดŸเดฐเตเดจเตเดจเตเดฃเตเดŸเต†เด™เตเด•เดฟเดฒเตเด‚, เดˆ เดจเดฟเดฎเดฟเดทเด™เตเด™เตพ เดตเต€เดฃเตเดŸเตเด‚ เดตเต€เดฃเตเดŸเตเด‚ เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด†เดฐเตเด‚ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒเต†เดจเตเดจเต เดžเดพเตป เดตเดฟเดถเตเดตเดธเดฟเด•เตเด•เตเดจเตเดจเต.

MLOps - เด•เตเด•เตเด•เต เดฌเตเด•เตเด•เต, เด…เดงเตเดฏเดพเดฏเด‚ 1

เด…เดคเดฟเดจเดพเตฝ, เดžเด™เตเด™เตพ เด’เดฐเต เดตเดฟเด•เดธเดจ เดšเด•เตเดฐเดคเตเดคเดฟเดฒเต‚เดŸเต† เด•เดŸเดจเตเดจเตเดชเต‹เดฏเดฟ, เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเต‡เดฃเตเดŸ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เด‰เดฃเตเดŸเต†เดจเตเดจเต เดžเด™เตเด™เตพ เด•เดพเดฃเตเดจเตเดจเต. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต:

  • เดœเต‹เดฒเดฟ เดซเดฒเด™เตเด™เตพ เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏเดฟ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเด•;
  • เดชเตเดคเดฟเดฏ เดœเต€เดตเดจเด•เตเด•เดพเดฐเต† เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏ เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เตเด•;
  • เด’เดฐเต เดตเดฟเด•เดธเดจ เด…เดจเตเดคเดฐเต€เด•เตเดทเด‚ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดจเตเดจ เดชเตเดฐเด•เตเดฐเดฟเดฏ เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เตเด•;
  • เดฎเต‹เดกเตฝ เดชเดคเดฟเดชเตเดชเดฟเด‚เด—เต เดชเตเดฐเด•เตเดฐเดฟเดฏ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเตเด•;
  • เดฎเต‹เดกเดฒเตเด•เตพ เดธเดพเดงเต‚เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ เดฎเดพเตผเด—เดฎเตเดฃเตเดŸเต;
  • เด’เดฐเต เดฎเดพเดคเตƒเด•เดพ เดธเด‚เดธเตเดฅเดพเดจ เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเต เด‰เดชเด•เดฐเดฃเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเตเด•;
  • เด‰เตฝเดชเตเดชเดพเดฆเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดฎเต‹เดกเดฒเตเด•เตพ เดŽเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดฎเดพเตผเด—เด‚ เด•เดฃเตเดŸเต†เดคเตเดคเตเด•.

เดˆ เดœเต€เดตเดฟเดค เดšเด•เตเดฐเด‚ เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเดฒเตเด‚ เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏเตเด‚ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดตเตผเด•เตเด•เตเดซเตเดฒเต‹ เด•เตŠเดฃเตเดŸเตเดตเดฐเต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต‹? เดˆ เดฐเต€เดคเดฟเดฏเต† MLOps เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต

MLOps เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเต†เดทเต€เตป เดฒเต‡เดฃเดฟเด‚เด—เดฟเดจเตเดณเตเดณ DevOps, เดกเดพเดฑเตเดฑเดพ เดธเดฏเตปเดธเดฟเดจเต†เดฏเตเด‚ เดเดŸเดฟ เดŸเต€เดฎเตเด•เดณเต†เดฏเตเด‚ เดฎเต‹เดกเตฝ เดกเต†เดตเดฒเดชเตโ€Œเดฎเต†เดจเตเดฑเดฟเดจเตเดฑเต†เดฏเตเด‚ เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเตเดฑเต†เดฏเตเด‚ เดตเต‡เด—เดค เด•เต‚เดŸเตเดŸเดพเดจเตเด‚ เดฎเต†เดทเต€เตป เดฒเต‡เดฃเดฟเด‚เด—เต เดฎเต‹เดกเดฒเตเด•เดณเตเดŸเต† เดจเดฟเดฐเต€เด•เตเดทเดฃเด‚, เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเด‚, เดญเดฐเดฃเด‚ เดŽเดจเตเดจเดฟเดตเดฏเดฟเดฒเต‚เดŸเต† เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเด‚ เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดดเดฟเดฏเตเด‚ เดตเดพเดฏเดฟเดšเตเดšเตเด—เต‚เด—เดฟเดณเตเด•เดพเตผ เด‡เดคเดฟเดจเต† เด•เตเดฑเดฟเดšเตเดšเต เดŽเดจเตเดคเดพเดฃเต เดšเดฟเดจเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต? เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต MLOps เดตเดณเดฐเต† เดตเดฒเดฟเดฏ เด•เดพเดฐเตเดฏเดฎเดพเดฃเต†เดจเตเดจเต เดตเตเดฏเด•เตเดคเดฎเดพเดฃเต.

MLOps - เด•เตเด•เตเด•เต เดฌเตเด•เตเด•เต, เด…เดงเตเดฏเดพเดฏเด‚ 1

เดŽเดจเตเดฑเต† เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดˆ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเตเดŸเต† เด’เดฐเต เดญเดพเด—เด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เดžเดพเตป เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจเตเดณเตเดณเต‚. เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ, เดžเดพเตป MLflow เดŸเต‚เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚, เด•เดพเดฐเดฃเด‚... เด‡เดคเตŠเดฐเต เด“เดชเตเดชเตบ เดธเต‹เดดเตโ€Œเดธเต เดชเตเดฐเต‹เดœเด•เตโ€Œเดฑเตเดฑเดพเดฃเต, เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเดพเตป เดšเต†เดฑเดฟเดฏ เด…เดณเดตเดฟเดฒเตเดณเตเดณ เด•เต‹เดกเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต, เด•เต‚เดŸเดพเดคเต† เดœเดจเดชเตเดฐเดฟเดฏ ml เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเตเด•เดณเตเดฎเดพเดฏเตเดณเตเดณ เดธเด‚เดฏเต‹เดœเดจเดตเตเดฎเตเดฃเตเดŸเต. Kubeflow, SageMaker, เดŸเตเดฐเต†เดฏเดฟเดจเตเด•เตพ เดฎเตเดคเดฒเดพเดฏเดต เดชเต‹เดฒเตเดณเตเดณ เดฎเดฑเตเดฑเต เด‰เดชเด•เดฐเดฃเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดจเตเดฑเตผเดจเต†เดฑเตเดฑเดฟเตฝ เดคเดฟเดฐเดฏเดพเดจเตเด‚ เดจเดฟเด™เตเด™เดณเตเดŸเต† เด†เดตเดถเตเดฏเด™เตเด™เตพเด•เตเด•เต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏ เด’เดจเตเดจเต เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚.

MLFlow เดŸเต‚เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เด‰เดฆเดพเดนเดฐเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต "เดฌเดฟเตฝเดกเดฟเด‚เด—เต" MLOps

MLFlow เดŽเดจเตเดจเดคเต ml เดฎเต‹เดกเดฒเตเด•เดณเตเดŸเต† เดฒเตˆเดซเต เดธเตˆเด•เตเด•เดฟเตพ เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเดฟเดจเตเดณเตเดณ เด’เดฐเต เด“เดชเตเดชเตบ เดธเต‹เดดเตเดธเต เดชเตเดฒเดพเดฑเตเดฑเตเดซเต‹เดฎเดพเดฃเต (https://mlflow.org/).

MLflow เดจเดพเดฒเต เด˜เดŸเด•เด™เตเด™เตพ เด‰เตพเด•เตเด•เตŠเดณเตเดณเตเดจเตเดจเต:

  • MLflow เดŸเตเดฐเดพเด•เตเด•เดฟเด‚เด—เต - เดˆ เดซเดฒเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดจเดฏเดฟเดšเตเดš เดฑเต†เด•เตเด•เต‹เตผเดกเดฟเด‚เด—เต เดซเดฒเด™เตเด™เดณเตเดŸเต†เดฏเตเด‚ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เด‰เตพเด•เตเด•เตŠเดณเตเดณเตเดจเตเดจเต;
  • MLflow เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต - เด•เต‹เดกเต เดชเดพเด•เตเด•เต‡เดœเตเดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดเดคเต เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเดฟเดฒเตเด‚ เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเดจเตเด‚ เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต;
  • MLflow เดฎเต‹เดกเดฒเตเด•เตพ - เด‰เตฝเดชเตเดชเดพเดฆเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดฎเต‹เดกเดฒเตเด•เตพ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด‚;
  • MLflow เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟ - เด’เดฐเต เด•เต‡เดจเตเดฆเตเดฐเต€เด•เตƒเดค เดถเต‡เด–เดฐเดคเตเดคเดฟเตฝ เดฎเต‹เดกเดฒเตเด•เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เดพเดจเตเด‚ เด…เดตเดฏเตเดŸเต† เด…เดตเดธเตเดฅ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดพเดจเตเด‚ เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.

MLflow เดฐเดฃเตเดŸเต เดŽเดจเตเดฑเดฟเดฑเตเดฑเดฟเด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต:

  • เดฒเต‹เดžเตเดšเต เดŽเดจเตเดจเดคเต เดžเด™เตเด™เตพ เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดฏเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจ เดชเดฐเดฟเดถเต€เดฒเดจเดคเตเดคเดฟเดจเตเดฑเต†เดฏเตเด‚ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดฎเต†เดŸเตเดฐเดฟเด•เตเดธเดฟเดจเตเดฑเต†เดฏเตเด‚ เด’เดฐเต เดชเต‚เตผเดฃเตเดฃ เดšเด•เตเดฐเดฎเดพเดฃเต;
  • เด’เดฐเต เดชเดฐเต€เด•เตเดทเดฃเด‚ เด’เดฐเตเดฎเดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต "เดตเดฟเดทเดฏเด‚" เด†เดฃเต.

เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เด˜เดŸเตเดŸเด™เตเด™เดณเตเด‚ เด‰เดฌเตเดฃเตเดŸเต 18.04 เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต.

1. เดธเต†เตผเดตเตผ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเด•

เดžเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฏ เดŽเดฒเตเดฒเดพ เดตเดฟเดตเดฐเด™เตเด™เดณเตเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚, เดžเด™เตเด™เตพ เด’เดฐเต เดธเต†เตผเดตเตผ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเด‚. MLflow เดŸเตเดฐเดพเด•เตเด•เดฟเด‚เด—เต เดธเต†เตผเดตเดฑเดฟเดจเต เดฐเดฃเตเดŸเต เดชเตเดฐเดงเดพเดจ เด˜เดŸเด•เด™เตเด™เดณเตเดฃเตเดŸเต:

  • เดฌเดพเด•เตเด•เต†เตปเดกเต เดธเตเดฑเตเดฑเต‹เตผ - เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดค เดฎเต‹เดกเดฒเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดธเต‚เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด‚ (4 DBMS-เด•เดณเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต: mysql, mssql, sqlite, postgresql);
  • เด†เตผเดŸเตเดŸเดฟเดซเดพเด•เตเดฑเตเดฑเต เดธเตเดฑเตเดฑเต‹เตผ - เดชเตเดฐเดพเดตเดธเตเดคเตเด•เตเด•เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด‚ (7 เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต เด“เดชเตเดทเดจเตเด•เตพ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต: Amazon S3, Azure Blob Storage, Google Cloud Storage, FTP เดธเต†เตผเดตเตผ, SFTP เดธเต†เตผเดตเตผ, NFS, HDFS).

เดŽ เด†เตผเดŸเตเดŸเดฟเดซเดพเด•เตเดฑเตเดฑเต เดธเตเดฑเตเดฑเต‹เตผ เดฒเดพเดณเดฟเดคเตเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ, เดจเดฎเตเด•เตเด•เต เด’เดฐเต sftp เดธเต†เตผเดตเตผ เดŽเดŸเตเด•เตเด•เดพเด‚.

  • เด’เดฐเต เด—เตเดฐเต‚เดชเตเดชเต เด‰เดฃเตเดŸเดพเด•เตเด•เตเด•
    $ sudo groupadd sftpg
  • เด’เดฐเต เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต† เดšเต‡เตผเด•เตเด•เตเด•เดฏเตเด‚ เด…เดตเดจเตเดตเต‡เดฃเตเดŸเดฟ เด’เดฐเต เดชเดพเดธเตโ€Œเดตเต‡เดกเต เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด•
    $ sudo useradd -g sftpg mlflowsftp
    $ sudo passwd mlflowsftp 
  • เดฐเดฃเตเดŸเต เด†เด•เตเดธเดธเต เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เตพ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต
    $ sudo mkdir -p /data/mlflowsftp/upload
    $ sudo chown -R root.sftpg /data/mlflowsftp
    $ sudo chown -R mlflowsftp.sftpg /data/mlflowsftp/upload
  • /etc/ssh/sshd_config-เดฒเต‡เด•เตเด•เต เด•เตเดฑเดšเตเดšเต เดตเดฐเดฟเด•เตพ เดšเต‡เตผเด•เตเด•เตเด•
    Match Group sftpg
     ChrootDirectory /data/%u
     ForceCommand internal-sftp
  • เดธเต‡เดตเดจเด‚ เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด•
    $ sudo systemctl restart sshd

เดŽ เดฌเดพเด•เตเด•เต†เตปเดกเต เดธเตเดฑเตเดฑเต‹เตผ เดจเดฎเตเด•เตเด•เต postgresql เดŽเดŸเตเด•เตเด•เดพเด‚.

$ sudo apt update
$ sudo apt-get install -y postgresql postgresql-contrib postgresql-server-dev-all
$ sudo apt install gcc
$ pip install psycopg2
$ sudo -u postgres -i
# Create new user: mlflow_user
[postgres@user_name~]$ createuser --interactive -P
Enter name of role to add: mlflow_user
Enter password for new role: mlflow
Enter it again: mlflow
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
# Create database mlflow_bd owned by mlflow_user
$ createdb -O mlflow_user mlflow_db

เดธเต†เตผเดตเตผ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเตˆเดคเตเดคเตบ เดชเดพเด•เตเด•เต‡เดœเตเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต (เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดตเต†เตผเดšเตเดตเตฝ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เดžเดพเตป เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต):

pip install mlflow
pip install pysftp

เดจเดฎเตเด•เตเด•เต เดจเดฎเตเดฎเตเดŸเต† เดธเต†เตผเดตเตผ เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเด‚

$ mlflow server  
                 --backend-store-uri postgresql://mlflow_user:mlflow@localhost/mlflow_db 
                 --default-artifact-root sftp://mlflowsftp:mlflow@sftp_host/upload  
                --host server_host 
                --port server_port

2. เดŸเตเดฐเดพเด•เตเด•เดฟเด‚เด—เต เดšเต‡เตผเด•เตเด•เตเด•

เดžเด™เตเด™เดณเตเดŸเต† เดชเดฐเดฟเดถเต€เดฒเดจเดคเตเดคเดฟเดจเตเดฑเต† เดซเดฒเด™เตเด™เตพ เดจเดทเตโ€ŒเดŸเดชเตเดชเต†เดŸเดพเดคเดฟเดฐเดฟเด•เตเด•เดพเดจเตเด‚, เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเดฐเตเดŸเต† เดญเดพเดตเดฟ เดคเดฒเดฎเตเดฑเด•เตพเด•เตเด•เต เดŽเดจเตเดคเดพเดฃเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เดฎเดจเดธเดฟเดฒเดพเด•เตเด•เดพเดจเตเด‚, เดชเดดเดฏ เดธเด–เดพเด•เตเด•เตพเด•เตเด•เตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เตเด‚ เดชเด เดจ เดชเตเดฐเด•เตเดฐเดฟเดฏ เดถเดพเดจเตเดคเดฎเดพเดฏเดฟ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚, เดžเด™เตเด™เตพ เดŸเตเดฐเดพเด•เตเด•เดฟเด‚เด—เต เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดŸเตเดฐเดพเด•เตเด•เดฟเด‚เด—เต เดŽเดจเตเดจเดคเดฟเดจเตผเดคเตเดฅเด‚ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ, เดฎเต†เดŸเตเดฐเดฟเด•เตโ€Œเดธเต, เด†เตผเดŸเตเดŸเดฟเดซเดพเด•เตโ€Œเดฑเตเดฑเตเด•เตพ, เดชเดฐเดฟเดถเต€เดฒเดจเดคเตเดคเดฟเดจเตเดฑเต† เดคเตเดŸเด•เตเด•เดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด…เดงเดฟเด• เดตเดฟเดตเดฐเด™เตเด™เตพ, เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดธเต†เตผเดตเดฑเดฟเตฝ เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดพเดฃเต.

เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดžเดพเตป เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต เด—เดฟเดคเตเดคเดฌเดฟเดฒเต† เดชเดฆเตเดงเดคเดฟ เด‰เดณเตเดณเดคเต†เดฒเตเดฒเดพเด‚ เดตเดฟเดญเดœเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด•เต‡เดฐเดธเดฟเตฝ COCO เดกเดพเดฑเตเดฑเดพเดธเต†เดฑเตเดฑเต. เดŸเตเดฐเดพเด•เตเด•เดฟเด‚เด—เต เดšเต‡เตผเด•เตเด•เดพเตป, เดžเดพเตป mlflow_training.py เด’เดฐเต เดซเดฏเตฝ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต.

เดเดฑเตเดฑเดตเตเด‚ เดฐเดธเด•เดฐเดฎเดพเดฏ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจ เดตเดฐเดฟเด•เตพ เด‡เดคเดพ:

def run(self, epochs, lr, experiment_name):
        # getting the id of the experiment, creating an experiment in its absence
        remote_experiment_id = self.remote_server.get_experiment_id(name=experiment_name)
        # creating a "run" and getting its id
        remote_run_id = self.remote_server.get_run_id(remote_experiment_id)

        # indicate that we want to save the results on a remote server
        mlflow.set_tracking_uri(self.tracking_uri)
        mlflow.set_experiment(experiment_name)

        with mlflow.start_run(run_id=remote_run_id, nested=False):
            mlflow.keras.autolog()
            self.train_pipeline.train(lr=lr, epochs=epochs)

        try:
            self.log_tags_and_params(remote_run_id)
        except mlflow.exceptions.RestException as e:
            print(e)

เด‡เดตเดฟเดŸเต† self.remote_server mlflow.tracking เดฐเต€เดคเดฟเด•เตพเด•เตเด•เต เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดฑเดพเดชเตเดชเดฑเดพเดฃเต. MlflowClient (เดžเดพเตป เด‡เดคเต เดธเต—เด•เดฐเตเดฏเดพเตผเดคเตเดฅเด‚ เด‰เดฃเตเดŸเดพเด•เตเด•เดฟ), เด…เดคเดฟเดจเตเดฑเต† เดธเดนเดพเดฏเดคเตเดคเต‹เดŸเต† เดžเดพเตป เด’เดฐเต เดชเดฐเต€เด•เตเดทเดฃเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดธเต†เตผเดตเดฑเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, เดฒเต‹เดžเตเดšเต เดซเดฒเด™เตเด™เตพ เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต เดฒเดฏเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต†เดจเตเดจเต เดžเดพเตป เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต (mlflow.set_tracking_uri(self.tracking_uri)). เดžเดพเตป เดธเตเดตเดฏเดฎเต‡เดตเดฏเตเดณเตเดณ เดฒเต‹เด—เดฟเด‚เด—เต mlflow.keras.autolog() เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเดจเตเดจเต. เดจเดฟเดฒเดตเดฟเตฝ MLflow เดŸเตเดฐเดพเด•เตเด•เดฟเด‚เด—เต TensorFlow, Keras, Gluon XGBoost, LightGBM, Spark เดŽเดจเตเดจเดฟเดตเดฏเตเด•เตเด•เดพเดฏเดฟ เด“เดŸเตเดŸเต‹เดฎเดพเดฑเตเดฑเดฟเด•เต เดฒเต‹เด—เดฟเด‚เด—เดฟเดจเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต. เดจเดฟเด™เตเด™เดณเตเดŸเต† เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเต‹ เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเต‹ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ เดฒเต‹เด—เดฟเตป เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚. เดžเด™เตเด™เตพ เดชเดฐเดฟเดถเต€เดฒเดจเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต. เดฑเดฟเดฎเต‹เดŸเตเดŸเต เดธเต†เตผเดตเดฑเดฟเตฝ เดŸเดพเด—เตเด•เดณเตเด‚ เด‡เตปเดชเตเดŸเตเดŸเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเด‚ เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดฏเตเด•.

เดŽเดฒเตเดฒเดพ เดฒเต‹เดžเตเดšเตเด•เดณเต†เดฏเตเด‚ เด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดŽเดฒเตเดฒเดพเดตเดฐเต‡เดฏเตเด‚ เดชเต‹เดฒเต† เดฐเดฃเตเดŸเต เดตเดฐเดฟเด•เดณเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เตเด‚ เด†เด•เตโ€Œเดธเดธเต เด‰เดฃเตเดŸเต. เด…เดŸเดฟเดชเตŠเดณเดฟเดฏเดพเดฃเต‹?

3. เดžเด™เตเด™เตพ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดตเดฐเดฏเตเด•เตเด•เตเดจเตเดจเต

เด‡เดจเดฟ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดฒเต‹เดžเตเดšเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดŽเดณเตเดชเตเดชเดฎเดพเด•เตเด•เดพเด‚. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดฑเต‚เดŸเตเดŸเดฟเดฒเต‡เด•เตเด•เต MLproject, conda.yaml เดซเดฏเดฒเตเด•เตพ เดšเต‡เตผเด•เตเด•เตเด•.
ML เดชเดฆเตเดงเดคเดฟ

name: flow_segmentation
conda_env: conda.yaml

entry_points:
  main:
    parameters:
        categories: {help: 'list of categories from coco dataset'}
        epochs: {type: int, help: 'number of epochs in training'}

        lr: {type: float, default: 0.001, help: 'learning rate'}
        batch_size: {type: int, default: 8}
        model_name: {type: str, default: 'Unet', help: 'Unet, PSPNet, Linknet, FPN'}
        backbone_name: {type: str, default: 'resnet18', help: 'exampe resnet18, resnet50, mobilenetv2 ...'}

        tracking_uri: {type: str, help: 'the server address'}
        experiment_name: {type: str, default: 'My_experiment', help: 'remote and local experiment name'}
    command: "python mlflow_training.py 
            --epochs={epochs}
            --categories={categories}
            --lr={lr}
            --tracking_uri={tracking_uri}
            --model_name={model_name}
            --backbone_name={backbone_name}
            --batch_size={batch_size}
            --experiment_name={experiment_name}"

MLflow เดชเตเดฐเต‹เดœเด•เตเดŸเดฟเดจเต เดจเดฟเดฐเดตเดงเดฟ เด—เตเดฃเด™เตเด™เดณเตเดฃเตเดŸเต:

  • เดชเต‡เดฐเต - เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดชเต‡เดฐเต;
  • เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ - เดŽเดจเตเดฑเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, conda_env เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เด…เดจเด•เตเด•เต‹เดฃเตเดŸ เดฑเตบ เดšเต†เดฏเตเดฏเดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเตเด‚ เดกเดฟเดชเตปเดกเตปเดธเดฟ เดตเดฟเดตเดฐเดฃเด‚ conda.yaml เดซเดฏเดฒเดฟเดฒเดพเดฃเต†เดจเตเดจเตเด‚;
  • เดŽเตปเดŸเตเดฐเดฟ เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เตพ - เดเดคเต เดซเดฏเดฒเตเด•เตพ, เดเดคเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฎเตเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดฎเต†เดจเตเดจเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต (เดชเดฐเดฟเดถเต€เดฒเดจเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดŽเดฒเตเดฒเดพ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเด‚ เดธเตเดตเดฏเดฎเต‡เดต เดฒเต‹เด—เต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚)

เด•เตŠเดฃเตเดŸ.เดฏเดพเด‚เตฝ

name: flow_segmentation
channels:
  - defaults
  - anaconda
dependencies:
  - python==3.7
  - pip:
    - mlflow==1.8.0
    - pysftp==0.2.9
    - Cython==0.29.19
    - numpy==1.18.4
    - pycocotools==2.0.0
    - requests==2.23.0
    - matplotlib==3.2.1
    - segmentation-models==1.0.1
    - Keras==2.3.1
    - imgaug==0.4.0
    - tqdm==4.46.0
    - tensorflow-gpu==1.14.0

เดจเดฟเด™เตเด™เดณเตเดŸเต† เดฑเตบเดŸเตˆเด‚ เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดกเต‹เด•เตเด•เตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚, เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดตเดฐเด™เตเด™เตพเด•เตเด•เต เดฆเดฏเดตเดพเดฏเดฟ เด•เดพเดฃเตเด• เดชเตเดฐเดฎเดพเดฃเต€เด•เดฐเดฃเด‚.

4. เดจเดฎเตเด•เตเด•เต เดชเดฐเดฟเดถเต€เดฒเดจเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเด‚

เดžเด™เตเด™เตพ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เด•เตเดฒเต‹เตบ เดšเต†เดฏเตเดคเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเดจเตเดจเต:

git clone https://github.com/simbakot/mlflow_example.git
cd mlflow_example/

เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดจเดฟเด™เตเด™เตพ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต

pip install mlflow
pip install pysftp

เด•เดพเดฐเดฃเด‚ เดžเดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ conda_env เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ, Anaconda เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฑเดฟเตฝ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดฃเด‚ (เดŽเดจเตเดจเดพเตฝ เด†เดตเดถเตเดฏเดฎเดพเดฏ เดŽเดฒเตเดฒเดพ เดชเดพเด•เตเด•เต‡เดœเตเด•เดณเตเด‚ เดธเตเดตเดฏเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเต เดฒเต‹เดžเตเดšเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เดฎเดฑเดฟเด•เดŸเด•เตเด•เดพเดจเดพเด•เตเด‚).

เดŽเดฒเตเดฒเดพ เดคเดฏเตเดฏเดพเดฑเต†เดŸเตเดชเตเดชเต เดจเดŸเดชเดŸเดฟเด•เดณเตเด‚ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเดฏเดฟ, เดจเดฎเตเด•เตเด•เต เดชเดฐเดฟเดถเต€เดฒเดจเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเด‚. เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดฑเต‚เดŸเตเดŸเดฟเตฝ เดจเดฟเดจเตเดจเต:

$ mlflow run -P epochs=10 -P categories=cat,dog -P tracking_uri=http://server_host:server_port .

เด•เดฎเดพเตปเดกเต เดจเตฝเด•เดฟเดฏ เดถเต‡เดทเด‚, เด’เดฐเต เด•เต‹เดฃเตเดŸ เดŽเตปเดตเดฏเต‹เตบเดฎเต†เดจเตเดฑเต เดธเตเดตเดฏเดฎเต‡เดต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด•เดฏเตเด‚ เดชเดฐเดฟเดถเต€เดฒเดจเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚.
เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ, เดชเดฐเดฟเดถเต€เดฒเดจเดคเตเดคเดฟเดจเตเดณเตเดณ เดฏเตเด—เด™เตเด™เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดžเดพเตป เดชเดพเดธเดพเด•เตเด•เดฟ, เดžเด™เตเด™เตพ เดธเต†เด—เตโ€Œเดฎเต†เดจเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจ เดตเดฟเดญเดพเด—เด™เตเด™เตพ (เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดฒเดฟเดธเตเดฑเตเดฑเต เด•เดพเดฃเดพเด‚ เด‡เดตเดฟเดŸเต†) เด•เต‚เดŸเดพเดคเต† เดžเด™เตเด™เดณเตเดŸเต† เดฑเดฟเดฎเต‹เดŸเตเดŸเต เดธเต†เตผเดตเดฑเดฟเดจเตเดฑเต† เดตเดฟเดฒเดพเดธเดตเตเด‚.
เดธเดพเดงเตเดฏเดฎเดพเดฏ เดชเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเดŸเต† เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดฒเดฟเดธเตเดฑเตเดฑเต MLproject เดซเดฏเดฒเดฟเตฝ เด•เดพเดฃเดพเด‚.

5. เดชเด เดจ เดซเดฒเด™เตเด™เตพ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเตเด•

เดชเดฐเดฟเดถเต€เดฒเดจเด‚ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดฟเดฏ เดถเต‡เดทเด‚, เดžเด™เตเด™เดณเตเดŸเต† เดธเต†เตผเดตเดฑเดฟเดจเตเดฑเต† เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดฌเตเดฐเต—เดธเดฑเดฟเตฝ เดชเต‹เด•เดพเด‚ http://server_host:server_port

MLOps - เด•เตเด•เตเด•เต เดฌเตเด•เตเด•เต, เด…เดงเตเดฏเดพเดฏเด‚ 1

เดŽเดฒเตเดฒเดพ เดชเดฐเต€เด•เตเดทเดฃเด™เตเด™เดณเตเดŸเต†เดฏเตเด‚ (เดฎเตเด•เดณเดฟเตฝ เด‡เดŸเดคเต) เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเตเด‚ เดฑเดฃเตเดฃเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เดณเตเด‚ (เดฎเดงเตเดฏเดคเตเดคเดฟเตฝ) เด‡เดตเดฟเดŸเต† เด•เดพเดฃเดพเด‚. เด“เดฐเต‹ เดฒเต‹เดžเตเดšเดฟเดจเตเด‚ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏ เดตเดฟเดตเดฐเด™เตเด™เตพ (เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ, เดฎเต†เดŸเตเดฐเดฟเด•เตโ€Œเดธเต, เด†เตผเดŸเตเดŸเดฟเดซเดพเด•เตโ€Œเดฑเตเดฑเตเด•เตพ, เดšเดฟเดฒ เด…เดงเดฟเด• เดตเดฟเดตเดฐเด™เตเด™เตพ) เดจเดฎเตเด•เตเด•เต เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚.

MLOps - เด•เตเด•เตเด•เต เดฌเตเด•เตเด•เต, เด…เดงเตเดฏเดพเดฏเด‚ 1

เด“เดฐเต‹ เดฎเต†เดŸเตเดฐเดฟเด•เตเด•เดฟเดจเตเด‚ เดจเดฎเตเด•เตเด•เต เดฎเดพเดฑเตเดฑเด™เตเด™เดณเตเดŸเต† เดšเดฐเดฟเดคเตเดฐเด‚ เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเด‚

MLOps - เด•เตเด•เตเด•เต เดฌเตเด•เตเด•เต, เด…เดงเตเดฏเดพเดฏเด‚ 1

เด†. เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต "เดฎเดพเดจเตเดตเตฝ" เดฎเต‹เดกเดฟเตฝ เดซเดฒเด™เตเด™เตพ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเดพเด‚, เด•เต‚เดŸเดพเดคเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต MLflow API เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฏเดพเดจเตเดคเตเดฐเดฟเด• เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเด‚ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚.

6. เดฎเต‹เดกเตฝ เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดฏเตเด•

เดžเด™เตเด™เตพ เดžเด™เตเด™เดณเตเดŸเต† เดฎเต‹เดกเตฝ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดฏเตเดฆเตเดงเดคเตเดคเดฟเดจเต เดคเดฏเตเดฏเดพเดฑเดพเดฃเต†เดจเตเดจเต เดคเต€เดฐเตเดฎเดพเดจเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดค เดถเต‡เดทเด‚, เดžเด™เตเด™เตพ เด…เดคเต เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดฏเดพเตป เดฎเตเดจเตเดจเต‹เดŸเตเดŸเต เดชเต‹เด•เตเดจเตเดจเต, เด‡เดคเดฟเดจเดพเดฏเดฟ เดžเด™เตเด™เตพเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดฒเต‹เดžเตเดšเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต (เดฎเตเดฎเตเดชเดคเตเดคเต† เด–เดฃเตเดกเดฟเด•เดฏเดฟเตฝ เด•เดพเดฃเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†) เดคเดพเดดเต‡เด•เตเด•เต เดชเต‹เด•เตเด•.

MLOps - เด•เตเด•เตเด•เต เดฌเตเด•เตเด•เต, เด…เดงเตเดฏเดพเดฏเด‚ 1

เดžเด™เตเด™เดณเตเดŸเต† เดฎเต‹เดกเดฒเดฟเดจเต เด’เดฐเต เดชเต‡เดฐเต เดจเตฝเด•เดฟเดฏ เดถเต‡เดทเด‚, เด…เดคเดฟเดจเต เด’เดฐเต เดชเดคเดฟเดชเตเดชเตเดฃเตเดŸเต. เดจเดฟเด™เตเด™เตพ เด…เดคเต‡ เดชเต‡เดฐเดฟเตฝ เดฎเดฑเตเดฑเตŠเดฐเต เดฎเต‹เดกเตฝ เดธเต‡เดตเต เดšเต†เดฏเตเดคเดพเตฝ, เดชเดคเดฟเดชเตเดชเต เดธเตเดตเดฏเดฎเต‡เดต เดจเดตเต€เด•เดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚.

MLOps - เด•เตเด•เตเด•เต เดฌเตเด•เตเด•เต, เด…เดงเตเดฏเดพเดฏเด‚ 1

เด“เดฐเต‹ เดฎเต‹เดกเดฒเดฟเดจเตเด‚, เดจเดฎเตเด•เตเด•เต เด’เดฐเต เดตเดฟเดตเดฐเดฃเด‚ เดšเต‡เตผเด•เตเด•เดพเดจเตเด‚ เดฎเต‚เดจเตเดจเต เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเตเด•เดณเดฟเตฝ เด’เดจเตเดจเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚ (เดธเตเดฑเตเดฑเต‡เดœเดฟเด‚เด—เต, เดชเตเดฐเตŠเดกเด•เตเดทเตป, เด†เตผเด•เตเด•เตˆเดตเตเดกเต); เดคเตเดŸเตผเดจเตเดจเต, API เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เดจเดฎเตเด•เตเด•เต เดˆ เด…เดตเดธเตเดฅเด•เตพ เด†เด•เตเดธเดธเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚, เด‡เดคเต เดชเดคเดฟเดชเตเดชเดฟเดจเตŠเดชเตเดชเด‚ เด…เดงเดฟเด• เดตเดดเด•เตเด•เดตเตเด‚ เดจเตฝเด•เตเดจเตเดจเต.

MLOps - เด•เตเด•เตเด•เต เดฌเตเด•เตเด•เต, เด…เดงเตเดฏเดพเดฏเด‚ 1

เดŽเดฒเตเดฒเดพ เดฎเต‹เดกเดฒเตเด•เดณเดฟเดฒเต‡เด•เตเด•เตเด‚ เดžเด™เตเด™เตพเด•เตเด•เต เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เด†เด•เตเดธเดธเต เด‰เดฃเตเดŸเต

MLOps - เด•เตเด•เตเด•เต เดฌเตเด•เตเด•เต, เด…เดงเตเดฏเดพเดฏเด‚ 1

เด…เดตเดฏเตเดŸเต† เดชเดคเดฟเดชเตเดชเตเด•เดณเตเด‚

MLOps - เด•เตเด•เตเด•เต เดฌเตเด•เตเด•เต, เด…เดงเตเดฏเดพเดฏเด‚ 1

เดฎเตเดฎเตเดชเดคเตเดคเต† เด–เดฃเตเดกเดฟเด•เดฏเดฟเดฒเต†เดจเตเดจเดชเต‹เดฒเต†, เดŽเดฒเตเดฒเดพ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตเด‚ API เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดšเต†เดฏเตเดฏเดพเด‚.

7. เดฎเต‹เดกเตฝ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเด•

เดˆ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ, เดžเด™เตเด™เตพเด•เตเด•เต เด‡เดคเดฟเดจเด•เด‚ เดชเดฐเดฟเดถเต€เดฒเดจเด‚ เดฒเดญเดฟเดšเตเดš (เด•เต‡เดฐเดพเดธเต) เดฎเต‹เดกเตฝ เด‰เดฃเตเดŸเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚ เดŽเดจเตเดจเดคเดฟเดจเตเดฑเต† เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚:

class SegmentationModel:
    def __init__(self, tracking_uri, model_name):

        self.registry = RemoteRegistry(tracking_uri=tracking_uri)
        self.model_name = model_name
        self.model = self.build_model(model_name)

    def get_latest_model(self, model_name):
        registered_models = self.registry.get_registered_model(model_name)
        last_model = self.registry.get_last_model(registered_models)
        local_path = self.registry.download_artifact(last_model.run_id, 'model', './')
        return local_path

    def build_model(self, model_name):
        local_path = self.get_latest_model(model_name)

        return mlflow.keras.load_model(local_path)

    def predict(self, image):
        image = self.preprocess(image)
        result = self.model.predict(image)
        return self.postprocess(result)

    def preprocess(self, image):
        image = cv2.resize(image, (256, 256))
        image = image / 255.
        image = np.expand_dims(image, 0)
        return image

    def postprocess(self, result):
        return result

เด‡เดตเดฟเดŸเต† self.registry เดธเต—เด•เดฐเตเดฏเดพเตผเดคเตเดฅเด‚ mlflow.tracking.MlflowClient เดจเต เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดฑเดพเดชเตเดชเดฑเดพเดฃเต. เดžเดพเตป เด’เดฐเต เดฑเดฟเดฎเต‹เดŸเตเดŸเต เดธเต†เตผเดตเตผ เด†เด•เตโ€Œเดธเดธเตเดธเตเดšเต†เดฏเตโ€Œเดคเต เด…เดตเดฟเดŸเต† เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดชเต‡เดฐเตเด‚ เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเตเดฐเตŠเดกเด•เตเดทเตป เดชเดคเดฟเดชเตเดชเตเด‚ เด‰เดณเตเดณ เด’เดฐเต เดฎเต‹เดกเดฒเดฟเดจเดพเดฏเดฟ เดคเดฟเดฐเดฏเตเดจเตเดจเต เดŽเดจเตเดจเดคเดพเดฃเต เด•เดพเดฐเตเดฏเด‚. เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, เดžเดพเตป เด†เตผเดŸเตเดŸเดฟเดซเดพเด•เตเดฑเตเดฑเต เดชเตเดฐเดพเดฆเต‡เดถเดฟเด•เดฎเดพเดฏเดฟ ./เดฎเต‹เดกเตฝ เดซเต‹เตพเดกเดฑเดฟเดฒเต‡เด•เตเด•เต เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚, mlflow.keras.load_model(local_path) เดŽเดจเตเดจ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเต‹เดกเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เดจเดฎเตเดฎเตเดŸเต† เดฎเดพเดคเตƒเด• เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. CV (ML) เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเตผเด•เตเด•เต เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดฎเต‹เดกเตฝ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดพเดจเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเตเด•เตพ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚.

เด‰เดชเดธเด‚เดนเดพเดฐเดฎเดพเดฏเดฟ

เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดžเดพเตป เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเดšเตเดšเต:

  • ML เดฎเต‹เดกเดฒเตเด•เตพ, เดชเดฐเดฟเดถเต€เดฒเดจ เดชเตเดฐเต‹เด—เดคเดฟ, เดซเดฒเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดตเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เด•เต‡เดจเตเดฆเตเดฐเต€เด•เตƒเดคเดฎเดพเดฏเดฟ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเด•;
  • เด’เดฐเต เดตเดฟเด•เดธเดจ เด…เดจเตเดคเดฐเต€เด•เตเดทเด‚ เดตเต‡เด—เดคเตเดคเดฟเตฝ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเด•;
  • เดฎเต‹เดกเดฒเตเด•เดณเดฟเดฒเต† เดœเต‹เดฒเดฟเดฏเตเดŸเต† เดชเตเดฐเต‹เด—เดคเดฟ เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด•;
  • เดฎเต‹เดกเดฒเตเด•เดณเตเดŸเต† เด…เดตเดธเตเดฅ เดชเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเด‚ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดพเดจเตเด‚ เด‡เดคเต เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฃเต;
  • เดคเดคเตเดซเดฒเดฎเดพเดฏเตเดฃเตเดŸเดพเด•เตเดจเตเดจ เดฎเต‹เดกเดฒเตเด•เตพ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเดณเตเดชเตเดชเดฎเดพเดฃเต.

เดˆ เด‰เดฆเดพเดนเดฐเดฃเด‚ เด’เดฐเต เด•เดณเดฟเดชเตเดชเดพเดŸเตเดŸเดฎเดพเดฃเต เด•เต‚เดŸเดพเดคเต† เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เดธเดฟเดธเตเดฑเตเดฑเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เด†เดฐเด‚เดญ เดชเต‹เดฏเดฟเดจเตเดฑเดพเดฏเดฟ เดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเตฝ เดซเดฒเด™เตเด™เดณเตเดŸเต† เดฎเต‚เดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเดตเตเด‚ เดฎเต‹เดกเดฒเตเด•เดณเตเดŸเต† เดฐเดœเดฟเดธเตเดŸเตเดฐเต‡เดทเดจเตเด‚ (เดฏเดฅเดพเด•เตเดฐเดฎเด‚ เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เตพ 5 เด‰เด‚ 6 เด‰เด‚) เด‰เตพเดชเตเดชเต†เดŸเดพเด‚ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เตพ เดกเดพเดฑเตเดฑเดพเดธเต†เดฑเตเดฑเตเด•เดณเตเดŸเต† เดชเดคเดฟเดชเตเดชเต เดšเต‡เตผเด•เตเด•เตเดฎเต‹, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเดฑเตเดฑเต†เดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ ? เดžเดพเตป เดชเดฑเดฏเดพเตป เดถเตเดฐเดฎเดฟเดšเตเดš เด•เดพเดฐเตเดฏเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฎเตŠเดคเตเดคเดคเตเดคเดฟเตฝ MLOps เด†เดตเดถเตเดฏเดฎเดพเดฃเต เดŽเดจเตเดจเดคเดพเดฃเต, MLflow เด’เดฐเต เดฒเด•เตเดทเตเดฏเดคเตเดคเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด’เดฐเต เด‰เดชเดพเดงเดฟ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต.

เดžเดพเตป เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เดพเดคเตเดค เดŽเดจเตเดคเตŠเด•เตเด•เต† เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดจเดฟเด™เตเด™เตพ เดจเต‡เดฐเดฟเดŸเตเดŸเตเดตเต†เดจเตเดจเต เดŽเดดเตเดคเตเด•?
เดจเดฟเด™เตเด™เดณเตเดŸเต† เด†เดตเดถเตเดฏเด™เตเด™เตพ เดจเดฟเดฑเดตเต‡เดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดจเดฟเด™เตเด™เตพ เดŽเดจเตเดคเต เดšเต‡เตผเด•เตเด•เตเด‚?
เดŽเดฒเตเดฒเดพ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดญเดพเด—เดฟเด•เดฎเดพเดฏ เดชเตเดฐเดถเตเดจเด™เตเด™เดณเตเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ เดŽเดจเตเดคเต เด‰เดชเด•เดฐเดฃเด™เตเด™เดณเตเด‚ เดธเดฎเต€เดชเดจเด™เตเด™เดณเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต?

PS เดžเดพเตป เดฐเดฃเตเดŸเต เดฒเดฟเด™เตเด•เตเด•เตพ เด‡เดŸเดพเด‚:
github เดชเดฆเตเดงเดคเดฟ - https://github.com/simbakot/mlflow_example
MLflow - https://mlflow.org/
เดšเต‹เดฆเตเดฏเด™เตเด™เตพเด•เตเด•เตเดณเตเดณ เดŽเดจเตเดฑเต† เดœเต‹เดฒเดฟ เด‡เดฎเต†เดฏเดฟเตฝ - [เด‡เดฎเต†เดฏเดฟเตฝ เดชเดฐเดฟเดฐเด•เตเดทเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต]

เดžเด™เตเด™เดณเตเดŸเต† เด•เดฎเตเดชเดจเดฟ เด†เดจเตเด•เดพเดฒเดฟเด•เดฎเดพเดฏเดฟ เดเดŸเดฟ เดธเตเดชเต†เดทเตเดฏเดฒเดฟเดธเตเดฑเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดตเดฟเดตเดฟเดง เด‡เดตเดจเตเดฑเตเด•เตพ เดนเต‹เดธเตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต: เดœเต‚เดฒเตˆ 8 เดจเต เดฎเต‹เดธเตเด•เต‹ เดธเดฎเดฏเด‚ 19:00 เดจเต เด’เดฐเต เด“เตบเดฒเตˆเตป เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเตฝ เด’เดฐเต เดธเดฟเดตเดฟ เดฎเต€เดฑเตเดฑเดชเตเดชเต เด‰เดฃเตเดŸเดพเด•เตเด‚, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเด™เตเด•เต†เดŸเตเด•เตเด•เดพเด‚, เดฐเดœเดฟเดธเตเดŸเตเดฐเต‡เดทเตป เด‡เดตเดฟเดŸเต† .

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•