로컬 LLM을 게임에 넣어보자 #1 : 준비
바야흐로 대 AI 시대이다. 비용과 성능의 사이에서 몸을 비틀며 게임을 만들고 있는 사람들이 많을 거라 생각한다.
나는 그 중에서 최적화 빌런답게 비용에 집중해보기로 했다. 돈 한푼 안 들이고 생성형 AI를 사용하는 프로젝트를 만드는 게 목표다.
한계
뭘 시작하지도 않았는데 한계부터 제시한다.
사실 Llama나 Deepseek 등 저사양 로컬 모델을 일정 기간 사용해봤는데, 완벽한 성능을 기대하는 것은 어려웠다. 한글이 깨지기도 하고, 할루시네이션도 많이 뱉고... 맥락을 제대로 읽지도 못하는 경우가 많았다. (허깅페이스에서 한국어 파인튜닝 모델을 사용했다)
또한 로컬 모델은 컴퓨터 사양에 따라 생성 속도가 달라지는 결정적인 문제점을 가지고 있었다.
일단 이번 프로젝트는 문제점이 해결될만한지 각을 보는 정도로만 하고, 스팀에 무료 출시하는 등의 작업만 하려고 한다.
스펙 정하기
Llama 3.2의 3b 모델로 간다. 왜냐고 물으면 그냥 벤치마크도 그렇고 경험론적으로도 그렇고 제일 괜찮았음.
어차피 나는 AI 개발자가 아니기 때문에 더 이상의 말을 붙일 수는 없다! 몸을 비틀며 생성형 AI를 게임에 넣고 싶은 개발자일 뿐이므로 넘어간다.
게임 기획하기
- 모델이 답변을 생성하는 동안 시간이 걸리므로, AI와의 상호작용은 알림이나 메신저처럼 구현한다.
- 알림이나 메신저가 오기 전까지 플레이어는 다른 짓을 하고 있다. 미니게임 로그라이크를 하고 있자. (??)
- AI와의 대화에 따라 게임 내용이 해금되는 방식을 취하자. 그 해금 기준을 판단하는 것도 AI가 한다.
- AI가 플레이어의 게임 진행에 따라 게임 난이도를 높이거나 낮출 수 있다.
관련 패키지 넣기
서치를 해 보니, 두 가지 정도의 적용 방식을 찾을 수 있었다. 두 방식 다 허깅페이스에서 받은 파일을 적용할 수 있으므로, 추후 새 모델이 나오더라도 갈아끼우는 데에는 문제가 없을 듯.
Unity Sentis
유니티에서 공식적으로 지원하는 AI 솔루션. 현재 2.1.2 버전까지 나와 있고, 공식 문서도 존재한다.
ONNX 파일 표준을 통해 직접 모델을 임포트하거나, 허깅페이스에서 검증된 모델을 임포트할 수 있다. 이 경우 한국어로 파인튜닝한 신버전 경량 모델을 바로바로 적용해볼 수 없다는 게 약점이 될 듯.
https://www.youtube.com/watch?v=0GZ4KJAspJM
유니티 코리아에서 센티스를 설명하는 영상이 있다.
LLMUnity
3일 전까지도 커밋이 업데이트 될 정도로 활발한 레포다. 1000+ 스타이고, 해당 라이브러리를 적용한 출시 사례도 있으니 흥미롭다.
.gguf를 지원하고, RAG도 지원한다. 그러므로 이번 프로젝트에서는 LLMUnity를 사용해보기로 한다.
https://github.com/undreamai/LLMUnity
GitHub - undreamai/LLMUnity: Create characters in Unity with LLMs!
Create characters in Unity with LLMs! Contribute to undreamai/LLMUnity development by creating an account on GitHub.
github.com
기타
정보를 찾다가, r/LocalLLM과 r/LocalLLaMA 레딧 채널을 찾았다. 최신 로컬 모델 소식을 받기 위해 구독해놓고 매일매일 들어가봐야 할 듯.
'프로그래밍 > Unity' 카테고리의 다른 글
[알쓸유잡 : 모바일 최적화] 영상 정리하기 (0) | 2024.01.20 |
---|---|
URP는 Built-In과 뭐가 다른가? (1) : SRP Batcher (0) | 2023.12.17 |
유니티 빌드 중 겪은 문제 정리 (0) | 2023.08.24 |
Unity 인스펙터 꿀팁 알아보기 (0) | 2023.08.03 |
언어권에 따른 String 변환에 주의하자 (0) | 2023.02.20 |
댓글
이 글 공유하기
다른 글
-
[알쓸유잡 : 모바일 최적화] 영상 정리하기
[알쓸유잡 : 모바일 최적화] 영상 정리하기
2024.01.20이번 포스팅은 유니티 공부를 할 때 항상 신세를 지고 있는 알쓸유잡 콘텐츠를 공부하고 기록해보는 글이 되겠다. 특히나 이번 영상은 최적화였기 때문에, 프로파일러 안의 숫자를 하나라도 더 줄이면 쾌감을 느끼는 편인 나는 어쩔 수 없이 글을 쓸 수밖에 없었다. 음…. 변태같은 소리는 뒤로 하고 본론으로 들어가자. 소개 https://www.youtube.com/live/-IrpQzZi_p8?si=tz7lyopfIHhbdPyX https://blog.unity.com/engine-platform/updated-2022-lts-best-practice-guides Updated 2022 LTS Best Practice Guides for optimizing games | Unity Blog Each guide… -
URP는 Built-In과 뭐가 다른가? (1) : SRP Batcher
URP는 Built-In과 뭐가 다른가? (1) : SRP Batcher
2023.12.17최근 Unity 2022 LTS 버전을 사용해보면서 URP도 겸사겸사 사용해보게 되었다. 대체 Built-In과 뭐가 다른가 싶어서 유니티 공식 문서를 받아 공부해보고 있는데, 정리가 필요하다고 느꼈다. 다만 이론적인 것 말고, 실무에서 무엇이 달랐는지 하나씩 정리해보려 한다. SRP Batcher가 뭔지 요약해서 알려달라 간단하게 말하면, 같은 쉐이더를 쓰는 오브젝트를 그릴 때 렌더링 성능을 개선해주는 녀석이다. '같은 머티리얼을 쓰면 Draw Call이 하나'라는 게 '같은 쉐이더를 쓰면 SetPass Call이 하나'가 된 것이다. 즉, 같은 쉐이더를 쓰는 것만 신경쓰면 성능 개선을 이뤄낼 수 있는 개꿀 기능이라는 것이다. 다만, 파티클 시스템과 UI에는 적용되지 않는다. 뭘 어떻게 성능 개선을 한… -
유니티 빌드 중 겪은 문제 정리
유니티 빌드 중 겪은 문제 정리
2023.08.24유니티 빌드를 하다 보면 별별 오류를 다 겪는다. 주로 SDK가 원인인 경우가 많다. 그 오류들의 원인은 대체 무엇이고 해결 방법은 무엇인지 알아보는 글이 되겠다. 그리고 인터넷에 널린 글들을 찾아볼 필요 없도록 그냥 이 글에 다 넣어버릴 예정이다. 페이스북 SDK 에러 : debug.keystore 없음 [콘솔] Your Android setup is not correct. See Settings in Facebook menu. [경고] Your android debug keystore is missing! You can create new one by creating and building empty Android project in Eclipse. 해결 방법 아무 유니티 프로젝트에서 Android … -
Unity 인스펙터 꿀팁 알아보기
Unity 인스펙터 꿀팁 알아보기
2023.08.03이전 사수분이 유튜브 유니티 11가지 꿀팁 영상을 공유해주셨는데, 개발자 입장에서 내용이 굉장히 유익했다. 이런 자잘한 꿀팁들이 또 존재할 것 같아서, 영상들과 유니티 공식 메뉴얼을 뒤져보았다. 이 글은 그 결과로 나온 요약글이다. 프로그래머가 아니더라도 인스펙터를 자주 만지는 사람들에게 유용할 것이라고 생각한다. 사실 그 때에는 인스펙터 프리셋 기능도 정리했었는데, 결국 안 쓰게 되서 그 부분은 제외했다. 궁금하신 분은 공식 블로그 글을 확인해보는 것도 괜찮을 듯. 아무튼 본론으로 들어간다. 여러 오브젝트 한번에 일렬로 배치하기 주의, 유니티 2021 버전 이상만 가능하다. 여러 오브젝트를 선택한 뒤에 숫자 프로퍼티에 L(최솟값, 최댓값)을 입력하면 알아서 일렬로 배치된다. L은 Linear의 약자인 …
댓글을 사용할 수 없습니다.