1. ONNX 모델 준비하기
먼저 사용할 모델을 ONNX 형식으로 확보해야 합니다. ONNX Model Zoo 또는 Hugging Face를 활용하거나, 직접 학습한 모델을 변환할 수도 있습니다.- ONNX Model Zoo: GitHub에서 다양한 사전 학습 모델 확인하기
- Hugging Face: 예) skt/kogpt2-base-v2
- 직접 변환: Optimum CLI 또는 Transformers.onnx 스크립트로 모델을 변환 가능
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 병목 확인
