구글 AutoML에 대하여
머신러닝 개발을 위해서는 많은 리소스와 시간이 필요 합니다. 수없이 발생되는 데이터를 관리 해야하고, 이 데이터를 가지고 모델을 생성/학습하기 위한 자원이 필요합니다. 또한 비즈니스에 적용할 모델을 트레이닝 시키고 다듬을 데이터 전문가도 필요합니다.
구글에서는 이러한 어려움을 해결하기 위해 AutoML 서비스를 제공하고 있습니다. 많은 기업, 사용자들은 머신러닝 전문가가 없어도 Google의 최첨단 기술을 활용하여 보다 쉽게 고품질 모델을 구축할 수 있습니다.
본 기고글에서는 GCP의 AutoML을 활용해 개와 고양이를 인식하는 모델을 생성하는 과정을 설명합니다.
뉴스레터 가입
클라우드 관련 최신 소식을 업데이트 받으실 수 있습니다.
1. Cloud AutoML Vision
Cloud AutoML은 머신러닝 전문가가 부족한 환경에서 비즈니스 요구에 맞춰 모델을 생성할 수 있는 Google Cloud의 머신러닝 제품입니다.
Google은 고객의 AI 비즈니스를 위해 아래와 같이 Cloud AI 서비스를 제공하고 있으며, Cloud AutoML Vision은 Cloud AI Building Blocks 내 위치하고 있습니다.
Google은 인간과 유사한 Sight, Language, Conversation 기능을 보다 쉽게 구축할 수 있도록 지원해주는 AI 제품군을 Cloud AI Building Blocks로 묶어 관리하고 있습니다. 이 중 Cloud AutoML은 Sight 부분으로 분류되고 있습니다.
Cloud AI Building Blocks – Sight 주요 기능은 아래와 같습니다.
– 이미지 내용 분석
– 카테고리별 이미지 분류
– 이미지 내 개별 오브젝트 및 얼굴 감지
– 비디오 검색 및 탐지
2. AutoML Vision으로 모델생성 및 예측하기
이 가이드에서는 AutoML Vision을 사용하여 학습 이미지 세트로 새 모델을 생성하고 결과를 평가하고 테스트 이미지의 분류를 예측하는 과정을 설명합니다.
2.1 프로젝트 환경구성
1) GCP 콘솔에서 Manage resources 메뉴로 이동한 후 프로젝트를 생성합니다.
2) AutoML Vision API를 활성화 합니다.
ENABLE THE APIS 링크로 이동 후 적용 Project 선택
3) gcloud 명령줄 도구를 설치합니다.
4) 서비스계정을 만들고 키 파일을 다운로드 합니다.
5) 서비스 계정을 만들 때 다운로드한 서비스 계정 키 파일 경로로 GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정합니다.
export GOOGLE_APPLICATION_CREDENTIALS=key-file
6) AutoML editor 역할을 서비스 계정에 추가합니다.
project-id : GCP 프로젝트 id
service-account-name : 새 서비스 계정의 이름
(예: service-account1@myproject.iam.gserviceaccount.com)
gcloud auth login
gcloud projects add-iam-policy-binding project-id
–member=”user:your-userid@your-domain” \–role=”roles/automl.admin”
gcloud projects add-iam-policy-binding project-id \
–member=serviceAccount:service-account-name –role=”roles/automl.editor”
gcloud projects add-iam-policy-binding project-id
–member=”user:your-userid@your-domain” \–role=”roles/automl.admin”
gcloud projects add-iam-policy-binding project-id \
–member=serviceAccount:service-account-name –role=”roles/automl.editor”
7) AutoML Vision 서비스 계정으로 Google Cloud 프로젝트 리소스에 액세스 할 수 있도록 설정 합니다.
gcloud projects add-iam-policy-binding project-id \
–member=”serviceAccount:custom-vision@appspot.gserviceaccount.com” \
–role=”roles/storage.admin”
8) 클라이언트 라이브러리를 설치합니다.
9) PROJECT_ID 및 REGION_NAME 환경 변수를 설정합니다.
project-id : GCP 프로젝트 id
REGION_NAME : 현재 AutoML Vision은 us-central1 위치
export PROJECT_ID=”project-id“
export REGION_NAME=”us-central1″
10) Google Cloud Storage 버킷을 만들고 커스텀 모델 학습에 사용할 문서를 저장합니다.
버킷 이름은 $PROJECT_ID-vcm 형식이어야 합니다. 다음 명령으로 us-central1 지역에 $PROJECT_ID-vcm이라는 Storage 버킷을 만듭니다.
gsutil mb -p $PROJECT_ID -c regional -l $REGION_NAME gs://$PROJECT_ID-vcm/
11) 모델 학습에 사용할 데이터를 위에 생성한 버킷에 입력합니다.
<gsutil 사용 dir : 원천데이터 위치 gs://my-bucket : 저장될 버킷>
gsutil -m cp -r dir gs://my-bucket
<콘솔 사용>
Storage – Browser 메뉴에서 복사할 폴더를 선택한 후 Upload files/Upload folder 기능으로 데이터 복사 수행
12) 학습을 위해서는 버킷에 저장한 이미지들의 위치와 라벨을 .csv 형식으로 제공해야 합니다. 아래의 형식을 참고해서 작성이 필요 합니다.
<example>
Labeled: gs://calm-trees-123-vcm/flowers/images/100080576_f52e8ee070_n.jpg,daisy
Not labeled: gs://calm-trees-123-vcm/flowers/images/10140303196_b88d3d6cec.jpg
Multi-label: gs://calm-trees-123-vcm/flowers/images/5217892384_3edce91761_m.jpg,dandelion,tulip,rose
Assigned to a set: TEST,gs://calm-trees-123-vcm/flowers/images/120080580_e33a8cd011_n.jpg,daisy
<엑셀 예>
13) 업데이트된 .csv 파일을 버킷에 복사합니다.
2.2 애플리케이션 실행
• 데이터 세트 만들기
AutoML Vision 웹사이트(http://beta-dot-custom-vision.appspot.com/)에서 데이터세트를 만들고 모델을 학습시키는 과정을 시작합니다.
해당 메시지가 나타나면 Cloud Storage 버킷에 사용한 프로젝트를 선택합니다.
1) AutoML Vision 페이지에서 새 데이터세트를 클릭합니다.
2) 데이터세트의 이름을 지정합니다.
3) CSV 파일의 Cloud Storage URI를 지정합니다. 빠른 시작에서 CSV 파일의 위치는 gs://your-project-123-vcm/csv/all_data.csv입니다. 여기에서 your-project-123을 사용자의 고유 프로젝트 ID로 바꾸어야 합니다.
• 이미지에 라벨이 둘 이상인 경우 다중 라벨 분류 사용 설정을 선택합니다.
4) 데이터세트 만들기를 클릭합니다. 가져오기를 완료할 때까지 몇 분 정도 걸릴 수 있습니다. 완료되면 데이터세트에서 식별된 모든 이미지(라벨이 있는 이미지 및 라벨이 없는 이미지)에 대한 세부정보를 보여주는 다음 페이지로 이동합니다. 라벨 필터링에서 라벨을 선택하여 이미지를 라벨로 필터링할 수 있습니다.
CSV 파일을 가져온 후 이미지를 더 추가하고 새로 추가한 이미지 및 기존 이미지의 라벨을 업데이트할 수 있습니다.
• 모델 생성
데이터 세트가 준비되면, 이를 사용해 모델을 학습/테스트/평가 작업을 수행합니다. 모델 학습 완료까지는 몇 시간 정도 소요될 수도 있으며, AutoML API를 사용해 학습 상태를 확인할 수 있습니다.
메뉴의 “TRAIN” 항목을 클릭하면 데이터 세트의 상태가 출력되고, 하단의 “START TRAINING” 버튼을 클릭하여 모델 학습을 시작합니다. 학습이 완료되면 모델이 자동으로 배포됩니다.
모델 생성 후 정보는 AutoML Visoin의 Models 메뉴에서 확인할 수 있습니다.
• 모델 평가
모델 학습 완료 후 테스트 데이터 세트를 사용해 새로 생성한 모델의 정밀도, 재현율 등을 살펴볼 수 있습니다.
“EVALUATE” 탭을 클릭하면 정밀도, 재현율 등의 정보를 출력해 줍니다. 라벨 필터링에서 각 라벨을 클릭하면 True Positives, True Negatives, False Positives, False Negatives에 대한 상세 내용을 확인할 수 있습니다.
• 실제 예측하기
모델을 학습시킨 후 모델을 사용하여 이미지에 대한 예측을 수행할 수 있습니다. 즉, 커스텀 모델을 어떻게 만들었는지에 따라 이미지의 내용을 기술하는 하나 이상의 라벨을 가져올 수 있습니다.
학습완료 후 모델이 생성되면 Predict 페이지에서 모델을 테스트할 수 있습니다.
모델을 선택한 후 UPLOAD IMAGES 버튼 클릭 후 테스트 할 이미지를 입력합니다.
입력한 이미지에 대한 예측값을 UI를 통해 확인할 수 있습니다.
실무자를 위한 Step by Step Guide
- Google Cloud에서 Autoscaling이 되는 웹서버 구축하기
- 구글 클라우드 플랫폼의 Cloud Healthcare API 소개
- GCP Cloud SQL용 private networking connection 소개
- Google Cloud Platform Security Overview
- GCP Cloud Dataflow 개발 환경 구성하기
- Google Cloud Platform의 Cloud Composer를 이용한 Workflow Orchestration
- Stackdriver를 이용한 GCP의 로깅 및 모니터링 소개
- Google Cloud Platform의 Datalab 및 BigQuery를 이용한 빅 데이터 분석
- Google Cloud Platform에 IoT Analytics Pipeline 구축하기
- GCP Machine Learning 엔진을 활용한 Object Detection
- Google Cloud Platform Overview
구글 클라우드 플랫폼(GCP)에 대해 더 알고 싶으세요?
베스핀글로벌의 GCP 전문 엔지니어가 답해드립니다.