이 사이트의 콘텐츠는 인공지능(AI) 또는 기계 번역 기술을 사용하여 번역되었으며 오류가 있을 수 있습니다.

Skip to content

셀카를 넘어: 로블록스의 연령 확인 시스템이 연령 검증을 최신 상태로 유지하는 방법

안전을 최우선으로 하는 모듈형, 다중 모달 행동 머신러닝 시스템

Roblox의 얼굴 연령 추정 시스템은 Roblox 사용자가 플랫폼에서 연령에 적합한 채팅 기능을 이용하고 연령에 맞는 게임에 접속할 수 있도록 돕기 위해 3억 3,800만 건의 연령 확인 기록을 처리했습니다. 초기 연령 확인은 필수적이지만, 연령 검증은 셀카 촬영으로 끝나지 않습니다. 계정이 공유되거나 어린 동생에게 넘겨질 수도 있기 때문입니다. 악의적인 사용자들은 우리의 방어 체계를 뚫으려 시도할 수 있습니다. 연령 보증을 특정 시점의 신호에 그치지 않도록 하기 위해, 우리는 계정의 지속적인 행동이 시간이 지남에 따라 추정 연령과 여전히 일치하는지 평가하는 고처리량 ML 레이어를 구축했습니다. 우리의 특징 수준 모듈식 설계는 효율적인 모델 업데이트와 변화하는 행동 패턴에 대한 신속한 적응을 가능하게 합니다. 

종단 간 연령 확인 워크플로우를 안정적으로 운영하는 것은 머신러닝 과제인 동시에 분산 시스템의 과제이기도 합니다. 연령 추정 자체는 어려운 머신러닝 문제입니다. 연령 경계는 행동의 급격한 단절점이 아니기 때문입니다. 부모는 자녀와 동일한 경험을 즐길 수 있으며, 언어는 연령뿐만 아니라 문화, 맥락, 커뮤니티에 따라 달라집니다. 시간이 지남에 따라, 그리고 악의적인 압력 하에서 변화하는 미묘한 행동 패턴을 단일 행동 신호만으로 신뢰성 있게 포착할 수는 없습니다. 가장 신뢰할 수 있는 정답 라벨조차도 선별된 집단에서 비롯된 것이며 편향을 내포할 수 있습니다.

Roblox 규모의 환경에서 시스템을 운영하는 것은 복잡성을 한층 더 가중시킵니다. 매일 진행되는 추론 주기마다, 우리는 플랫폼 전반에서 행동 신호를 수집하고, 각 워크로드에 가장 적합한 컴퓨팅 스택에서 서브모델을 실행한 뒤, 그 결과를 하나의 보정된 추정치로 통합합니다. 저희 모델은 전통적인 머신러닝 분류기부터 3억 개 이상의 매개변수를 가진 다국어 트랜스포머에 이르기까지 다양합니다. 이 시스템은 매일 20억 건에 가까운 계정 수준 기록을 처리하며, 모델 훈련에는 3,000만 건에 가까운 신뢰도가 높은 연령 라벨이 활용됩니다.

전체 시스템을 사내에서 구축함으로써, 핵심 설계 요구 사항인 개인정보 보호 측면에서 모든 기능과 신호를 검토하는 데 필요한 투명성과 통제력을 확보할 수 있습니다. 또한, 시간이 지남에 따라 계정이 어떻게 사용되는지를 포착하는 로블록스 고유의 신호를 활용할 수 있는데, 이는 독립적인 외부 추정기만으로는 얻을 수 없는 종단적 맥락 정보입니다. 이를 통해 전체 머신러닝 라이프사이클을 통제할 수 있습니다. 새로운 모달리티가 등장하면 이를 결합할 수 있으며, 행동 변화에 따라 개별 구성 요소를 모니터링, 제한 및 업데이트하면서 로블록스 안전 워크플로우에 맞춰 출력을 보정할 수 있습니다.

연령 예측을 위한 적절한 신호 선택

