- 게임 제작에 유용한 AI 서비스 정리 (1)2023년 04월 09일 20시 34분 54초에 업로드 된 글입니다.작성자: kugorang728x90
들어가며
바야흐로 AI 시대이다. 구글 딥마인드의 알파고가 쏘아올린 AI 시대의 개막이 올해 들어 상용 기술로써 꽃피우게 되었다. 혹자는 공포감을 느끼나, 적어도 나는 완전 대체가 아닌 제품 개발의 보완재라고 여겨져 어떻게 하면 잘 사용할 수 있을지 기술 발전 흐름을 유심히 지켜보는 중이다.
ChatGPT
2023년 AI 혁명이라 불리는 신호탄을 쏘아 올린 OpenAI의 대화형 챗봇 서비스이다. 현재 유료 결제 시 GPT4 모델을 사용할 수 있으며 나도 ChatGPT를 유료 결제 하고 사용 중이다.
최근 ChatGPT의 프롬프트 엔지니어링 (Prompt Engineering) 이라는 개념에 대해 많은 관심을 가지고 있다. 그 중에서도 하이퍼파라미터 (Hyperparameter) 라는 개념에 대해 조금 정리해보았다.
ChatGPT의 Hyperparamter
하이퍼파라미터란, 사용자가 인공지능 모델의 셋팅을 조절하는 변수로 이 값을 프롬프트에 잘 적용하면 원하는 방향으로 좋은 결과를 도출 가능하도록 도와주는, 프롬프트의 옵션의 역할을 한다. 나는 이 개념을 서울디지털재단의 [업무활용편] ChatGPT 활용사례 및 활용 팁 이라는 글을 통해 알게 되었다.
https://sdf.seoul.kr/research-report/2003
이 글에서 가장 인상 깊었던 건 "ChatGPT 사용 방법은 ChatGPT에게 물어보라" 라는 말이었다. 그래서 게임 개발과 관련된 하이퍼파라미터에 관련해서 ChatGPT에게 물어봤었고, 아래와 같은 답변을 받을 수 있었다.
하이퍼파라미터 텍스트 생성에 미치는 영향 온라인 게임 개발에서의 예시 Max tokens 생성된 텍스트의 최대 길이 제어 UI 제약 내에서 대화 길이를 제한합니다. Temperature 생성된 텍스트의 무작위성 및 창의성 조절 대화를 더 다양하고 흥미롭게 만듭니다. Top-k sampling 상위 k개의 가장 가능성 있는 토큰을 고려하여 생성된 텍스트의 품질과 다양성 사이의 균형을 맞춤 일관된 캐릭터 대화를 다양하게 생성합니다. Top-p sampling 누적 확률이 p를 초과하는 토큰을 고려하여 생성된 텍스트의 품질과 다양성 사이의 균형을 맞춤 다양한 플롯 이벤트 또는 힌트를 생성합니다. Beam width 계산 복잡성이 증가하나, 생성 텍스트 품질을 개선 캐릭터 대화나 스토리 라인의 품질을 향상시킵니다. Number of responses 주어진 입력에 대한 여러 개의 응답을 생성하여 다양한 대답이나 제안을 탐색 대화 시스템에서 가장 상황에 맞는 응답이나 흥미로운 답변을 선택합니다. 이 결과를 봤을 땐, 이런 생각이 들었다.
"유용한 건 알겠어, 근데 어쩌라는 거지?"
바로 정신 차리고 ChatGPT에게 예시를 물어봤고 그제서야 GPT는 나에게 다가와 꽃이 되어주었다. 내게 도움이 됐던 예시는 예시로 입력 프롬프트에 "어떻게 드래곤을 물리치나요?" 라는 문장을 입력했을 때, 하이퍼파라미터의 수치 값에 따라 아래의 표와 같은 결과을 볼 수 있었던 답변이었다.
하이퍼파라미터 파라미터 수치 결과 Default settings
(특정 매개변수가 적용되지 않은 상태)(NULL) "드래곤을 물리치려면 먼저 드래곤의 불 같은 입김을 견딜 수 있는 강력한 무기와 갑옷을 획득해야 합니다. 또한 눈과 아랫배와 같은 약점을 노려야 합니다." Lower temperature
(더 집중하고 결정적)temperature:
0.5"드래곤을 물리치려면 강력한 무기를 찾고 내화 갑옷을 착용하세요. 눈과 배와 같은 취약한 부위를 겨냥하고 불 입김을 피하세요." Higher temperature
(더 다양하고 창의적인)temperature:
1.5"용을 이기는 한 가지 방법은 폭발성 통으로 가득 찬 동굴로 용을 유인하는 것입니다. 드래곤이 들어올 때 통에 불을 붙이면 폭발로 인해 드래곤을 충분히 약화시켜 끝낼 수 있습니다." Top-k sampling
(보다 통제된 다양성)top_k:
50"드래곤을 물리치려면 전략과 힘이 조화를 이루어야 합니다. 원거리에서 공격할 때는 원거리 무기를 사용하고, 불 입김과 꼬리를 휘두르는 공격을 피할 준비를 하세요." Beam search
(품질 개선, 계산 복잡성 증가)beam_width: 5 "드래곤을 물리치려면 튼튼한 무기와 내화성 갑옷, 그리고 좋은 전략이 필요합니다. 드래곤의 불 공격을 피하면서 눈과 배와 같은 취약한 부위를 공격하는 데 집중하세요." 예전에 "구글링 (Googling)" 이라는 단어를 처음 봤을 때 느낀 감정을 하이퍼파라미터에 대해 찾아봤을 때 또다시 느꼈다. 괜히 엔지니어링이라는 단어가 붙는 게 아닌만큼 좋은 도구를 잘 쓰고 싶단 욕심이 생기기까지 했다.
ChatGPT와 게임 개발
현재 ChatGPT가 게임 개발에 쓰인다면 가장 활용도가 높을 분야는 자연어를 활용한 동작 자동화 일듯 싶다. 그리고 이미, ChatGPT API를 활용해 게임 엔진이나 그래픽 툴에서 이를 활용하는 모습을 볼 수 있었다.
먼저, 3D 그래픽 툴인 Blender (블렌더) 에서 ChatGPT를 활용한 오픈소스인 BlenderGPT 이다.
https://github.com/gd3kr/BlenderGPT
블렌더 툴에서는 이미 파이썬을 활용하여 작업자가 스크립트를 잘 활용할 줄 알면 더 편한 작업을 할 수 있는 작업 환경을 구성할 수 있었는데, ChatGPT를 통해 자연어를 입력했을 때 이후 스크립트 작성 및 적용까지 자동으로 해주는 오픈소스가 나와버렸다.
다음은, Unity에서 ChatGPT를 활용한 셰이더를 자연어 입력 시 그에 맞게 생성하는 AIShader 이다.
https://github.com/keijiro/AIShader
마지막으로, 유니티 엔진에서 자연어 입력 시 해당 명령을 수행하는 AICommand 이다.
https://github.com/keijiro/AICommand
사실 이런 기능들은 아직 초창기 개발 단계라 제품에 완전히 적용하긴 어려울 것이다. 다만, ChatGPT가 공개된지 약 6개월도 안 된 시점에서 이런 기술 발전이 급속도로 발전되는 것을 보면 분명 향후 5년 안에 게임 개발에도 많은 지형 변화가 예상되지 않을까 싶다.
마치며
글을 쓰다보니 분량이 너무 길어지는 듯 하여, 글을 나눠 포스팅하려 한다. 다음 포스팅에서는 Midjourney, DALLE 등 그래픽 리소스 작업에 도움이 되는 내용을 작성할 예정이다.
728x90'프로그래밍 > AI' 카테고리의 다른 글
게임 제작에 유용한 AI 서비스 정리 (2) (0) 2023.04.23 다음글이 없습니다.이전글이 없습니다.댓글