Unity Sentis로 ONNX 모델을 활용한 대화형 NPC 만들기

Unity의 새로운 AI 프레임워크인 Sentis를 활용하면 ONNX 형식의 AI 모델을 손쉽게 Unity 프로젝트에 통합할 수 있습니다. 특히 GPT-2, KoGPT2 같은 언어 생성 모델을 불러와 대화형 NPC를 구현하는 데 매우 유용하죠.

1. ONNX 모델 준비하기

먼저 사용할 모델을 ONNX 형식으로 확보해야 합니다. ONNX Model Zoo 또는 Hugging Face를 활용하거나, 직접 학습한 모델을 변환할 수도 있습니다.

2. Unity 프로젝트 설정

Unity 에디터에서 com.unity.sentis 패키지를 설치하고, ONNX 파일을 Assets 폴더에 배치하면 자동으로 임포트됩니다. 모델 임포트 후 Model Asset Import Settings에서 입출력 형태를 확인하고, 런타임 직렬화 옵션을 설정할 수 있습니다.

3. C#에서 모델 실행

ModelLoader.Load()를 통해 모델을 로드하고, IWorker를 사용해 입력 텐서를 전달한 뒤 추론 결과를 얻습니다. using Unity.Sentis; IWorker worker = WorkerFactory.CreateWorker(WorkerFactory.Type.GPUCompute, runtimeModel); worker.Execute(input); float[] result = ((TensorFloat)worker.PeekOutput()).ToReadOnlyArray(); worker.Dispose(); 결과는 디코딩하여 NPC의 대화 텍스트로 활용할 수 있습니다. 멀티스레딩이나 Job System을 활용하면 퍼포먼스도 최적화할 수 있습니다.

4. 실전 팁

  • 모델 경량화: --quantize 옵션으로 8비트 양자화 수행
  • 호환성 문제: CustomLayer 구현으로 해결 가능
  • 퍼포먼스 분석: Unity Profiler로 CPU/GPU 병목 확인
ONNX 모델을 Unity Sentis로 통합해 NPC 대화 시스템으로 연결하는 다이어그램
더 읽어보세요: