모델 추론 개요

이 문서에서는 BigQuery ML이 지원하는 추론 유형을 설명합니다.

머신러닝 추론은 단일 숫자 점수와 같은 출력을 계산하기 위해 머신러닝 모델에서 데이터 포인트를 실행하는 프로세스입니다. 이러한 프로세스를 가리켜 '머신러닝 모델을 운용'하거나 '머신러닝 모델을 프로덕션에 배치'한다고도 말합니다.

BigQuery ML의 머신러닝 추론에는 다음과 같은 머신러닝 태스크가 포함됩니다.

각 추론 유형에 지원되는 모델 유형 및 SQL 함수에 대한 자세한 내용은 각 모델의 엔드 투 엔드 사용자 경험을 참조하세요.

예측

다음 섹션에서는 BigQuery ML에서 예측을 수행하는 데 사용 가능한 방법을 설명합니다.

BigQuery ML 학습 모델을 사용하는 추론

BigQuery ML의 예측은 지도 학습 모델뿐만 아니라 비지도 학습 모델에도 사용됩니다. 독립적이고 동일한 분포(IID) 데이터로 학습된 모델에만 사용됩니다. IID가 아닌 시계열 데이터의 경우 예측에 Prediction 대신 Forecasting이라는 용어를 사용합니다. 아래의 예측(Forecasting) 섹션을 참조하세요.

BigQuery ML은 다음 모델에서 ML.PREDICT 함수를 통해 예측 기능을 지원합니다.

모델 카테고리 모델 유형 ML.PREDICT의 역할
지도 학습 선형 및 로지스틱 회귀

부스티드 트리

랜덤 포레스트

심층신경망

와이드 앤 딥

AutoML Tables
회귀 태스크의 숫자 값 또는 분류 태스크의 범주형 값으로 된 라벨을 예측합니다.
비지도 학습 k-평균 항목에 클러스터를 할당합니다.
PCA 항목을 고유 벡터가 차지하는 공간으로 변환하여 항목에 차원 축소를 적용합니다.
Autoencoder 항목을 임베딩 공간으로 변환합니다.

행렬 분해 모델 추론은 권장사항을 참조하세요.

가져온 모델을 사용한 추론

이 접근 방식에서는 BigQuery 외부에서 모델을 만들어 학습시키고 CREATE MODEL을 사용해 가져온 후 ML.PREDICT 함수를 사용해 이에 대한 추론을 실행합니다. 모든 추론 처리는 BigQuery의 데이터를 사용하여 BigQuery에서 수행됩니다. 가져온 모델은 지도 학습 또는 비지도 학습을 수행할 수 있습니다.

BigQuery ML은 다음 유형의 가져온 모델을 지원합니다.

이 접근방식을 사용하여 다양한 ML 프레임워크로 개발된 커스텀 모델을 활용하는 동시에 BigQuery ML의 추론 속도와 데이터의 공동 배치를 활용할 수 있습니다.

자세한 내용은 다음 가이드 중 하나를 참조하세요.

원격 모델을 사용한 추론

이 접근 방식에서는 CREATE MODEL을 사용해 Vertex AI 예측에서 호스팅되는 모델에 대한 추론을 만든 후 ML.PREDICT 함수를 사용해 이에 대한 추론을 실행합니다. 모든 추론 처리는 BigQuery의 데이터를 사용하여 Vertex AI에서 수행됩니다. 원격 모델은 지도 학습 또는 비지도 학습을 수행할 수 있습니다.

이 접근 방식을 사용하면 Vertex AI에서 제공하는 GPU 하드웨어 지원이 필요한 대규모 모델에 대해 추론을 실행할 수 있습니다. 대부분의 모델이 Vertex AI에서 호스팅되는 경우 데이터를 Vertex AI로 가져오고 예측 결과를 다시 BigQuery로 가져오는 데이터 파이프라인을 수동으로 빌드하지 않고도 SQL을 사용하여 이러한 모델에 대한 추론을 실행할 수도 있습니다.

