대규모 LLM 통합으로 Muse Chat의 정확성과 신뢰성을 강화하는 방법

Unity Muse는 AI 기능을 통해 실시간 3D 경험을 탐색하고, 아이디어를 구상하고, 반복 작업(iteration)을 수행할 수 있도록 지원합니다. Muse Chat은 제작 속도를 높이는 데 사용할 수 있는 툴입니다. Muse Chat은 Unity에 대한 지식과 에디터를 손쉽게 활용하도록 지원하여 디버깅 조언, 첫 번째 초안 작성을 위한 코드 생성 등 유용한 정보를 Unity 에디터와 프로젝트의 컨텍스트 내에서 모두 제공해 줍니다.
Muse Chat이 유용한 솔루션을 제공하기 위해 정확히 어떻게 설계되었는지 보여 드릴 수 있도록, 응답을 생성하는 과정의 구성 방식을 자세히 살펴보겠습니다. 현재 진행 중인 탐구 활동과 향후 개발 예정인 LLM 파이프라인에 대해서도 미리 살펴볼 수 있습니다.
Muse Chat은 쿼리 계획 및 다양한 정보의 중재를 위한 여러 시스템과 LLM(대규모 언어 모델) 통합으로 구성된 파이프라인으로서 구축되었습니다. Muse Chat은 요청을 수신하면 에디터나 사용자가 제공한 정보 및 해결하려는 문제를 기반으로 향후 응답의 형식을 간략하게 설명하는 작업 계획을 도출합니다.
“저는 Muse를 개인 비서처럼 사용하여 모든 것을 직접 구축하고 코딩했습니다. 물론 동료들의 도움도 있었지만, Muse가 없었다면 이렇게 짧은 시간 안에 탁월한 결과를 얻지 못했을 것 같아요.”
- Space Purr-suit의 공동 제작자 제시카 소우자
신뢰도 높은 응답을 구성할 때는 두 가지 과제가 있습니다. 하나는 응답을 작성하기 위해 관련 정보를 검색하는 것이고, 다른 하나는 대화의 맥락과 기록을 바탕으로 해당 정보가 응답에 적절하게 포함되도록 하는 것입니다.
Muse Chat은 정보를 수집하여 문서 섹션이나 코드 스니핏과 같은 80만 개 이상의 정보 청크를 통해 이 두 가지 과제를 모두 해결하고자 합니다. 청크는 주변 정보에 대한 참조를 통해 처리 및 보완되므로 각각 유용하고 독립적인 정보 유닛을 제공합니다. 청크는 기술 자료를 통해 추적된 내용에 따라 콘텐츠와 고유한 컨텍스트를 기준으로 분류됩니다. 또한 시스템의 투명성과 해석 가능성을 제공하며, 호환 가능한 정보를 효과적으로 검색할 수 있도록 합니다. 현재 나머지 파이프라인이 어떻게 구성되어 있는지 알아보려면 아래 다이어그램과 설명을 참조하세요.

- 요청: 요청이 들어왔습니다.
- 에디터 컨텍스트: 에디터에 있는 경우, 관련 컨텍스트가 에디터에서 동적으로 추출되며, Muse에 적절한 정보를 제공하라는 요청이 함께 제시됩니다.
- 쿼리 확장: 초기 계획 시스템은 정확한 계획을 도출하기 위한 쿼리 확장을 수행합니다. 정보 카탈로그 형식을 최대한 복제하고 각 단계에 맞는 이상적인 청크 구조를 다시 만들도록 LLM에 지시합니다. 이 접근 방식을 사용하면 시스템이 원하는 청크의 컨텍스트, 콘텐츠 및 사용 사례를 캡처하는 임베딩을 계산할 수 있습니다. 이러한 각 계획 단계는 세분화된 시맨틱 검색에 사용됩니다.
- 정보 검색: 관련 정보를 찾기 위해 대칭 시맨틱 검색 및 메타데이터 필터링을 사용하여 쿼리 확장 단계에서 식별한 이상적인 예상 청크와 가장 유사한 청크를 정보 카탈로그에서 검색합니다.
- 공식화: 최종 응답을 생성하기 위해, 필터링된 원래 계획 단계와 관련 기본 정보를 전달하는 데 필요한 소스를 모두 포함하는 세부 개요를 기반으로 다른 LLM을 사용하여 응답을 작성합니다.
- 응답: Muse Chat이 답변을 제공합니다.
에디터에서 Muse Chat을 사용할 수 있도록 만들기 위해, 파이프라인의 두 번째 단계인 에디터 컨텍스트 추출을 도입했습니다. 이를 파이프라인의 맨 처음에 추가하면 쿼리를 분석하여 에디터에서 추출할 내용을 식별하고, 이를 파싱하여 Muse에 다음 단계에 대해 알려 줍니다. 사용자 피드백을 바탕으로 프로젝트 설치 및 설정, 게임 오브젝트/프리팹, 콘솔 액세스부터 작업을 시작했습니다.
이제 경고나 메시지와 함께 콘솔 오류가 발생하면 콘솔에서 관련 행을 클릭하여 오류를 선택 항목에 추가하기만 하면 됩니다. 아래 예시에서는 스크립트에서 중괄호가 누락되어 오류가 발생했습니다.

