Cloud(GCP)를 이용한 ML-Pipeline 만들기 - 1. Vertex AI AutoML
이번에 클라우드를 이용한 ML endpoint를 만들어보기로 하였습니다.
참고한 자료는 이거 ~
https://www.youtube.com/watch?v=fw6NMQrYc6w (how to deploy machine learning model to google cloud)
github : https://github.com/mrdbourke/cs329s-ml-deployment-tutorial
StreamLit을 이용하였고,
GCP의 AI Platform을 사용하였습니다.
프로젝트의 목적은,
GCP를 이용해서 Food Classification AI 모델을 만드는 것이었습니다.
처음에 이 프로젝트를 재현해보려고 했었는데,
몇 가지 문제점이 있었습니다.
일단 GCP의 AI Platform 자체를 GCP에서 더이상 지원하지 않고,
Vertex AI라는 Platform으로 전환한 것이었습니다.
그래서 Vertex AI를 사용하였는데,
참조자료의 Streamlit이랑 연결하는데 굉장히 많은 실패를 겪었고,
결국에는 성공하지 못하였습니다.
너무나도 많은 실패 끝에, 일단 Vertex AI automl을 통해 모델을 만들어보기로 하고,
거기다가 streamlit을 연결해 보기로 했습니다.
Vertex AI를 통한 Image Classification 모델을 만드는 과정은 어렵지 않았습니다.
그저 Dataset에다가 이미지들을 올리고, Labeling만 한 다음,
몇 가지 설정만 하면 될 정도로 쉬웠습니다.
Custom Training의 경우, 코드를 입력하는 부분도 있습니다.
나중에 이 부분으로 하는것도 좋아보이긴 합니다.
계속 continue를 누르다 보면, 어느새 모델 학습이 진행되고,
모델 학습이 끝나게 되면, Model Registry에 모델이 올려진 것을 볼 수 있습니다.
이 모델을 deploy하면 endpoint가 만들어지게 되고,
endpoint에 접근하는 방법은
에 나와있습니다.
python으로 접근하는 방법 이외에도 rest api를 통해서 접근하는 방법이 있다고 하는데,
해보지 않아서 모르겠습니다.
여기까지 하는데 엄청난 실패와 좌절끝에 성공 하였지만,
결국 성공 하였습니다.
몇 가지 실패 (에러) 사례로는, ..
1. 1.5MB 보다 큰 이미지는 아예 처리를 못함.
관련 문서 - https://issuetracker.google.com/issues/123314535
2. 권한 에러
IAM user role로 극복 (service account)
등등이 있습니다..
다음 포스트에서는, 서버 구축에 대한 이야기를 좀 해보도록 하겠습니다.