이미지 및 자연어 처리를 사용하여 실시간에 가까운 분석으로 뉴스 피드 분석

Azure Cosmos DB
Azure 기능
Azure Service Bus
Azure Translator Text
Azure Face

이 예제 시나리오는 공용 RSS 뉴스 피드에서 오는 문서의 대량 수집 및 근 실시간 분석을 위한 파이프라인을 설명합니다. Azure Cognitive Services를 사용하여 텍스트 번역, 얼굴 인식 및 감정 탐지를 기반으로 유용한 정보를 제공합니다. 특히 이미지 및 자연어 처리 단계는 Azure Service Bus를 기반으로 하는 메시징 파이프라인에서 함께 연결됩니다. 파이프라인의 출력은 인사이트 또는 분석이 포함된 알림입니다.

아키텍처

아키텍처 다이어그램: 이미지 및 텍스트 처리를 사용하여 RSS 피드를 수집 및 분석하고 알림을 보냅니다.이 아키텍처의 Visio 파일을 다운로드합니다.

데이터 흐름

솔루션을 통한 데이터 흐름은 다음과 같습니다.

  1. RSS 뉴스 피드는 문서에서 데이터를 가져오는 생성기 역할을 합니다. 예를 들어, 문서의 경우 데이터에는 일반적으로 제목, 뉴스 항목의 원본 본문 요약, 때로는 이미지가 포함됩니다.

  2. 생성기 또는 수집 프로세스는 문서 및 관련 이미지를 Azure Cosmos DB 컬렉션에 삽입합니다.

  3. 알림은 Azure Cosmos DB에 문서 텍스트를 저장하고 Azure Blob Storage에 문서 이미지(있는 경우)를 저장하는 Azure Functions의 수집 기능을 트리거합니다. 그런 다음 문서는 다음 큐로 전달됩니다.

  4. 번역 기능은 큐 이벤트에 의해 트리거됩니다. Azure Cognitive Services의 Translate Text API를 사용하여 언어를 검색하고, 필요한 경우 번역하고, 본문과 제목에서 감정, 핵심 구 및 엔터티를 수집합니다. 그런 다음 문서를 다음 큐로 전달합니다.

  5. 대기 중인 문서에서 검색 기능이 트리거됩니다. Computer Vision 서비스를 사용하여 연결된 이미지에서 개체, 랜드마크 및 쓰여진 단어를 검색한 다음 문서를 다음 큐로 전달합니다.

  6. 대기 중인 문서에서 얼굴 기능이 트리거됩니다. Azure Face API 서비스를 사용하여 연결된 이미지에서 성별과 나이에 대한 얼굴을 검색한 다음 문서를 다음 큐로 전달합니다.

  7. 모든 기능이 완료되면 알림 기능이 트리거됩니다. 문서에 대해 처리된 레코드를 로드하고 원하는 결과를 찾기 위해 검사합니다. 발견되면 콘텐츠에 플래그가 지정되고 선택한 시스템으로 알림이 전송됩니다.

각 처리 단계에서 함수는 결과를 Azure Cosmos DB에 씁니다. 궁극적으로 데이터는 원하는 대로 사용할 수 있습니다. 예를 들어, 이를 사용하여 업무 프로세스를 개선하거나, 새로운 고객을 찾거나, 고객 만족 문제를 식별할 수 있습니다.

구성 요소

이 예제에서는 다음 Azure 구성 요소 목록을 사용합니다.

  • Azure Storage는 문서와 연결된 원시 이미지 및 동영상 파일을 보관하는 데 사용됩니다. 보조 스토리지 계정은 Azure App Service로 만들어지며 Azure Function 코드 및 로그를 호스팅하는 데 사용됩니다.

  • Azure Cosmos DB는 문서 텍스트, 이미지 및 동영상 추적 정보를 보유합니다. Cognitive Services 단계의 결과도 여기에 저장됩니다.

  • Azure Functions는 큐 메시지에 응답하고 수신 콘텐츠를 변환하는 데 사용되는 함수 코드를 실행합니다. Azure App Service는 함수 코드를 호스팅하고 레코드를 순차적으로 처리합니다. 이 시나리오에는 수집, 변환, 개체 검색, 얼굴 및 알림의 5가지 기능이 포함되어 있습니다.

  • Azure Service Bus는 함수에서 사용하는 Azure Service Bus 큐를 호스팅합니다.

  • Azure Cognitive ServicesComputer Vision 서비스, Face APITranslate Text 기계 번역 서비스를 기반으로 파이프라인에 AI를 제공합니다.

  • Azure Application Insights는 문제를 진단하고 애플리케이션의 기능을 이해할 수 있도록 하는 분석을 제공합니다.