연령대마다 플레이, 소통, 플랫폼 상호작용 패턴에서 로블록스를 이용하는 방식이 다릅니다. 이러한 행동의 다양성을 포착하기 위해, 입력 데이터를 다음과 같은 별개의 신호 군으로 분류합니다:

  • 사회적 맥락: 사용자가 누구와 연결되어 있는지, 얼마나 자주 상호작용하는지 등 사용자의 사회적 관계망 내 패턴을 종합적으로 분석합니다.
  • 경험 참여도: 사용자가 어떤 게임을 플레이하는지 그 이상의 집계된 패턴으로, 플레이 시간, 체류 시간, 그리고 시간 경과에 따른 참여도 변화를 포착합니다.
  • 계정 및 플랫폼 활동: 계정 보유 기간, 활동 빈도, 세션 수준 행동 등 플랫폼 사용 및 라이프사이클 신호를 종합한 것입니다.
  • 의사소통 패턴: 맥락과 시간에 따라 의사소통 패턴이 어떻게 달라지는지를 포함하여, 연령과 관련된 언어 사용에 대한 모델 기반 요약 정보입니다.
  • 학습된 사용자 표현: 더 광범위한 사용 패턴을 포착하는 고수준 표현입니다. 당사는 디스커버리 및 개인화 ML 팀과 긴밀히 협력하고 있으며, 사용자가 다음에 어떤 콘텐츠에 참여할지 예측하는 것과 동일한 풍부한 표현을 추가 훈련하여 광범위한 연령대를 예측할 수 있도록 할 수 있습니다.

각 신호 군에는 해당 데이터의 특성에 맞는 모델이 적용됩니다. 스파스하고 고차원적인 집계 신호는 그라디언트 부스팅 결정 트리(예: XGBoost 분류기)로 처리되며, 텍스트는 미세 조정된 다국어 트랜스포머 인코더(mmBERT)로 처리되고, 사용자 표현은 소형 신경망(다층 퍼셉트론)에 입력됩니다. 

각 하위 모델은 동일한 목표, 즉 일련의 연령대 집합에 대한 확률 분포를 예측합니다. 그런 다음 그라디언트 부스팅 메타 학습기가 이러한 확률 벡터들을 결합하여 최종 보정된 추정치를 도출합니다. 

우리는 모듈성, 처리 속도, 설명 가능성을 위해 단일한 특징 수준 모델 대신 의도적으로 이 의사결정 수준 융합 접근 방식을 선택했습니다. 시스템을 모듈화함으로써 전체 시스템을 재구축하지 않고도 하위 모델을 추가, 재훈련 또는 폐기할 수 있습니다. 또한 자연스러운 진화나 적대적 압력으로 인해 행동 패턴이 변화할 때 더 신속하게 대응할 수 있습니다. 융합 계층은 각 하위 모델의 최신 승격된 출력을 읽어, 이용 가능한 최상의 신호를 활용할 수 있으며, 특정 신호가 없거나 지연될 경우 원활하게 성능을 조정합니다. 각 모달리티가 별개의 입력으로 들어오기 때문에, 어떤 신호 군이 의사결정 변화를 주도하는지 추적할 수 있으며, 출력이 하류 단계로 전달되기 전에 보정 및 품질 게이트를 적용할 수 있습니다.

안전 시스템에서는 순수한 정확도보다 예측 가능성이 더 중요하기 때문에, 융합 계층에서 보정을 강제 적용합니다. 모델을 보정하여 신뢰할 수 있는 신뢰도 점수를 얻을 수 있도록 합니다. 이를 통해 하류 단계의 조치가 사용자에게 큰 영향을 미칠 경우, 결과를 도출하기 전에 더 강력한 증거와 더 높은 신뢰도를 요구할 수 있습니다.

라벨의 선택 편향

가장 신뢰도가 높은 라벨은 엄격한 연령 확인 절차를 완료한 사용자로부터 얻어집니다. 이러한 라벨은 유용하지만, 로블록스 사용자 전체를 무작위로 표본 추출한 것은 아닙니다. 사용자 접근 권한에 영향을 미칠 수 있는 시스템의 경우, 대표성은 훈련 목표의 핵심 요소입니다. 