단계별 안내는 Vertex AI에서 원격 모델로 예측을 참조하세요.

예측(Forecasting)

예측은 과거 데이터를 입력으로 사용하여 정보에 입각하여 미래를 추정하는 기술입니다. BigQuery ML에서 예측은 시계열 데이터에 적용됩니다. IID 데이터는 예측을 참조하세요.

BigQuery ML은 ARIMA_PLUSARIMA_PLUS_XREG 모델을 사용하여 ML.FORECAST 함수를 통한 예측 기능을 지원합니다. 시계열 모델은 단일 모델이 아니라 여러 모델 및 알고리즘을 포함하는 시계열 모델링 파이프라인입니다. 자세한 내용은 시계열 모델링 파이프라인을 참조하세요.

권장사항

추천자 시스템은 비즈니스를 위한 머신러닝 기술 중 가장 성공적이고 널리 사용되는 애플리케이션 중 하나입니다. 추천 시스템을 사용하면 사용자가 대규모 작업물에서 적절한 콘텐츠를 찾을 수 있습니다. 예를 들어 Google Play 스토어는 수백만 개의 앱을 제공하고 YouTube는 수십억 개의 동영상을 제공하고 있으며 매일 더 많은 앱과 동영상이 추가되고 있습니다. 사용자가 흥미로운 새 콘텐츠를 찾기 위해 검색을 사용할 수 있지만 추천 엔진에서 사용자가 스스로 검색할 생각을 못한 콘텐츠를 표시해줄 수 있습니다. 자세한 내용은 추천 시스템 개요를 참조하세요.

추천자 시스템의 머신러닝 알고리즘은 일반적으로 콘텐츠 기반 필터링 및 협업 필터링 방법과 같은 두 가지 카테고리로 분류됩니다.

유형정의
콘텐츠 기반 필터링 항목 간 유사성을 사용하여 사용자가 좋아하는 항목과 유사한 항목을 추천합니다. 사용자 A가 귀여운 고양이 동영상 2개를 보면 시스템에서 귀여운 동물 동영상을 해당 사용자에게 추천할 수 있습니다.
협업 필터링 쿼리와 항목의 동시 유사성을 사용하여 추천을 제공합니다. 사용자 A가 사용자 B와 유사하고 사용자 B가 동영상 1을 좋아하면 (사용자 A가 동영상 1과 유사한 동영상을 보지 않았더라도) 시스템에서 사용자 1에게 동영상 1을 추천할 수 있습니다.

행렬 분해 모델은 추천 시스템의 협업 필터링 방법으로 널리 사용됩니다. BigQuery ML은 추천 목적으로 행렬 분해 사용에 도움이 되도록 ML.RECOMMEND 함수를 지원합니다. 행렬 분해를 추천에 적용하는 방법에 대한 자세한 내용은 행렬 분해를 참조하세요.

최신 추천 엔진에서는 와이드 앤 딥 모델을 포함한 심층신경망(DNN) 모델이 널리 사용됩니다. 이는 행렬 분해 기반 협업 필터링의 확장으로 볼 수 있습니다. 쿼리 특성과 항목 특성을 통합하여 추천의 관련성을 높일 수 있습니다. 자세한 배경 정보는 심층신경망 모델을 사용한 추천, YouTube 추천을 위한 심층신경망 또는추천자 시스템을 위한 와이드 앤 딥 러닝을 참조하세요. 추천 태스크에 모든 지도 학습 모델을 사용할 수 있다는 점도 알아두면 좋은 정보입니다.

이상 감지

이상 감지는 데이터 세트의 정상적인 동작에서 벗어나는 데이터 포인트, 이벤트, 관찰을 식별하는 데이터 마이닝 단계입니다. 이상 데이터는 기술 문제와 같은 중대한 이슈 또는 소비자 행동 변화와 같은 기회를 나타낼 수 있습니다.

