서버리스 머신러닝 모델의 아키텍처

이 문서 시리즈에서는 지원 티켓이 지원 담당자에게 도달하기 전에 지원 티켓을 메타데이터로 보강하는 서버리스 머신러닝(ML) 모델의 아키텍처를 살펴봅니다.

상담사가 비즈니스 의사 결정을 내리려면 데이터가 필요합니다. 로그는 기본적인 정보를 파악하는 데 유용한 소스이지만 보강된 데이터를 추가하면 얘기가 완전히 달라집니다. 그러한 시스템을 구현하는 것은 어려울 수 있지만 이 시리즈에서 그 솔루션을 제공합니다.

요구사항 및 아키텍처

들어오는 지원 티켓을 관리하는 것은 어렵습니다. 상담사는 문제 해결을 시작하기 전에 다음을 수행해야 합니다.

  • 지원 티켓의 컨텍스트를 이해합니다.
  • 고객에게 얼마나 심각한 문제인지 확인합니다.
  • 문제를 해결하는 데 사용할 리소스의 수를 결정합니다.

지원 담당자는 일반적으로 지원 티켓을 연 고객으로부터 최소한의 정보만 받습니다. 고객과 몇 차례 정보를 주고받으며 추가적인 세부정보를 수집하는 경우가 많습니다. 여기에 티켓 데이터를 기반으로 하는 자동화된 인텔리전스를 추가하면 상담사가 지원 요청을 처리할 때 전략적 결정을 내리는 데 도움이 됩니다.

일반적으로 사용자는 여러 필드가 포함된 양식을 작성한 후 티켓을 로깅합니다. 이 사용 사례에서 지원 티켓 중에 머신러닝으로 보강된 티켓이 없다고 가정해 보세요. 또한 현재 지원 시스템이 몇 개월 동안 티켓을 처리하고 있다고 가정해 보세요.

지원 티켓 보강을 시작하려면 기존의 라벨이 지정된 데이터를 사용하는 ML 모델을 학습시켜야 합니다. 이 경우 학습 데이터세트는 종료된 지원 티켓에 있는 이전 데이터로 구성됩니다. 필요한 데이터는 다음과 같은 두 가지 필드에 있습니다.

  • 입력 필드 - 사용자가 입력하는 양식 데이터가 포함되어 있습니다.
  • 대상 필드 - 티켓이 처리될 때 입력됩니다.

이를 결합하면 이러한 필드의 데이터가 정확한 예측을 할 수 있는 모델을 학습시키는 예제를 만듭니다. 이 사용 사례의 예측에는 티켓이 열린 상태로 유지될 기간과 티켓에 할당될 우선순위가 포함됩니다.

이 시리즈에서는 이러한 목표를 달성하기 위해 다음과 같은 네 가지 ML 보강 작업을 살펴봅니다.

  • 티켓 설명을 기반으로 감정 분석
  • 티켓 설명을 기반으로 자동 태그 지정
  • 티켓이 열린 상태로 유지될 기간 예측
  • 티켓에 할당될 우선순위 예측

ML 보강 워크플로의 단계:

  1. 사용자가 티켓을 만듭니다.
  2. 티켓이 생성되면 머신러닝 모델을 호출하여 예측을 수행하는 함수가 트리거됩니다.
  3. ML 모델에서 반환한 예측 정보로 티켓 데이터가 보강됩니다.
  4. 지원 담당자는 보강된 지원 티켓을 사용하여 효율적인 결정을 내립니다.

이 워크플로를 다이어그램으로 나타내면 다음과 같습니다.

ML 보강 워크플로

티켓팅 시스템

시스템을 처음부터 새로 빌드하든, 오픈소스 코드를 사용하든, 상용 솔루션을 구매하든 이 문서에서는 다음 사항을 가정합니다.

  • 브랜딩이 적용된 고객용 UI가 지원 티켓을 생성합니다. 모든 헬프데스크 도구가 이러한 옵션을 제공하는 것은 아니므로 간단한 양식 페이지를 사용하여 만들 수 있습니다.
  • 타사 헬프데스크 도구는 티켓을 만들 수 있는 RESTful API를 통해 액세스할 수 있습니다. 시스템은 이 API를 사용하여 티켓 백엔드를 업데이트합니다.
  • 이벤트가 발생하면 시스템이 맞춤식 고객 UI를 실시간으로 업데이트합니다.

Firebase는 이러한 유형의 구현에 탁월한 선택입니다.

  • Firebase는 클라이언트가 업데이트할 수 있는 실시간 데이터베이스이며 가입된 다른 클라이언트에 실시간 업데이트를 표시합니다.
  • Firebase는 Cloud Functions를 사용하여 헬프데스크 플랫폼이 제공하는 것과 같은 외부 API를 호출할 수 있습니다.
  • Firebase는 데스크톱 및 모바일 플랫폼에서 작동하며 다양한 언어로 개발할 수 있습니다. Firebase는 인터넷 연결이 불안정할 경우 로컬에서 데이터를 캐시할 수 있습니다.

서버리스 기술 및 이벤트 기반 트리거링