라벨이 부여된 집단은 대상 집단이 아닙니다. 더 엄격한 연령 확인 절차를 완료한 사용자들은 일반 사용자 집단과 체계적으로 차이가 있습니다. 해당 그룹을 대상으로 훈련된 단순한 모델은 연령 정보를 학습하는 만큼, 해당 절차를 완료하기로 선택한 사용자의 특성을 학습할 위험이 있습니다. 이러한 선택 편향을 줄이기 위해, 라벨이 부여된 표본이 우리가 점수를 매기려는 전체 집단을 더 잘 반영하도록 훈련 및 평가 데이터의 가중치를 재조정합니다. 

저희는 사용자 연구팀과 부서 간 협력을 통해, 집계된 설문조사 결과를 활용하여 가중치 산정에 사용되는 모집단 목표를 설정합니다. 이를 바탕으로 역성향 가중치(inverse propensity weighting) 및 반복 비례 적합(iterative proportional fitting, 일명 레이킹)과 같은 기법을 사용하여, 단일 요인만을 개별적으로 보정하는 대신 여러 차원에 걸쳐 가중치 적용된 표본을 동시에 조정합니다. 

신뢰도가 높은 출처라고 해서 모두 유용한 훈련 예시를 생성하는 것은 아닙니다. 레이블의 신뢰도는 그 배후에 있는 검증 이벤트만큼만 높습니다. 일부 이벤트는 비정상적인 검증 패턴이나 계정 무결성 문제와 같이 모델 훈련에 적합하지 않은 신호를 포함할 수 있습니다. 

우리는 행동 모델링을 위해 분포에서 벗어난 것으로 보이는 예시를 제거하기 위해, 훈련 전에 무결성 기반 라벨 필터링이나 ‘Confident Learning’과 같은 라벨 오류 식별 접근법을 통해 라벨을 정제하기 위해 노력합니다. 초기 실험 결과에 따르면 이러한 정제 과정은 모델의 과적합을 방지하고 일관된 성능 향상을 가져오는 것으로 나타났습니다.

Roblox 규모에서의 훈련, 추론 및 편향 방지

추론은 신호를 최신 상태로 유지하기 위해 충분히 자주 실행되어야 하지만, 훈련 주기는 신호 계열에 따라 달라질 수 있습니다. 우리는 특징 드리프트, 모델 안정성 및 모델 비용을 기반으로 재훈련 일정을 결정합니다. 빠르게 변화하거나 성능이 저하되는 신호는 더 자주 재훈련할 수 있으며, 성능 변화가 느린 무거운 모델은 재훈련 빈도를 줄이거나 필요에 따라 재훈련할 수 있습니다. 

컴퓨팅 스택은 워크로드의 특성에 맞춰 구성됩니다. 대규모 구조화된 변환에는 Apache Spark를, GPU 기반 워크로드에는 Ray 프레임워크를, 실시간 신호 처리에는 프로덕션 워커를 사용합니다. 

Roblox의 규모에서는 매일 모든 계정의 전체 이력을 재구축하는 것도 비실용적입니다. 당사의 자체 데이터 처리 프레임워크는 대용량 신호에 대해 제한된 범위의 롤링 이력을 유지하며, 비용이 많이 드는 변환 작업을 단계별로 구체화합니다. 이를 통해 매일 수백만 건의 계정 수준 레코드를 처리 및 집계하는 동시에, 대규모 확장, 조인 및 특징 집계를 독립적으로 확장할 수 있습니다. 이러한 하이브리드 프로덕션 설계는 데이터 웨어하우스와의 직접적인 통합, 모델 구성 요소 전반에 걸친 재현 가능한 실행, 그리고 중요한 부분에서 가속화된 컴퓨팅에 대한 접근을 가능하게 합니다.