이상 감지에 관한 과제 중 하나는 이상치를 식별하고 정의하는 것입니다. 알려진 이상치로 라벨이 지정된 데이터를 사용하면 BigQuery ML에서 이미 지원되는 지도 머신러닝 모델 유형 중에서 선택할 수 있습니다. 알려진 이상치 유형 또는 라벨이 지정된 데이터가 없어도 비지도 머신러닝을 사용하면 이상치를 감지하는 데 도움이 될 수 있습니다. 학습 데이터가 시계열인지 여부에 따라 다음 모델에서 ML.DETECT_ANOMALIES 함수를 사용하여 학습 데이터 또는 새 입력 데이터의 이상치를 감지할 수 있습니다.

데이터 유형 모델 유형 ML.DETECT_ANOMALIES의 역할
시계열 ARIMA_PLUS 시계열에서 이상치를 감지합니다.
독립적이고 동일하게 분포된 무작위 변수(IID) k-평균 입력 데이터에서 각 클러스터 중심까지의 정규화된 거리 중에서 최단 거리를 기반으로 이상치를 감지합니다. 정규화된 거리의 정의는 ML.DETECT_ANOMALIES를 참조하세요.
Autoencoder 평균 제곱 오차의 측면에서 재구성 손실을 기준으로 이상치를 감지합니다. 자세한 내용은 ML.RECONSTRUCTION_LOSS을 참조하세요. ML.RECONSTRUCTION_LOSS는 모든 유형의 재구성 손실을 검색할 수 있습니다.
PCA 평균 제곱 오차의 측면에서 재구성 손실을 기준으로 이상치를 감지합니다.

컴퓨터 비전

CLOUD_AI_VISION_V1REMOTE_SERVICE_TYPE으로 원격 모델을 만들어 Cloud Vision API에 대한 참조를 만든 다음 ML.ANNOTATE_IMAGE 테이블 값 함수(TVF)를 사용하여 해당 서비스로 이미지에 주석을 추가합니다. ML.ANNOTATE_IMAGE객체 테이블에서 작동합니다. 모든 추론 처리는 BigQuery의 데이터를 사용하여 Vertex AI에서 수행됩니다. 결과는 BigQuery에 저장됩니다.

Python을 배우거나 Vision API에 숙련되지 않아도 이 접근 방식을 사용하여 Google의 비전 모델에 대한 추론을 실행할 수 있습니다.

자세한 내용은 ML.ANNOTATE_IMAGE 함수로 객체 테이블 이미지에 주석 추가를 참조하세요.

기계 번역

CLOUD_AI_TRANSLATE_V3REMOTE_SERVICE_TYPE으로 원격 모델을 만들어 Cloud Translation API에 대한 참조를 만든 다음 ML.TRANSLATE TVF를 사용하여 해당 서비스와 상호작용합니다. ML.TRANSLATE표준 테이블에서 작동합니다. 모든 추론 처리는 BigQuery의 데이터를 사용하여 Vertex AI에서 수행됩니다. 결과는 BigQuery에 저장됩니다.

Python을 배우거나 Cloud Translation API에 숙련되지 않아도 이 접근 방식을 사용하여 Google의 텍스트 번역 모델에 대한 추론을 실행할 수 있습니다.

자세한 내용은 ML.TRANSLATE 함수를 사용하여 텍스트 번역을 참조하세요.

자연어 처리

CLOUD_AI_NATURAL_LANGUAGE_V1REMOTE_SERVICE_TYPE으로 원격 모델을 만들어 Cloud Natural Language API에 대한 참조를 만든 다음 ML.UNDERSTAND_TEXT TVF를 사용하여 해당 서비스와 상호작용합니다. ML.UNDERSTAND_TEXT표준 테이블에서 작동합니다. 모든 추론 처리는 BigQuery의 데이터를 사용하여 Vertex AI에서 수행됩니다. 결과는 BigQuery에 저장됩니다.

Python을 배우거나 Natural Language API에 숙련되지 않아도 이 접근 방식을 사용하여 Google의 텍스트 번역 모델에 대한 추론을 실행할 수 있습니다.

자세한 내용은 ML.UNDERSTAND_TEXT 함수를 사용하여 텍스트 이해를 참조하세요.