에디터의 새 대화에서 ‘스크립터블 기능을 만들어 유니버설 렌더러에 추가하려면 어떻게 해야 하나요?’라는 질문에 대한 답변을 간단한 예로 들어 보겠습니다. 이는 다음과 같은 계획 단계로 변환됩니다.
- 요청: “현재 렌더 파이프라인에 적합한 스크립터블 기능을 만들려면 어떻게 해야 하나요?”
- 에디터 컨텍스트: Muse는 사용된 렌더 파이프라인, 실행 중인 Unity 버전, 질문과 관련된 프로젝트 설정을 식별합니다. 그런 다음 사용자가 선택한 에디터 정보와 함께 동적 컨텍스트를 추출합니다.
- 쿼리 확장: LLM은 다음 계획 단계로 계획을 생성합니다.
URP의 스크립터블 기능의 개념과 목적을 소개합니다.
URP에서 스크립터블 기능을 만드는 단계를 설명합니다.
유니버설 렌더러에 스크립터블 기능을 추가하는 방법을 보여 주는 예제를 제공합니다.
- 정보 검색: 이 예에서는 임베딩에서 정보를 검색하는 단계에 따라 요청이 이행됩니다.
- 공식화: LLM이 최종 응답을 중재합니다.
- 응답: 아래와 같이 코드 스니핏과 함께 답변을 받을 수 있습니다.

위의 URP 관련 예시에서 최종 응답 계획은 URP 기술 자료의 ‘스크립터블 렌더러 기능’ 섹션을 기반으로 한 소개, ‘스크립터블 렌더러 기능을 생성하여 유니버설 렌더러에 추가’의 단계별 지침, 마지막으로 유니버설 렌더러 에셋에 커스텀 렌더러 기능을 추가하는 하위 섹션의 지침으로 구성됩니다.
이렇게 하면 LLM의 기본 지식을 통해 얻은 일반적인 정보를 권장 접근 방식이나 구현 세부 사항과 관련된 자체 소스의 특정 Unity 정보로 효율적으로 전환할 수 있습니다. LLM을 사용할 때 가끔 부정확한 정보가 발생하는 것은 어느 정도 불가피하지만, Unity 시스템은 신뢰할 수 있는 Unity 정보를 기반으로 하여 그 빈도를 최소화하도록 구축되었습니다.
유니티는 작업별 모델로 구성된 광범위한 생태계를 개발하기 위해 노력하고 있습니다. 에디터와의 상호 운용성을 확장함에 따라 사용자의 요구 사항을 더 잘 충족할 수 있도록 워크플로를 가속화하고자 합니다. 이를 위해서는 연구 및 산업 발전에 빠르게 적응하고 빠르게 실험할 수 있는 문화를 포용하고 육성하는 것이 핵심이라고 생각합니다.
Muse Chat은 에디터에서 AI 기반 제작의 동반자 역할을 합니다. 현재 에디터에서 전체 계층 구조(Hierarchy)와 프로젝트 창, 게임 오브젝트 관련 코드를 포함하여 컨텍스트의 일부로 선택할 수 있는 항목을 확장하고 있습니다. 또한 광범위한 시스템 개선에 투자하여 Unity 정보 및 코드 생성에 대한 성능 벤치마크를 개선하고, 에이전트 동작이 활성화되어 에디터에서 Muse가 사용자를 대신하여 작업을 수행할 수 있는 미래에 대비하고 있습니다.
GDC에서는 다섯 가지 Muse 기능을 모두 함께 사용하여 URP 샘플 프로젝트의 정원 씬에서 게임 루프를 커스터마이즈하는 방법을 선보였습니다. ‘Unity Muse: AI로 Unity 에디터에서 프로토타이핑 가속화’(영어) 세션에서 Muse의 모든 기능을 사용하여 프로젝트 씬과 게임플레이를 빠르게 커스터마이즈하는 방법을 알아보세요. Muse 기능 간의 상호 운용성은 Muse Chat에 새로운 개선이 더해지며 더욱 향상될 것입니다.
더 손쉽게 Muse 무료 체험을 시작하고 프로젝트에 Muse 패키지를 추가할 수 있도록 Muse 온보딩 경험을 업데이트했습니다. 새로운 Muse 탐색 페이지에서 출발해, 토론에서 최신 기능 및 개선 사항에 대해 어떻게 생각하는지 알려 주세요.