BLOG
사용자 생성 콘텐츠(UGC)의 급격한 증가와 함께 온라인 커뮤니티를 건전하게 유지하기 위한 비용 또한 기하급수적으로 증가했습니다. 최근 웹이나 모바일 플랫폼은 신생 기업에서 대기업에 이르기까지 SNS를 통해 비즈니스를 활성화하고 사용자의 참여를 유도하고 있습니다. 온라인 커뮤니티의 구성원은 이미지, 비디오, 텍스트 및 오디오를 자유롭게 즐길 수 있는 포괄적인 경험을 기대하죠. 그러나 지속적으로 증가하는 UGC의 양, 다양성 및 복잡성으로 인해 기존에 사람이 직접 콘텐츠를 모더레이션하는 방식으로는 사용자를 보호하기가 어려워졌습니다. 이러한 제한으로 인해 고객은 혹시 모를 위험을 막기 위해 비효율적이고 비용도 많이 드는 사후 대응 프로세스를 수행해야 했습니다. 그 결과 사용자의 참여는 줄어들고 커뮤니티에 부정적인 영향을 미치는 커뮤니티 경험이 발생하게 되었죠.
오늘 소개해드릴 솔루션은 인공 지능(AI), 기계 학습(ML), 딥 러닝(DL) 및 자연어 처리(NLP) 기술을 기반으로 하는 확장 가능한 콘텐츠 모더레이션 워크플로인데요, 번역, 전사, 인식, 감지, 마스킹, 수정 등의 요소를 포함하며 전략적인 인력 투입으로 정확성과 프로세스의 효율성은 높이되 운영 비용은 낮추면서 사용자를 안전하게 유지하고 참여를 유지하는 데 필요한 작업을 실행합니다.
오늘 포스팅에서는 AWS AI 서비스를 사용하여 콘텐츠 조정 워크플로를 구축하는 방법을 알아보고자 합니다. 소셜 미디어, 게임, 전자 상거래 및 광고 산업 등에서의 자동화된 콘텐츠 모더레이션에 대한 비즈니스 요구 사항, 영향 및 비용 절감에 대해 자세히 알아보려면 AWS AI 서비스를 활용하여 콘텐츠 조정 및 규정 준수 자동화를 참조해보세요.
솔루션 개요
워크플로를 구현하기 위해 ML에 대한 전문 지식이 필요하지는 않으며 패턴을 특정 비즈니스 요구에 맞게 조정할 수도 있습니다. AWS는 데이터 사이언스 팀이 필요없는 복잡하고 획일화된 작업을 제거한 완전 관리형 서비스를 통해 이러한 기능을 제공하고 있습니다. 오늘 살펴보고자 하는 것은 고객이 텍스트, 오디오, 이미지, 비디오 및 PDF 파일 등을 사용하여 제품에 대해 논의하고 검토하는 공간을 효율적으로 조정하는 방법입니다. 아래 다이어그램은 솔루션 아키텍처를 보여줍니다.
전제 조건
기본적으로 이러한 패턴은 사용한 만큼만 비용을 지불하는 서버리스 방법론을 보여줍니다. AWS Fargate 컨테이너와 같은 컴퓨팅 리소스와 Amazon Simple Storage Service (Amazon S3)와 같은 스토리지에 대해서는 해당 리소스를 삭제할 때까지 계속해서 비용을 지불합니다. 논의된 AWS AI 서비스도 작업당 소비 요금 모델을 따릅니다. 비프로덕션 환경은 계정의 적격성을 가정하여 FREE 티어 내에서 이러한 각 패턴을 테스트할 수 있습니다.
일반 텍스트 모더레이션
먼저 일반 텍스트에 대한 콘텐츠 모더레이션을 구현해 볼텐데요, 이 절차는 보다 정교한 미디어 유형의 기초 역할을 하며 두 가지의 고급 단계를 수반합니다.
- 문장 번역
- 텍스트 분석
글로벌 고객은 모국어로 소셜 플랫폼과 협업하기를 원합니다. 디자인 팀이 각 언어에 대한 워크플로 또는 단계를 구성해야 하기 때문에 이러한 기대치를 충족하면 복잡성이 추가될 수 있습니다. 대신 Amazon Translate를 사용하여 15개 이상의 지역에서 70개 이상의 언어로 텍스트를 변환할 수 있죠. 이 기능을 사용하면 단일 언어에 대한 분석 규칙을 작성하고 해당 규칙을 글로벌 온라인 커뮤니티에 적용할 수 있습니다.
Amazon Translate는 빠르고 경제적이며 사용자 지정이 가능한 언어 번역을 제공하는 인공 신경망 기계 번역 서비스입니다. 이를 워크플로에 통합하여 지배적인 언어를 감지하고 텍스트를 번역할 수 있는데요, 다음 다이어그램은 워크플로를 보여줍니다.
API는 다음과 같이 작동합니다.
- DetectDominantLanguage API는 입력 텍스트의 주요 언어를 결정합니다. Amazon Comprehend가 감지할 수 있는 언어 목록은 Dominant language에서 확인할 수 있습니다.
- TranslateText API 는 선택적 욕설 마스킹을 사용하여 입력 텍스트를 소스 언어에서 대상 언어로 번역합니다 . 사용 가능한 언어 및 언어 코드 목록은 지원되는 언어 및 언어 코드에서 확인할 수 있습니다.
- StartExecution 및 StartSyncExecution API는 AWS Step Functions 상태 머신을 시작합니다.
다음으로 NLP를 사용하여 핵심 문구 발견, 감정 분석, 개인 식별 정보(PII) 감지와 같은 텍스트의 연결을 찾을 수 있습니다. Amazon Comprehend API는 이러한 인사이트를 바탕으로 사용자 지정 함수 핸들러에 전달합니다.
AWS Lambda 함수 내에서 이러한 핸들러를 실행하면 서버나 클러스터에 대해 생각하지 않고 코드를 탄력적으로 확장할 수 있습니다. 또는 마이크로서비스 아키텍처 패턴을 사용하여 Amazon Comprehend에서 인사이트를 처리할 수 있습니다 . 런타임과 관계없이 코드는 텍스트 구문 분석이 아니라 결과 사용에 중점을 둡니다.
다음 다이어그램은 해당 워크플로를 보여줍니다.
Lambda 함수는 다음 API와 상호 작용합니다.
- DetectEntities API 는 텍스트에서 사람 및 장소와 같은 실제 개체의 이름을 검색하고 그룹화합니다. 사용자 지정 어휘를 사용하여 부적절하고 비즈니스 관련 엔터티 유형을 수정할 수 있습니다.
- DetectSentiment API 는 텍스트의 전반적인 감정을 긍정적, 부정적 또는 중립적으로 식별합니다. 산업별 관심 상황을 인식하고 텍스트의 개념적 의미를 추출하도록 사용자 정의 분류를 훈련할 수 있습니다.
- DetectPIIEntities API 는 주소, 은행 계좌 번호 또는 전화 번호와 같은 텍스트에서 PII를 식별합니다. 출력에는 PII 엔터티의 유형과 해당 위치가 포함됩니다.
오디오 파일 모더레이션
오디오 파일의 모더레이션을 위해서는 파일을 텍스트로 변환한 다음 분석해야 합니다. 이 프로세스에는 개별 파일(동기식)을 처리하는지 아니면 라이브 오디오 스트림(비동기식)을 처리하는지에 따라 두 가지 변형이 있습니다. 동기식 워크플로는 호출자가 하나의 완전한 응답을 받는 일괄 처리에 이상적인 반면, 오디오 스트림은 여러 필사본 결과로 주기적인 샘플링이 필요합니다.
Amazon Transcribe는 ML 모델을 사용하여 오디오를 텍스트로 변환하는 자동 음성 인식 서비스입니다. 트랜스크립션 작업을 시작하고 주기적으로 작업 상태를 쿼리하여 동기식 워크플로에 통합할 수 있습니다 . 작업이 완료되면 이전 단계의 일반 텍스트 조정 워크플로를 사용하여 출력을 분석할 수 있습니다.
다음 다이어그램은 해당 워크플로를 보여줍니다.
API는 다음과 같이 작동합니다.
- StartTranscriptionJob API 는 음성을 텍스트로 변환하는 비동기 작업을 시작합니다.
- GetTranscriptionJob API 는 전사 작업에 대한 정보를 반환합니다. 작업 상태를 보려면
TranscriptionJobStatus
필드를 확인하십시오. status 속성이COMPLETED
인 경우TranscriptFileUri
필드의 지정된 위치에서 결과를 찾을 수 있습니다 . 콘텐츠 수정을 활성화하면 수정된 스크립트가RedactedTranscriptFileUri
에 나타납니다.
라이브 오디오 스트림에는 실시간 전달 모델을 지원하는 다른 패턴이 필요한데요, 스트리밍에는 영화, 음악 및 팟캐스트와 같은 미리 녹음된 미디어와 라이브 뉴스 방송과 같은 실시간 미디어가 포함될 수 있습니다. HTTP/2 및 WebSockets 프로토콜을 통한 Amazon Transcribe 스트리밍을 사용하여 오디오 청크를 즉시 변환할 수 있습니다 . 서비스에 청크를 게시한 후 부분 및 전체 트랜스크립션 세그먼트를 설명하는 하나 이상의 트랜스크립션 결과 개체를 받습니다. 조정이 필요한 세그먼트는 이전 섹션의 일반 텍스트 워크플로를 재사용할 수 있습니다. 다음 다이어그램은 해당 프로세스를 보여줍니다.
StartStreamingTranscription API 는 오디오가 Amazon Transcribe로 스트리밍되는 양방향 HTTP/2 스트림을 시작하여 트랜스크립션 결과를 애플리케이션으로 스트리밍합니다.
이미지와 사진 모더레이션
이미지 모더레이션을 위해서는 이미지나 사진 콘텐츠에서 과도한 노출, 외설, 폭력 및 기타 범주가 포함된 부적절하거나 불쾌감을 주는 콘텐츠를 감지해야 합니다.
Amazon Rekognition을 사용하면 ML 전문 지식 없이도 이미지 및 비디오 모더레이션 워크플로를 간소화하거나 자동화할 수 있습니다. Amazon Rekognition은 모더레이션 관련 레이블의 계층적 분류를 반환합니다. 이 정보를 통해 표준 및 관행, 사용자 안전 및 규정 준수 지침에 따라 세분화된 비즈니스 규칙을 쉽게 정의할 수 있습니다. 이러한 기능을 사용하는 데 ML 경험이 필요하지는 않습니다. Amazon Rekognition은 이미지의 텍스트를 감지하고 찾은 각 단어에 대해 경계 상자를 반환할 수 있습니다. Amazon Rekognition은 영어, 아랍어, 러시아어, 독일어, 프랑스어, 이탈리아어, 포르투갈어 및 스페인어로 작를성된 텍스트 감지 지원합니다.
기계 예측을 사용하여 특정 모더레이션 작업을 완전히 자동화할 수 있는데요, 이 기능을 통해 모더레이터는 상위 작업에 집중할 수 있게 됩니다. 또한 Amazon Rekognition은 ML을 사용하여 수백만 개의 이미지 또는 수천 개의 비디오를 빠르게 검토하고 추가 조치가 필요한 자산의 하위 집합에 플래그를 지정할 수 있습니다. 사전 필터링은 사람이 직접 모더레이션하는 콘텐츠의 양을 줄이는 동시에 포괄적이면서도 비용 효율적인 모더레이션 범위를 제공하는 데 도움이 됩니다.
다음 다이어그램은 해당 워크플로를 보여줍니다.
API는 다음과 같이 작동합니다.
- DetectModerationLabels API 는 지정된 JPEG 또는 PNG 형식 이미지에서 안전하지 않은 콘텐츠를 감지합니다. DetectModerationLabels를 사용하여 요구 사항에 따라 사진을 조정하세요. 예를 들어 과도한 노출이 포함된 이미지는 필터링하지만 선정적인 콘텐츠가 포함된 이미지는 필터링하지 않을 수 있습니다.
- DetectText API 는 입력 이미지에서 텍스트를 감지하고 이를 기계가 읽을 수 있는 텍스트로 변환합니다.
서식 있는 텍스트 문서 모더레이션
다음으로 Amazon Textract를 사용하여 스캔한 문서에서 손으로 쓴 텍스트와 데이터를 추출할 수 있습니다. 이 프로세스는 StartDocumentAnalysis 작업을 호출하여 Microsoft Word 및 Adobe PDF 파일을 구문 분석하는 것으로 시작됩니다. GetDocumentAnalysis 작업으로 작업 진행 상황을 모니터링할 수 있습니다 .
분석 결과는 문서에서 발견되지 않은 각 페이지, 단락, 표 및 키-값 쌍을 지정합니다. 예를 들어, 의료 제공자가 청구 설명 필드에서만 환자 이름을 마스킹해야 한다고 가정할 경우, 분석 보고서는 특정 데이터 필드를 조정하고 수정하는 지능형 문서 처리 파이프라인을 강화할 수 있습니다. 다음 다이어그램은 해당 파이프라인을 보여줍니다.
API는 다음과 같이 작동합니다.
- StartDocumentAnalysis API는 키-값 쌍, 테이블 및 선택 요소와 같은 감지된 항목 간의 관계에 대한 입력 문서의 비동기 분석을 시작합니다 .
- GetDocumentAnalysis API는 문서의 텍스트를 분석하는 Amazon Textract 비동기 작업에 대한 결과를 가져옵니다 .
비디오 모더레이션
비디오 콘텐츠 모더레이션에 대한 표준 접근 방식은 프레임 샘플링 절차를 사용하는 것입니다. 많은 사용 사례에서 모든 프레임을 확인할 필요는 없으며 15-30초마다 하나씩 선택하면 충분합니다. 샘플링된 비디오 프레임은 상태 머신을 재사용하여 이전 섹션의 이미지를 조정할 수 있습니다. 이와 유사하게 오디오를 조정하는 기존 프로세스는 파일의 가청 콘텐츠를 지원할 수 있습니다. 다음 다이어그램은 이 워크플로를 보여줍니다.
Invoke API는 Lambda 함수를 실행하고 동기식으로 응답을 기다립니다.
미디어 파일이 여러 장면이 있는 전체 영화라고 가정할 경우, 기술 신호 또는 샷을 감지하기 위한 복합 API인 Amazon Rekognition Segment API를 사용할 수 있습니다 . 다음으로 다음 다이어그램과 같이 이러한 시간 오프셋을 사용하여 이전 비디오 조정 패턴으로 각 세그먼트를 병렬 처리할 수 있습니다.
API는 다음과 같이 작동합니다.
- StartSegmentationDetection API는 저장된 비디오에서 세그먼트 감지의 비동기 감지를 시작합니다.
- GetSegmentationDetection API는 StartSegmentDetection API에서 시작한 Amazon Rekognition Video 분석의 세그먼트 감지 결과를 가져옵니다.
영화에서 개별 프레임을 추출하기 위해 Amazon S3에서 객체를 여러 번 가져올 필요가 없습니다. 단순한 솔루션에는 비디오를 메모리로 읽고 끝까지 페이지를 매기는 것이 포함되는데요, 이 패턴은 클립이 짧고, 시간 여유가 있을 경우에 이상적입니다.
또 다른 전략에는 Lambda와 같은 다른 AWS 서비스를 위한 확장 가능한 완전 관리형 공유 파일 시스템인 Amazon Elastic File System (Amazon EFS)으로 파일을 한 번에 이동하는 것이 포함됩니다. Lambda용 Amazon EFS를 사용하면 함수 호출 간에 데이터를 효율적으로 배포할 수 있습니다. 각 호출은 작은 청크를 효율적으로 처리하여 대규모 병렬 처리 및 더 빠른 처리 시간의 가능성을 열어줍니다.
정리
오늘 포스팅에서 소개드린 방법을 실제로 해 보신 후에는 향후 비용 발생을 방지하기 위해 S3 버킷의 모든 콘텐츠를 삭제해야 합니다. Amazon Elastic Compute Cloud (Amazon EC2) 또는 Amazon Elastic Container Service (Amazon ECS)와 같은 프로비저닝된 컴퓨팅 리소스로 이러한 패턴을 구현한 경우 추가 요금이 부과되지 않도록 해당 인스턴스를 중지해야 합니다.
결론
사용자 생성 콘텐츠와 게임, 소셜 미디어, 전자 상거래, 금융 및 의료 서비스 조직은 계속해서 성장할 것입니다. 그러나 신생 기업과 대기업은 운영 비용을 낮추면서 사용자, 정보 및 비즈니스를 보호하기 위해 효율적인 중재 프로세스를 만들어야 합니다. 이 솔루션은 AI, ML 및 NLP 기술이 대규모 콘텐츠를 효율적으로 조정하는 데 어떻게 도움이 되는지 보여줍니다. AWS AI 서비스를 사용자의 특정한 모더레이션 요구 사항을 해결할 수 있습니다. 이러한 완전 관리형 기능은 운영 복잡성을 제거하며, 상황에 따른 유연함으로 모더레이션 프로세스에 전략적으로 인력을 투입하는 데 유용합니다.
메가존클라우드 TechBlog는 AWS BLOG 영문 게재 글이나 관련 기사 중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아 정기적으로 게재하고 있습니다. 추가로 번역 및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS 페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.