개발자로 후회없는 삶 살기

오픈소스 SW PART.MLops mini 프로젝트 설명 및 도입 본문

[개발자]/[교과목]

오픈소스 SW PART.MLops mini 프로젝트 설명 및 도입

몽이장쥰 2022. 11. 9. 18:09

서론

교과목 10주차 강의 내용 정리해 보겠습니다.

 

 

 

본론

- 인공지능 모델 개발 프로세스 및 분석 사례

우리는 이번 과목에서 프로젝트로 전체 인공지능 모델 개발 프로세스를 다뤄 볼 거고 그중 상당수를 오픈 SW로 진행할 것입니다.

 

=> 위 사진을 보면

1. 프로젝트 기획

2. 데이터 수집 ㆍ 정제 

-> 이 부분에서 EDA가 발생 : 데이터 분석에서 배운 것을 인공지능 모델 개발 프로세스에서 사용합니다. > 피쳐 엔지니어링에서 PCA, 정규화 등을 실제로 진행합니다.

3. 모델 개발 : 데이터 정체가 끝나면 모델 개발

4. 배포

 

-> 이전 포스팅에서 설명한 것보다 조금 빠졌지만 전체 흐름은 동일합니다. 우리 수업의 최종 목적이 MLops를 이해하고 실습해 보고 경험해 보는 것입니다. MLops 전체를 다루지는 못할 테니 프로젝트 중간중간에 '지금 Mlops 프로젝트에서 하는 요소는 전체 파이프라인 중 어디지?' 를 이해하고 생각해 보고 대입시켜보고 나중에 수업 끝난 후에 교과목에서 배우지 못한 부분을 채워 나가겠습니다.

 

- 미니 프로젝트 실습

=> 주제 : Mask R-CNN을 학습시켜서 전체 이미지에서 풍선만 색깔이 있고 나머지는 흑백인 이미지를 구하는 모델을 만들어보기!(모델이 풍선을 인식하는 거입니다.)

 

=> 목표

0. 데이터를 Mask R-CNN에 맞게 어노테이션 툴을 사용하여 가공

1. 학습시킨 모델에 새로운 데이터를 넣어도 잘 감지하나 체크

2. 텔레그램 봇으로 학습이 실시간으로 잘 되고 있나 확인

 

-> 이번 미니 프로젝트 실습은 MLops 전체 파이프라인 중 모델 개발(학습)에 해당합니다. + 텔레그램 봇으로 학습 모니터링도 하겠습니다.

 

 

-> 텔레그램 봇 내 로컬 pc에 연동

 

① 봇 생성

② 봇에게 말 걸고 텔레그램 봇 라이브러리 설치

③ URL로 Chat ID 확인

-> URL에 가서 true가 나오면 성공

-> 봇에게 말을 걸고

-> f5 누르면 chat_ID 확인 가능

 

 

④ 봇과 1대1 채팅 코드

import telegram

token = "여기 기입"

bot = telegram.Bot(token)
chat_id = "여기 기입"
text = "텔레그램 봇이 할 말"
bot.sendMessage(chat_id = chat_id, text = text)

 

 

⑤ 봇과 1대N 채팅 코드

import telegram

token = "여기 기입"

bot = telegram.Bot(token)
public_chat_name = "@ktest2022"
id_channel = bot.sendMessage(chat_id = public_chat_name, text = "alarm").chat_id
print(id_channel)

-> 성공!!!!! 이것으로 모델이 가중치 갱신을 할 때마다 채팅으로 알람을 주도록 만들 것입니다!

 

⑥ 주기적으로 정해진 시간마다 출력하는 스케쥴러

-> 스케쥴러를 사용하여 1분 마다 현재 시각을 출력하도록 해보았습니다.

 

-> 이것을 봇에 적용

-> 이제 이것으로 가중치 파일이 생성될 때마다 메세지를 보내도록 해보겠습니다.

 

 

 

- 최종 프로젝트 계획

mlops 파이프라인 구축

※ 마이크로 아키텍쳐란?

개별 서버를 가지고 개별 서버는 서로 통신합니다. 이걸 왜 사용할까요? 개별 서버 하나하나를 컨테이너로 만들어서 배포할 수 있습니다. = 전부 다 개별 이미지로 만들어서 배포할 수 있습니다. = 각 하나하나는 버전 업글도 쉽습니다.

 

+ 이 도커 컨테이너들을 쿠버네티스(가상 컨테이너를 조율해 주는 어플리케이션)로 관리합니다.(오케스트레이션)

-> 결론 : 마이크로 아키텍쳐 일부 경험 + mlops를 도커와 쿠버네티스와 마이크로 아키텍쳐로 구현! + 이걸 젠킨스, 레드마인으로 관리까지 하면 배운 오픈소스 툴은 다 사용하는 것입니다.

 

Comments