대안

  • 큐 알림 및 Azure Functions 기반 패턴을 사용하는 대신 이 데이터 흐름에 항목 및 구독 패턴을 사용할 수 있습니다. Azure Service Bus 토픽은 이 예에서 수행되는 직렬 처리와 반대로 문서의 다양한 부분을 병렬로 처리하는 데 사용할 수 있습니다. 자세한 내용은 큐 및 토픽 비교를 참조하세요.

  • Azure Logic Apps를 사용하여 함수 코드를 구현하고 Redlock 알고리즘(Azure Cosmos DB가 부분 문서 업데이트를 지원할 때까지 병렬 처리에 필요)에서 제공하는 것과 같은 레코드 수준 잠금을 구현합니다. 자세한 내용은 Functions와 Logic Apps 비교를 참조하세요.

  • 기존 Azure 서비스가 아닌 사용자 지정된 AI 구성 요소를 사용하여 이 아키텍처를 구현합니다. 예를 들어, 이 예에서 수집된 일반적인 사람 수, 성별 및 연령 데이터와 달리 이미지에서 특정 사람을 검색하는 사용자 지정 모델을 사용하여 파이프라인을 확장합니다. 이 아키텍처에서 사용자 지정된 기계 학습 또는 AI 모델을 사용하려면 모델을 RESTful 엔드포인트로 빌드하여 Azure Functions에서 호출할 수 있도록 합니다.

  • RSS 피드 대신 다른 입력 메커니즘을 사용합니다. 여러 생성기 또는 수집 프로세스를 사용하여 Azure Cosmos DB 및 Azure Storage를 제공합니다.

  • Azure Cognitive Search는 이미지, Blob 및 기타 비정형 데이터 원본에서 텍스트를 추출하는 데도 사용할 수 있는 Azure Search의 AI 기능입니다.

시나리오 정보

이 시나리오에는 영어, 러시아어독일어 뉴스 피드에 대한 예가 포함되어 있지만 다른 RSS 피드 및 기타 언어로 쉽게 확장할 수 있습니다. 간편한 배포를 위해 데이터 컬렉션, 처리 및 분석은 전적으로 Azure 서비스를 기반으로 합니다.

잠재적인 사용 사례

이 시나리오는 RSS 피드 처리를 기반으로 하지만 다음을 수행해야 하는 모든 문서, 웹 사이트 또는 문서와 관련이 있습니다.

  • 텍스트를 선택한 언어로 번역합니다.
  • 디지털 콘텐츠에서 핵심 구, 엔터티 및 사용자 감정을 찾습니다.
  • 디지털 문서와 관련된 이미지에서 개체, 텍스트 및 랜드마크를 검색합니다.
  • 디지털 콘텐츠와 관련된 이미지에서 성별 및 연령별로 사람을 검색합니다.

고려 사항

이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일단의 지침 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.

단순화를 위해 이 예제 시나리오에서는 Azure Cognitive Services에서 사용 가능한 API 및 서비스 중 일부만 사용합니다. 예를 들어, 이미지의 텍스트는 Text Analytics API를 사용하여 분석할 수 있습니다. 이 시나리오에서 대상 언어는 영어로 가정되지만 입력을 지원되는 언어로 변경할 수 있습니다.

확장성

Azure Functions 크기 조정은 사용하는 호스팅 계획에 따라 다릅니다. 이 솔루션은 필요할 때 컴퓨팅 성능이 함수에 자동으로 할당되는 사용량 계획을 가정합니다. 함수가 실행 중일 때만 비용을 지불합니다. 또 다른 옵션은 전용 요금제를 사용하는 것입니다. 이 요금제를 사용하면 계층 간에 확장하여 다른 양의 리소스를 할당할 수 있습니다.

Azure Cosmos DB에서 핵심은 충분히 많은 수의 파티션 키에 워크로드를 대략적으로 균등하게 분배하는 것입니다. 컨테이너가 저장할 수 있는 총 데이터 양 또는 컨테이너가 지원할 수 있는 총 처리량에는 제한이 없습니다.

관리 및 로깅

이 솔루션은 Application Insights를 사용하여 성능 및 로깅 정보를 수집합니다. Application Insights의 인스턴스는 이 배포에 필요한 다른 서비스와 동일한 리소스 그룹의 배포로 만들어집니다.

솔루션에서 생성된 로그를 보려면 다음을 수행합니다.

  1. Azure Portal로 이동하여 배포용으로 만들어진 리소스 그룹으로 이동합니다.

  2. Application Insights 인스턴스를 선택합니다.

  3. Application Insights 섹션에서 Investigate\Search로 이동하여 데이터를 검색합니다.

보안

우수한 보안은 중요한 데이터 및 시스템에 대한 고의적인 공격과 악용을 방어합니다. 자세한 내용은 보안 요소의 개요를 참조하세요.

Azure Cosmos DB는 Microsoft에서 제공하는 C# SDK를 통해 보안 연결 및 공유 액세스 서명을 사용합니다. 외부를 향하는 다른 표면적은 없습니다. Azure Cosmos DB의 보안 모범 사례에 대해 자세히 알아봅니다.

비용 최적화

비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 방법을 찾는 것입니다. 자세한 내용은 비용 최적화 핵심 요소 개요를 참조하세요.

Azure Cosmos DB는 강력하지만 이 배포에서 가장 큰 비용이 발생합니다. 제공된 Azure Functions 코드를 리팩터링하여 다른 스토리지 솔루션을 사용할 수 있습니다.

Azure Functions의 가격은 실행되는 요금제에 따라 다릅니다.

시나리오 배포

참고

기존 Azure 계정이 있어야 합니다. Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.

이 시나리오의 모든 코드는 GitHub 리포지토리에서 사용할 수 있습니다. 이 리포지토리에는 이 데모의 파이프라인을 제공하는 생성기 애플리케이션을 빌드하는 데 사용되는 소스 코드가 포함되어 있습니다.

다음 단계

추가 분석 아키텍처: