pile·
AI / ML·NC소프트 DANBINC소프트 DANBI·

Transformer를 이용해 대량의 게임 데이터를 임베딩 해보자!

엔씨소프트 Data Center 가 게임 유저 행동 로그를 유저 단위 임베딩 벡터로 만들 때 LSTM 기반 Seq2Seq-Autoencoder 에서 Transformer-Autoencoder 로 옮긴 과정을 다룬다. 학습 시간이 GPU 사용 시 epoch 당 40분에서 10분으로 줄었고, 부정사용자 탐지 downstream task 에서도 기존 모델보다 나은 결과를 냈다.

핵심 포인트
  • 출발점은 여러 프로젝트가 공통으로 쓰는 유저 행동 로그를 잘 함축한 임베딩으로 미리 만들어두자는 아이디어다.
  • 첫 시도인 LSTM Seq2Seq-Autoencoder 는 세 가지 문제를 냈다. GPU 병렬 처리가 잘 안 돼 학습과 추론이 느리고, 고정 길이 context vector 라 정보 손실이 있고, 시퀀스가 길어 Long-Term Dependency 문제가 생겼다.
  • BERT 를 먼저 검토했지만 MLM 과 NSP 학습 자체는 잘돼도 downstream task 성능이 기대에 못 미쳤다. 사전 크기 대비 모델이 커 과적합됐고, 반복 행동이 많은 게임 로그에는 NSP 가 맞지 않는다고 봤다.
  • 최종 선택은 기본 Transformer Encoder-Decoder 에 Autoencoder 구조를 얹는 것이다. 입력과 출력이 같으므로 attention score 가 대각선 계단 형태로 나오는지로 학습 상태를 볼 수 있다.
  • 학습 시간은 CPU 만 쓸 때 epoch 당 40분에서 GPU 1개 사용 시 10분으로 약 75퍼센트 줄었다. 같은 조건에서 LSTM 모델은 23퍼센트 감소에 그쳤다.
상세 정리
  • 로그는 시간 순으로 쌓이는 sequential data 라 ARIMA 같은 시계열 기법이나 RNN, LSTM 계열이 후보였지만, 데이터양이 커서 딥러닝 쪽에 집중했다.
  • 처음에는 전체 로그가 아니라 유저의 지역 이동 로그만 써서 임베딩했고, 다른 프로젝트에 적용했을 때 기대한 성능이 나왔다.
  • 다만 사전 크기를 조절해 속도를 개선해도, 다른 종류 로그까지 합치면 사전이 커져 학습 시간이 기하급수적으로 늘 것으로 봤다.
  • 정보 손실 문제는 구체적이다. 비슷한 행동을 한 유저끼리는 코사인 유사도가 가깝게 나왔지만, 반복 행동을 하는 작업장 캐릭터와 전혀 다른 행동을 하는 일반 유저의 벡터가 가깝게 나오는 경우가 생겼다.
  • 유저 한 명의 하루 로그는 수천에서 수만 건이라 시퀀스가 길 수밖에 없고, 도메인 지식으로 걸러내도 한계가 있었다.
  • Transformer 입력은 Action Code, Context Code, Zone Code 세 피처를 밑줄로 이어 붙인 형태다. 게임머니 증가 같은 행동, NPC 상점 판매 같은 세부 카테고리, 지역 정보가 한 토큰에 담긴다.
  • 지역 이동만 쓰면 모델 크기 대비 사전이 작아, 다른 피처도 함께 넣는 편이 학습에 낫다고 판단했다.
  • 속도 차이의 근거로 Attention is all you need 의 계산 복잡도 표를 든다. n 이 d 보다 작으면 self-attention 의 레이어당 복잡도가 더 낮고, 순차 연산 최소 횟수도 RNN 만 시퀀스 길이에 비례한다.
  • 저자는 구현 시 Tensorflow 보다 Pytorch 를 권한다. NLP 모델 라이브러리 상당수가 Pytorch 로 구현돼 있어서다. 멀티 GPU 텐서 분산 처리도 권한다.
  • 비지도 학습이라 평가가 어려워 두 가지 정성 기준을 뒀다. 입력을 넣었을 때 출력이 입력을 얼마나 잘 복원하는지, 그리고 encoder 와 decoder 간 attention score 모양이다.
  • 자기 자신을 많이 참조해야 하므로 attention score 가 대각선 계단 형태로 나와야 하는데, 실제로 그 모양이 나왔고 decoder layer 를 더 거칠수록 선명해졌다.
  • 복원 성능은 test data 의 90퍼센트 이상에서 입력과 출력이 동일하게 나왔다.
  • downstream task 는 불법 프로그램 사용자나 작업장 같은 부정사용자 탐지다. 이들은 게임머니를 한 아이디로 몰거나 특정 지역에서 같은 행동을 반복하는 패턴이 있어 로그에 차이가 드러난다.
  • 추출한 임베딩 벡터를 이진 분류 딥러닝 모델의 입력으로 넣어 LSTM Autoencoder 기반과 confusion matrix 를 비교했고, 학습 데이터와 downstream 모델 구조를 동일하게 맞춘 조건에서 Transformer 쪽이 더 나았다.
  • 남은 과제로 게임 업데이트로 새 지역이나 로그가 생기면 OOV 처리보다 재학습이 필요하다는 점, 로그 선별 방식 개선, 피처 수와 모델 성능의 trade-off, GPU 분산 병렬 처리를 꼽는다.
왜 읽나대량의 행동 로그를 임베딩해 여러 모델의 공통 입력으로 쓰려는 데이터 사이언티스트에게 LSTM 에서 Transformer 로 옮길 때의 근거와 비지도 학습 평가 방법을 보여주는 사례.
NC소프트 DANBI
NC소프트 DANBI 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. AI / ML·stackoverflow-blogStack Overflow Blog·

    에이전틱 SDLC를 QA 엔지니어링 마인드셋으로 구축하기

    Motorola Solutions의 테스트 엔지니어링 선임 매니저 Suneet Malhotra가 Stack Overflow 팟캐스트에 출연해 MCP(Model Context Protocol) 기반 에이전틱 SDLC 파이프라인 구축과 LLM-as-judge 평가 방법론을 소개했다. QA 엔지니어링 관점을 소프트웨어 개발 생애 전반에 적용하고, 설계 단계 직후 스펙을 강화해 결함 비용을 줄이는 'QA shift-left' 접근을 다룬다.

    요약 이어보기
    #llm-agent#mcp#test-automation+2
  2. AI / ML·LINE EngineeringLINE Engineering·

    보안 업무를 위한 AI 에이전트 플랫폼 「SAGE」 개발기 1편: 판단은 사람에게 남기는 설계

    LY Corporation Security Development Division이 보안 업무용 AI 에이전트 플랫폼 SAGE의 개발 과정을 공개했다. "완전 자동화"와 "도입 미루기" 양 극단 사이에서 "판단은 사람에게 남기는 설계"를 핵심 원칙으로 삼고, 3단계 점진적 도입 전략(AI 보조→에이전트 협업→자동화)을 채택했다. 현재는 1단계를 중심으로 파일럿·실운영 중이다.

    요약 이어보기
    #llm-app#opensearch#mcp+2