'서버리스 기술'은 다양한 방법으로 정의할 수 있지만 대부분의 설명에는 다음과 같은 가정이 포함됩니다.

  • 서버는 고객에게 보이지 않으며 동떨어진 개념입니다.
  • 작업은 일반적으로 이벤트로 트리거되는 함수를 통해 수행됩니다.
  • 함수는 일반적으로 수명이 짧은(몇 초 또는 몇 분 동안 지속되는) 작업을 실행합니다.
  • 대부분의 경우 함수의 목적은 하나입니다.

Firebase와 Cloud Functions를 결합하면 인프라 관리를 최소화하여 DevOps를 간소화할 수 있습니다. 운영 흐름은 다음과 같습니다.

  1. Firebase의 데이터베이스 업데이트를 기반으로 Cloud Function 이벤트를 만듭니다.
  2. 클라이언트가 Firebase 데이터베이스에 티켓을 씁니다.
  3. Cloud Function 트리거가 몇 가지 주요 작업을 수행합니다.

    • 배포된 머신러닝 알고리즘을 사용하여 예측을 실행합니다.
    • 보강된 데이터로 Firebase 실시간 데이터베이스를 업데이트합니다.
    • 통합 데이터를 사용하여 헬프데스크 시스템에 티켓을 만듭니다.

지원 티켓 보강

자동 태그 지정, 감정 분석, 우선순위 예측, 해결 시간 예측을 두 가지 카테고리로 그룹화할 수 있습니다. 이 카테고리는 머신러닝 작업 수행 방식을 기준으로 나눈 것입니다.

  • 감정 분석 및 자동 태그 지정은 이미 Google에서 학습시키고 빌드한 머신러닝 API를 사용합니다. 사전 학습된 모델은 직접 만든 모델보다 맞춤설정할 수 있는 부분이 적지만 바로 사용할 수 있습니다.
  • 티켓 해결 시간 및 우선순위를 예측하려면 모델을 빌드하거나 미리 준비된 모델을 사용하고 입력 및 대상 필드와 같은 커스텀 데이터로 학습시켜야 합니다.

감정 분석 및 자동 태그 지정

지원 티켓을 로깅할 때 상담사는 고객의 감정을 알고 싶어 할 수 있습니다. 티켓 설명에 대한 감정 분석을 실행하면 이러한 정보를 제공할 수 있습니다.

티켓에 언급된 내용을 전체적으로 파악하는 것도 중요합니다. 고객은 지원 티켓을 만들 때 일반적으로 드롭다운 목록에서 매개변수를 제공하지만 문제를 설명할 때 더 많은 정보가 추가되는 경우가 많습니다. 상담사는 설명에서 가장 중요한 단어를 식별하는 도구를 사용하여 주제를 좁힐 수 있습니다. 이러한 프로세스를 와일드 자동 태그 지정이라고 합니다.

두 솔루션은 일반적이며 설명하기 쉽지만 처음부터 새로 빌드하기는 어렵습니다. 텍스트 분석용으로 학습된 강력한 모델을 대규모로 사용하는 것이 확실히 유리합니다. 이러한 모델은 개발 시간을 줄이고 인프라 관리를 단순화합니다.

이러한 두 보강 아이디어에 좋은 솔루션은 Cloud Natural Language API입니다. 이 API는 Cloud Functions에서 RESTful API로 쉽게 액세스할 수 있습니다. Natural Language API는 여러 작업을 수행할 수 있으며 Google 확장 데이터세트를 사용하는 선행 학습된 모델입니다.

  • 감정 분석
  • 현저도 계산을 사용한 항목 분석
  • 구문 분석

이 문서에서는 감정 분석과 항목 분석을 모두 활용합니다. 커스텀 정의된 임계값보다 현저도가 높은 단어를 유지하여 자동 태그 지정을 처리합니다.

특정 태그를 자동으로 반환할 수 있는 모델을 원하는 경우 NLP(자연어 처리) 모델을 커스텀으로 생성하고 학습해야 합니다. 이 방법은 티켓을 완전히 분류하지 않고 설명을 신속하게 분석하는 것이기 때문에 모든 태그 지정에 적용됩니다.

티켓 해결 시간 및 우선순위 예측

티켓의 해결 시간 및 우선순위 상태는 각 헬프데스크 시스템과 관련된 입력(티켓 필드)에 따라 다릅니다. 따라서 영어 태그 지정 및 감정 분석처럼 선행 학습된 모델을 사용할 수 없기 때문에 자체 머신러닝 함수를 학습시켜야 합니다.

해결 시간과 우선순위를 예측하는 워크플로는 비슷하지만 두 작업은 두 가지 상이한 값을 가집니다.

  • 해결 시간은 연속적인 값입니다.
  • 우선순위에는 헬프데스크 시스템에 따라 사전 정의된 여러 옵션이 있습니다.

다음 작업을 할 수 있는 아키텍처를 선택하세요.

  • 커스텀 데이터로 모델을 학습시킵니다.
  • 모델을 배포하고 Cloud Function의 RESTful API로 제공합니다.
  • 필요에 따라 모델을 확장합니다.

Cloud Datalab은 클라우드에서 Jupyter 노트북을 실행하는 Google 관리 도구입니다. Cloud Datalab은 다른 Google Cloud Platform(GCP) 제품과 통합됩니다. 또한 Cloud Datalab은 TensorFlowAI Platform이라는 두 가지 핵심 기술을 활용하는 Python 라이브러리인 ML Workbench(여기에서 메모장 예시 참조)도 실행할 수 있습니다.

TensorFlow 기능은 다음과 같습니다.

  • TensorFlow에서 작성된 그래프(실행 파일)는 이식이 가능하며 다양한 하드웨어에서 실행될 수 있습니다.
  • Estimator API를 통해 사전 제작된 모델이나 커스텀 모델을 사용할 수 있습니다. 이 문서에서는 모델에 데이터 매핑과 같은 개념을 이해하기 쉽게 설명하는 ML Workbench를 사용합니다.
  • 실험 기능을 사용하면 모델을 분산 환경에서 학습시키고 평가할 수 있습니다.

AI Platform은 TensorFlow 그래프를 실행할 수 있는 관리형 서비스입니다. 이 서비스는 다음과 같은 머신러닝 작업을 간소화합니다.

  • 최소한의 DevOps로 분산 환경에서 모델 학습
  • 다른 GCP 제품과 통합
  • 초매개변수를 미세 조정하여 모델 학습 개선
  • 모델을 RESTful API로 배포하여 대규모 예측 지원

ML Workbench는 내부적으로 Estimator API를 사용하지만 구조화된 데이터 예측 문제 처리 시 상용구 코드의 상당 부분을 간소화합니다. Estimator API는 특성 교차, 정확성 개선을 위한 이산화, 커스텀 모델 생성 기능과 같은 몇 가지 흥미로운 옵션을 추가합니다. 하지만 현재의 사용 사례에서는 특성 추출이 거의 필요 없는 회귀자와 분류자만 필요합니다. 이 접근법은 분산된 학습을 지원하고, 일괄 처리로 데이터를 읽고, AI Platform을 사용하여 필요에 따라 확장하는 ML Workbench 기능과 잘 맞습니다.

TensorFlow 및 코딩에 대해 알아보고자 하는 정도에 따라 ML Workbench 또는 TensorFlow Estimator API 중에서 선택할 수 있습니다. 서버리스 환경에서 ML 모델을 호출하는 방법을 배우는 것이 주요 목표이기 때문에 이 시리즈 나머지 부분에서는 ML Workbench을 중점적으로 살펴봅니다. 이 시리즈에서는 TensorFlow 및 AI Platform에 대한 추가 정보도 제공합니다.

헬프데스크 플랫폼과의 동기화

두 시스템 간의 동기화는 양방향으로 진행됩니다.

발신
고객이 티켓을 열거나 업데이트할 때 Cloud Functions가 Firebase 쓰기를 트리거합니다. 또한 Cloud Functions는 RESTful API를 호출하여 타사 헬프데스크 플랫폼을 업데이트합니다.
수신
상담사가 헬프데스크 플랫폼을 사용하여 티켓을 업데이트하면 플랫폼이 자체 이벤트를 트리거하고, Firebase와 클라이언트 UI를 실시간으로 업데이트하는 Cloud Functions HTTP 핸들러를 호출합니다.

아키텍처

아키텍처의 흐름은 다음과 같습니다.

  1. 사용자가 Firebase에 티켓을 작성하면 Cloud Function이 트리거됩니다.
  2. Cloud 함수가 다음과 같은 3가지 엔드포인트를 호출하여 티켓을 보강합니다.

    • 함수가 우선순위를 예측할 수 있는 AI Platform 엔드포인트
    • 함수가 해결 시간을 예측할 수 있는 AI Platform 엔드포인트
    • 감정 분석 및 단어 추출을 수행하는 Natural Language API
  3. Cloud Function은 매 응답 시 Firebase 실시간 데이터베이스를 업데이트합니다.

  4. 그런 다음 Cloud Function은 RESTful API를 사용하여 헬프데스크 플랫폼에 티켓을 만듭니다.

이 아키텍처를 다이어그램으로 나타내면 다음과 같습니다.

서버리스 아키텍처

다음 단계

  • AI Platform 모델 빌딩에 대한 자세한 내용은 이 솔루션의 2부를 살펴봅니다.
  • 회귀분류 메모장을 포함한 가이드를 따라 이 문서 솔루션의 예시를 직접 실행합니다.
  • TensorFlow의 Estimator API에 대해 자세히 알아봅니다.
  • GCP 학습 트랙 데이터 및 머신러닝을 실시합니다.
  • 헬프데스크 봇을 빌드하는 데 관심이 있다면 엔터프라이즈용 DialogFlow를 살펴봅니다.
  • 커스텀 분류처럼 맞춤설정 가능한 텍스트 기반 작업을 더 보려면 word2vec를 참조하여 단어를 삽입하는 방법을 알아봅니다.
  • Google Cloud에 대한 참조 아키텍처, 다이어그램, 가이드, 권장사항 살펴보기. Cloud 아키텍처 센터 살펴보기