이러한 대규모 환경에서 안정성을 유지하기 위해, 우리는 특징량 파이프라인 전반에 걸쳐 다음 두 가지 엄격한 설계 원칙을 적용합니다:

  • 파생된 특징 저장: 가능한 한 원시 활동 스트림 대신 파생된 특징을 저장합니다. 모델링에 필요한 신호만 보관하고, 그 이면에 있는 전체 이력은 보관하지 않습니다.
  • 통합 데이터 계약: 동일한 데이터 계약이 훈련과 추론 모두에 사용됩니다. 이를 통해 ML 시스템에서 가장 흔한 오류 원인 중 하나인, 훈련된 모델과 실제 서비스되는 모델 간의 불일치를 줄일 수 있습니다.

우리는 운영 라이프사이클의 두 지점에서 게이트링(gating)을 적용합니다. 첫째, 모델 승격은 모델 훈련과 분리되어 있습니다. 후보 모델은 가드레일(guardrail) 검사를 통과해야만 운영 추론에 사용될 자격을 얻습니다. 후보 모델이 가드레일 검사를 통과하지 못하면 파이프라인이 승격을 차단하고, 가장 최근에 승격된 정상 버전을 계속 제공합니다. 

둘째, 추론 출력은 다운스트림으로 게시되기 전에 게이트링을 거칩니다. 자동화된 검사를 통해 품질 저하 및 예측 분포의 큰 변화를 감지합니다. 검사에서 실패할 경우 게시 단계가 차단됩니다. 사용자 안전 워크플로우와 연계된 ML 시스템에서는, 설명할 수 없는 분포 변화를 배포하는 것보다 “오늘은 아무 조치도 취하지 않는 것”이 종종 더 안전한 실패 모드입니다.

시스템 측정 

이러한 시스템의 경우, 단일 정확도 수치만으로는 큰 의미가 없습니다. 우리는 순위 품질, 보정, 시간 경과에 따른 안정성, 그리고 중요한 연령대 경계 부근에서의 거동을 종합적으로 평가하여 모델 품질을 측정합니다. 또한 평가 데이터의 대표성을 측정 문제의 일부로 간주합니다. 왜냐하면 전체적인 개선은 해당 시스템이 서비스해야 할 대상 집단을 반영할 때만 유용하기 때문입니다.

융합 모델은 이 가중치가 적용된 검증 데이터 세트에서 0.9 이상의 평균 정밀도를 달성했습니다. 또한, 높은 신뢰도를 가진 추정값은 매일 일관성을 유지합니다. 99% 이상의 추정값이 연속된 날에도 동일한 광범위한 연령대 범주 내에 머무릅니다. 

또한 당사의 ‘신뢰 및 안전(Trust and Safety)’ 워크플로우를 통해 훈련된 인간 검토자가 생성한 독립적인 실제 결과와 모델을 비교했습니다. 높은 신뢰도 수준에서, 모델의 연령대 추정치는 성인에 대해 80% 이상의 확률로 인간 검토자들의 합의 라벨과 일치합니다. 

오프라인 평가는 단지 한 단계에 불과합니다. 실제 운영 환경에서는 계절적 요인, 제품 출시, 악의적인 공격에 따라 사용자 행동이 변화합니다. 그렇기 때문에 모델 평가 지표와 더불어, 예측 분포, 드리프트, 안정성을 지속적으로 모니터링한 후 그 결과를 후속 단계에 활용합니다. 또한 후속 연령 확인 결과를 모니터링하여, 운영 피드백을 통해 모델의 신뢰성을 파악하고 임계값이나 검토 경로를 조정해야 할 부분을 파악합니다.

향후 계획

이 시스템을 사내에서 직접 운영함으로써, 로블록스 고유의 신호를 안전하게 활용하고, 극도로 엄격한 기준으로 운영하며, 지속적으로 개선해 나갈 수 있습니다.

앞으로 우리는 서브모델, 추론, 측정 방식을 최적화하는 데 주력할 것입니다. 모듈성, 보정, 개인정보 보호, 운영 안전장치라는 운영 원칙에 중점을 두면서 각 계층을 한 단계 더 발전시켜 나갈 것입니다.