제 4장. AI, 머신러닝 및 Google Cloud 기반 분석 브리핑 문서
분석 및 인공지능(AI)의 주요 테마와 핵심 아이디어를 요약하고, Google Cloud 플랫폼에서 AI와 머신러닝을 활용하는 다양한 방법과 도구에 초점을 맞추어 설명합니다.
1. 분석 및 AI 소개 (M4_1_Introduction_to_Analytics_and_AI_KO.pdf)
- AI, 머신러닝(ML), 딥러닝의 관계: AI는 자율적으로 생각하고 행동하는 머신을 구축하는 이론 및 방법 전반을 아우르는 분야이며, ML은 데이터를 기반으로 예측 통계를 도출하고 반복적인 결정을 내리는 AI의 한 유형입니다. 딥러닝은 이미지, 음성 등 비정형 데이터 처리에서 뛰어난 성능을 보이는 ML의 한 종류입니다.
- "많은 사람이 인공지능(AI), 머신러닝(ML), 딥 러닝의 차이점에 관해 질문합니다. 이를 구분하는 한 가지 방법은 AI를 물리학처럼 하나의 분야로 생각하는 것입니다. AI는 자율적으로 행동할 수 있고 사고하는 머신을 의미합니다."
- "ML은 표준 알고리즘을 사용하여 데이터에서 예측 통계를 도출하고 반복적인 결정을 내리는 방법입니다."
- "딥 러닝은 머신러닝의 한 유형으로 이미지, 음성, 동영상, 자연어 텍스트 등과 같은 구조화되지 않은 데이터를 기반으로 할 때도 작동합니다."
- 회고적 분석에서 데이터 기반 의사 결정으로의 전환: 기존의 비즈니스 인텔리전스(BI)는 과거 데이터를 기반으로 보고서와 대시보드를 생성하는 회고적 분석에 집중하는 반면, ML은 예측 통계를 생성하여 미래를 예측하고 확장 가능한 데이터 기반 의사 결정을 지원합니다.
- "일반적인 회사와 오늘날 그러한 회사에서 데이터를 활용하는 방식을 생각해 보세요. 비즈니스 분석가와 의사 결정권자가 매일 대시보드를 확인하거나 월별 보고서를 읽을 것입니다. 이는 회고적인 데이터 사용 방식의 예로, 과거 데이터를 토대로 보고서와 대시보드를 만듭니다."
- "다만 Google은 머신러닝(ML)을 사용하여 미래를 내다보는 예측 통계를 생성하고자 합니다."
- "예측 통계를 중심으로 반복적으로 의사 결정을 내리려면 ML이 필요합니다."
- Google Cloud의 ML 모델 옵션: Google Cloud는 선행 학습된 모델을 활용하는 방법, AutoML을 통해 코딩 없이 커스텀 모델을 빌드하는 방법, Vertex AI를 사용하여 직접 커스텀 모델을 개발하고 배포하는 방법 등 다양한 ML 모델 옵션을 제공합니다.
- "AutoML을 사용해 Google의 머신러닝 기능을 기반으로 빌드하여 비즈니스 요구에 맞는 자체 커스텀 머신러닝 모델을 직접 만들 수 있습니다."
- "Vertex AI에서 지원되는 TensorFlow와 같은 ML 라이브러리를 통해 커스텀 모델을 개발할 수도 있습니다."
- "Google에서는 선행 학습된 다양한 머신러닝 모델을 제공합니다."
- ML의 실제 적용 사례: Keller Williams의 AutoML Vision을 활용한 부동산 특징 자동 파악, Kewpie의 ML 기반 불량 감자 선별 등 ML이 다양한 산업에서 실제 문제 해결에 활용될 수 있음을 보여줍니다.
- "가구와 건축물의 일반적인 요소를 파악하도록 커스텀 모델을 학습시키면 고객이 주택 등록 사진에서 더 현대적인 화강암 조리대와 같은 특정 특성을 자동으로 검색할 수 있습니다." - 닐 돌라키아, Keller Williams 최고 제품 책임자
- "ML 알고리즘 덕분에 Kewpie에서는 직원들이 지루한 감자 검사 작업에서 벗어나 더 가치 있는 다른 업무에 집중할 수 있게 되었습니다."
2. 비정형 데이터에 사전 빌드된 ML 모델 API 사용
- 비정형 데이터 작업의 어려움: 이미지, 음성, 텍스트와 같은 비정형 데이터는 구조화된 데이터와 달리 유용한 정보를 추출하고 분석하기 어렵습니다. 메타데이터 추출, 언어 식별, 내용 이해 등에 복잡성이 따릅니다.
- "이 슬라이드에는 2개의 이미지가 있습니다. 하나는 신문이고 또 다른 하나는 스포츠 경기 사진입니다. 두 이미지에는 많은 것들이 담겨 있으며 각 이미지에서 유용한 정보를 많이 도출할 수 있을 것입니다."
- "중요한 질문으로는 메타데이터를 어떻게 추출할 수 있는지를 들 수 있겠습니다. 그런 기술이 있을까요? 물론 있습니다."
- 데이터 보강을 위한 ML API: Google Cloud는 비정형 데이터에서 가치를 추출할 수 있는 다양한 선행 학습된 ML API를 제공합니다. 여기에는 Vision API (이미지 분석), Natural Language API (텍스트 분석), Speech-to-Text API (음성 인식), Video Intelligence API (영상 분석), Dialogflow (대화형 인터페이스 구축) 등이 포함됩니다.
- "Vision API와 Dialogflow 같은 제품은 Google의 데이터와 모델에 기반을 두고 있습니다. 사용자 데이터로 모델을 학습시키는 것에 대해 걱정할 필요가 없습니다."
- "비정형 데이터를 '보강'한다는 것은 라벨을 지정한다는 뜻입니다. '이메일의 제목은 무엇인가요?'와 '댓글이 부정적인가요, 아니면 긍정적인가요?' 같은 질문에 라벨을 지정합니다."
- Cloud Natural Language API의 주요 기능: 구문 분석 (토큰화 및 문법 정보 제공), 항목 분석 (개체 인식), 감정 분석 (텍스트 감정 파악), 콘텐츠 분류 (텍스트 주제 분류) 등의 기능을 통해 텍스트 데이터에서 유용한 정보를 추출할 수 있습니다.
- "Cloud Natural Language API는 텍스트 분석을 수행할 수 있는 다양한 특성을 제공합니다. 첫 번째 특성은 구문 분석입니다."
- "Natural Language API도 사람, 위치, 조직, 이벤트, 예술작품, 소비자 제품, 전화번호, 주소, 날짜, 숫자 인식을 위한 항목 분석을 제공합니다."
- "감정 분석은 저자의 태도에 대한 감정적 의견을 식별합니다. 느낌의 강도를 숫자 점수와 크기로 표시합니다."
- "이 문서의 작성 시점을 기준으로 콘텐츠를 620개 카테고리로 분류할 수 있습니다."
- 비정형 데이터의 실제 사용 사례: Uniqlo의 Dialogflow 기반 쇼핑 챗봇, Airbus의 위성 이미지 기반 구름/눈 구분, 경기 예측 기관의 위성 이미지 기반 선박 추적, 당뇨망막병증 진단 등 다양한 분야에서 비정형 데이터 분석의 가능성을 보여줍니다.
- "Uniqlo는 Google Cloud의 AI 제품인 Dialogflow를 사용하여 쇼핑 챗봇을 설계했습니다."
- "Airbus는 머신러닝을 이용하여 위성 이미지에서 구름과 눈을 구분합니다."
3. Notebooks를 사용한 빅데이터 분석
- Notebooks의 장점: JupyterLab 기반의 Notebooks 환경은 코드, 시각화, 설명을 통합하여 데이터 분석 및 머신러닝 작업을 효율적으로 수행할 수 있도록 지원합니다. 셀 단위 실행, 반복적인 실험, 쉬운 공유 및 협업 등의 장점을 제공합니다.
- "표준 소프트웨어 개발 도구는 데이터 분석 및 머신러닝을 위한 코드 작성에 그다지 효율적이지 않습니다."
- "Notebooks는 셀에서 개별적으로 실행 가능한 코드 조각을 조직합니다."
- "제가 처음 과학 연구를 시작했을 때 단일 결과에 관해 공동작업을 진행하는 데 많은 어려움이 있었습니다... Python Notebooks를 시작합니다. 코드를 작성하고 그래프를 만들고 해설을 작성하고 노트북 링크를 동료에게 보냅니다."
- Google Cloud Notebooks의 특징: 클릭 한 번으로 사전 구성된 JupyterLab 인스턴스를 가동할 수 있으며, 모든 Compute Engine 인스턴스 유형을 사용할 수 있고, 하드웨어 구성 (CPU, GPU 등)을 쉽게 변경할 수 있습니다. 클라우드 기반으로 호스팅되어 협업이 용이하고, 버전 관리 시스템(Git)과 통합됩니다.
- "클릭 한 번으로 노트북을 가동할 수 있습니다. Jupyter Notebook에 대해 들어보셨을 것입니다. Jupyter Notebook은 기본적으로 Google Cloud의 Notebooks(Vertex AI 및 AI Platform)와 동의어입니다."
- "Notebooks는 이 경우 Compute Engine에서 호스팅되는 최신 버전의 JupyterLab을 실행합니다."
- BigQuery 매직 및 Pandas 연결: Notebooks는 BigQuery 데이터를 직접 쿼리하고 Pandas DataFrame으로 가져와 추가적인 분석 및 조작을 수행할 수 있는 편리한 기능을 제공합니다. BigQuery 매직 함수를 사용하여 Notebook 내에서 SQL 쿼리를 실행하고 결과를 확인할 수 있으며, BigQuery API를 통해 쿼리 결과를 Pandas DataFrame으로 손쉽게 변환할 수 있습니다.
- "Jupyter Lab의 매직 함수에 익숙하실 것입니다. 매직 함수를 사용하면 노트북 셀 내에서 시스템 명령을 실행할 수 있습니다. 이 슬라이드에 표시된 BigQuery 매직 함수를 사용하면 BigQuery 쿼리를 실행할 수 있습니다."
- "BigQuery 매직 함수를 사용하면 쿼리 출력을 Pandas DataFrame에 저장하여 추가로 조작할 수 있습니다."
- "Pandas는 쿼리 결과를 DataFrame으로 직접 두 줄의 코드로 가져올 수 있다는 점에서 정말 강력합니다."
4. 프로덕션 ML 파이프라인
- Google Cloud에서의 ML 사용 방법: 선행 학습된 모델 활용, AutoML을 통한 커스텀 모델 빌드, Vertex AI를 이용한 커스텀 모델 개발 및 배포의 세 가지 주요 방법을 제시합니다.
- "앞서 Google Cloud에서 세 가지 방법으로 머신러닝을 수행할 수 있음을 배웠습니다."
- Vertex AI Pipelines: 머신러닝 모델의 학습 및 배포를 자동화하고 관리하기 위한 완전 관리형 서버리스 서비스입니다. 데이터 추출, 준비, 모델 학습, 검증, 평가, 배포 등 ML 워크플로의 각 단계를 파이프라인으로 구성하여 재현 가능하고 확장 가능하며 감사 가능한 ML 시스템 구축을 지원합니다.
- "Vertex AI Pipelines는 워크플로를 일련의 연결된 단계로 모델링하는 방법입니다. 각 단계는 이전 단계의 출력을 입력으로 받아 몇 가지 추가 계산을 수행하고 향후 구성요소에서 활용할 수 있는 출력을 생성합니다."
- "본질적으로 Vertex AI는 Google Cloud에서 대규모 머신러닝을 수행하는 엔진입니다. 데이터 과학자는 몇 가지 명령어로 Notebooks에서 프로덕션 모델을 학습시키고 배포할 수 있습니다."
- MLOps 프로세스의 중요성: 학습된 모델의 실험, 재학습, 배포, 지속적인 모니터링, 모델 관리 및 거버넌스를 포함하는 MLOps 프로세스가 프로덕션 ML 시스템의 핵심임을 강조합니다.
- "파이프라인은 프로덕션 ML 시스템의 핵심을 형성합니다. 그리고 개발, 테스트 및 배포의 모든 단계에서 사용됩니다."
- Kubeflow Pipelines 및 Vertex Pipelines: Kubeflow Pipelines는 Kubernetes 기반의 오픈소스 ML 파이프라인 플랫폼이며, Vertex Pipelines는 완전 관리형 서버리스 환경을 제공하여 사용자가 파이프라인 구축에 집중하고 인프라 관리에 대한 부담을 덜 수 있도록 합니다.
- "Kubeflow Pipelines는 Kubernetes 네이티브 오픈소스 제품으로 지난 수년간 성장하여 ML 파이프라인 실행을 위한 업계 표준으로 자리잡았습니다."
- "Vertex Pipelines를 통해 사용자가 리소스 관리로부터 자유로워지면서 구성 파일 관리라는 일상적인 번거로움이 줄어들었습니다."
- TensorFlow Hub: 재사용 가능한 ML 구성 요소 (텍스트 임베딩, 이미지 분류 모델 등)의 저장소로, 기존에 빌드되고 최적화된 에셋을 활용하여 ML 파이프라인 개발 효율성을 높일 수 있습니다.
- "TensorFlow Hub는 ML 구성요소 저장소입니다. 가용 리소스를 활용하세요. 다른 사람이 이미 빌드하고 최적화까지 마친 구성요소를 또 다시 빌드할 필요는 없습니다."
5. BigQuery ML에서 SQL을 사용한 커스텀 모델 빌드
- BigQuery ML의 장점: SQL 문법만으로 머신러닝 모델을 빌드할 수 있어 ML 지식이 부족한 사람도 쉽게 ML을 활용할 수 있도록 지원합니다. 데이터 이동 없이 BigQuery 내에서 직접 모델을 학습시키고 평가하며 예측을 수행할 수 있어 편리성과 효율성을 높입니다.
- "BigQuery 머신러닝을 사용하면 SQL 문법으로 머신러닝 모델을 빌드할 수 있습니다. SQL에 대해서만 알고 있으면 누구나 ML 모델을 빌드할 수 있기 때문에 정말 강력한 기능입니다."
- "이 과정의 핵심 내용은 BigQuery에서 강력한 머신러닝 모델을 빌드할 수 있다는 것입니다. 이 기능은 데이터가 BigQuery에 있는 경우 아주 유용합니다. 모델을 학습시키기 위해 데이터를 다른 곳으로 이동할 필요가 없기 때문입니다."
- BigQuery ML 워크플로: 학습 데이터 추출, 모델 생성 (모델 유형 및 하이퍼파라미터 지정), 모델 학습, 모델 평가, 예측 수행의 단계를 SQL 쿼리를 통해 진행합니다.
- "BigQuery ML로 작업하려면 시작부터 추론에 이르는 몇 단계를 거쳐야 합니다."
- 지원되는 모델 유형: 선형 회귀, 로지스틱 회귀, DNN 분류기, XGBoost 분류기, 행렬 분해 (추천 엔진), k-평균 클러스터링 등 다양한 ML 모델을 SQL을 통해 빌드하고 활용할 수 있습니다.
- "분류를 위해 BigQuery ML에서 사용 가능한 모델 옵션을 살펴보겠습니다."
- "이제 숫자 값 등의 예측을 위해 BigQuery ML에서 사용 가능한 모델 옵션을 살펴보겠습니다."
- "또한 BigQuery ML에서 사용자에게 추천을 서빙할 수도 있습니다. 여기에 사용되는 모델 유형을 행렬 분해 모델이라고 부릅니다."
- "마지막으로 BigQuery ML에서 제공되는 k-평균 클러스터링을 사용한 비지도 학습 알고리즘에 대해 이야기해 보겠습니다."
- 모델 평가 및 예측: ML.EVALUATE 함수를 사용하여 모델의 정밀도, 재현율, 정확도 등의 성능 지표를 확인하고, ML.PREDICT 함수를 사용하여 새로운 데이터에 대한 예측을 수행합니다.
- "이러한 측정항목을 가져오려면 학습 모델에서 ML.EVALUATE를 호출하거나 BigQuery UI에서 모델을 클릭하고 평가 탭을 클릭하면 됩니다."
- "SELECT * FROM ML.PREDICT(MODEL advdata.txtclass,( ... ))"
6. AutoML을 사용한 커스텀 모델 빌드
- AutoML의 장점: 최소한의 ML 지식과 코딩 없이 고품질의 커스텀 ML 모델을 빠르게 빌드할 수 있도록 지원합니다. 모델 학습, 평가, 배포, 서빙의 전 과정을 자동화하여 사용 편의성을 높입니다.
- "AutoML은 최소한의 수고와 머신러닝 지식만으로 강력한 머신러닝 모델을 빌드할 수 있는 Google Cloud 서비스입니다. 머신러닝 모델을 가급적 빠르게 시작해야 할 때 사용하면 좋습니다."
- "AutoML은 학습, 배포, 서빙이라는 세 단계로 구분되는 표준 절차를 따릅니다."
- AutoML 제품군: 이미지 데이터용 AutoML Vision, 텍스트 데이터용 AutoML Natural Language, 테이블 형식 데이터용 AutoML Tables 등 다양한 데이터 유형에 특화된 AutoML 제품을 제공합니다.
- "이 모듈에서는 몇몇 AutoML 제품에 대해 알아봅니다. AutoML Vision은 이미지 데이터, Natural Language는 텍스트 기반 데이터, Tables는 테이블 형식 데이터를 위한 제품입니다."
- AutoML 워크플로: 데이터 세트 준비, 데이터 분석, 모델 학습, 모델 평가, 모델 배포 및 서빙의 단계를 거칩니다. AutoML은 데이터 전처리, 모델 아키텍처 검색 및 하이퍼파라미터 튜닝 등의 복잡한 과정을 자동으로 수행합니다.
- "학습 과정에는 몇 가지 단계가 있습니다. 먼저 지도 학습 프로세스에 사용할 데이터 세트를 준비해야 합니다. 그다음에는 데이터 세트를 분석하여 효과적인 결과를 도출할 수 있는 품질을 갖췄는지 확인해야 합니다."
- AutoML Vision: 이미지 분류 모델 학습에 유용하며, CSV 파일 또는 로컬 컴퓨터에서 이미지를 업로드하여 학습 데이터를 준비할 수 있습니다. 모델 성능 평가를 위한 혼동 행렬 및 다양한 지표를 제공합니다.
- "AutoML Vision은 이미지 분류를 위한 모델 학습에 유용합니다."
- AutoML Natural Language: 텍스트 분류 모델 학습에 적합하며, 인라인 텍스트 또는 텍스트 파일 형태로 학습 데이터를 제공할 수 있습니다. 평균 정밀도, 신뢰도 임곗값 곡선, 혼동 행렬 등을 통해 모델 성능을 평가합니다.
- "AutoML Natural Language는 텍스트 데이터에 대한 모델 학습에 유용합니다."
- AutoML Tables: 구조화된 테이블 형식 데이터에 대한 예측 모델 (분류 또는 회귀)을 자동으로 빌드합니다. BigQuery, CSV 파일 등을 통해 데이터를 가져올 수 있으며, 데이터 검증, 특성 선택, 모델 아키텍처 검색, 앙상블 등의 과정을 자동화합니다. Mercari 가격 제안 챌린지에서의 뛰어난 성능 사례를 소개합니다.
- "AutoML Tables는 구조화된 데이터를 위한 제품입니다."
- "이 그래프는 다양한 학습 시간에 따른 Mercari 챌린지에서의 AutoML Tables의 성능을 보여줍니다."
- AutoML 모델 배포 및 서빙: 학습된 모델은 자동으로 배포되어 웹 UI 또는 REST API를 통해 쉽게 예측을 수행할 수 있습니다.
- "학습된 모델을 배포하기 위해 수행해야 할 작업은 없습니다."
7. 요약
- Google Cloud 기반 분석 및 AI의 주요 개념 복습: 앞선 모듈에서 다룬 AI 소개, 비정형 데이터 분석, Notebooks 활용, ML 파이프라인 구축, BigQuery ML, AutoML 등의 주요 내용을 간략하게 요약합니다.
- "분석 및 AI에 관해 다룬 몇 가지 주요 개념을 복습해 보겠습니다."
- 다양한 Google Cloud ML 서비스의 활용: 사용자의 요구 사항, 데이터 유형, ML 전문 지식 수준에 따라 선행 학습된 API, AutoML, BigQuery ML, Vertex AI 등 적합한 Google Cloud ML 서비스를 선택하여 활용할 수 있음을 강조합니다.
- "Google Cloud에는 사용자의 머신러닝 요구사항에 적합한 몇 가지 옵션이 있습니다. 허용된 시간과 사용 가능한 리소스에 따라 Vertex AI를 사용할 수도 있고 AutoML을 사용할 수도 있습니다."
Google Cloud 플랫폼에서 AI와 머신러닝을 효과적으로 활용하기 위한 기본적인 이해를 돕고, 다양한 도구와 서비스의 특징 및 활용 방안을 파악하는 데 도움이 되기를 바랍니다.
댓글