ControlNet 및 StarCoder: 생성형 AI를 위한 로블록스 연구 성과

저희는 인공지능(AI)을 포함한 모든 분야에서 책임감 있고 지역사회와 소통하는 연구를 추구하는 데 전념하고 있습니다. 이를 위해 투명성을 확보하고, 외부 검증을 거치며, 협력 및 후원을 통해 학술 기관을 지원합니다. 이러한 접근 방식을 통해 생성형 AI, 데이터 센터 확장, 온라인 안전이라는 세 가지 중점 분야에서 가장 큰 발전을 가속화할 수 있습니다. 오늘은 저희의 생성형 AI 연구 프로젝트 중 두 가지에 대한 통찰과 결과를 공유하고자 합니다. ControlNet은 더 정밀한 이미지 출력을 위해 이미지 생성 모델에 조건부 제어를 추가하는 오픈소스 신경망입니다. StarCoder는 코드 생성을 위한 최첨단 오픈소스 대규모 언어 모델(LLM)입니다.
두 프로젝트 모두 학계와 산업계의 협력을 통해 이루어졌습니다. 또한 두 프로젝트 모두 3D 아티스트와 프로그래머 등 크리에이터들을 위한 획기적으로 강력한 도구를 개발하는 데 중점을 두고 있습니다. 무엇보다도, 혁신적인 연구를 통해 장기적인 관점에 투자하겠다는 우리의 사명과 부합하여, 이 프로젝트들은 다양한 응용 분야를 위한 AI에 대한 근본적인 과학적 이해와 제어 능력의 발전을 보여주고 있습니다. 우리는 이 연구가 로블록스(Roblox)와 해당 분야 전체의 미래에 중대한 영향을 미칠 수 있다고 믿으며, 이를 공개적으로 공유하게 되어 자랑스럽게 생각합니다.
ControlNet
최근 AI 분야의 획기적인 발전, 특히 딥 뉴럴 네트워크를 활용한 데이터 기반 머신러닝(ML) 기법은 창작 도구의 새로운 진보를 이끌었습니다. 이러한 진보에는 무료 도구인 로블록스 스튜디오(Roblox Studio)에서 공개적으로 이용할 수 있는 '코드 어시스트(Code Assist)' 및 '머티리얼 제너레이터(Material Generator)' 기능이 포함됩니다. 현대 생성형 AI 시스템은 수십억 번의 훈련 과정을 통해 정교해진 '모델'이라는 데이터 구조를 포함합니다. 오늘날 가장 강력한 모델들은 다중 모달(multimodal)로, 텍스트, 이미지, 오디오와 같은 다양한 매체를 혼합하여 훈련됩니다. 이를 통해 모델은 색상 팔레트나 철자법 같은 데이터 세트의 특정 요소에 과적합(overfitting)되는 대신, 매체 전반에 걸쳐 공통된 근본적인 의미를 찾아낼 수 있습니다.
이러한 새로운 AI 시스템은 상당한 표현력을 지니고 있지만, 그 힘은 주로 ‘프롬프트 엔지니어링’을 통해 발휘됩니다. 이는 기대했던 결과를 얻지 못했을 때 검색 엔진 쿼리를 수정하는 것과 유사하게, 단순히 입력 텍스트를 변경하는 것을 의미합니다. 비지도형 챗봇과 같은 신기술을 체험해 보는 데는 흥미로운 방법일 수 있지만, 콘텐츠를 제작하는 데 있어서는 효율적이거나 효과적인 방식은 아닙니다. 창작자들은 추측에 의존하기보다는 능동적인 제어를 통해 효과적으로 활용할 수 있는 강력한 도구가 필요합니다.
ControlNet 프로젝트는 이러한 과제 중 일부를 해결하기 위한 한 걸음입니다. 이 프로젝트는 프롬프트 엔지니어링에 의존하지 않고도 Stable Diffusion과 같은 대규모 사전 훈련된 AI 모델의 힘을 효율적으로 활용할 수 있는 방법을 제공합니다. ControlNet은 아티스트가 단순한 텍스트 프롬프트를 넘어 추가적인 입력 조건을 제공할 수 있도록 함으로써 제어력을 높여줍니다. 로블록스(Roblox) 연구원이자 스탠포드 대학교 교수인 마니쉬 아그라왈라(Maneesh Agrawala)와 스탠포드 연구원 룽민 장(Lvmin Zhang)은 공동 ControlNet 프로젝트의 목표를 다음과 같이 정의합니다:
- 생성형 AI 도구를 위한 더 나은 사용자 인터페이스를 개발한다. 난해한 프롬프트 조작을 넘어, 아이디어나 창의적인 개념을 전달하는 더 자연스러운 방식을 기반으로 구축한다.
- "~와 비슷한 이미지"나 "~ 스타일의 이미지"를 만드는 것을 넘어, 창작자가 머릿속에 그린 이미지를 정확히 구현할 수 있도록 더 정밀한 공간적 제어 기능을 제공합니다.
- 생성형 AI 훈련을 더 빠르게 실행되고, 더 적은 메모리를 필요로 하며, 전력 소비가 적은, 연산 효율이 더 높은 프로세스로 전환한다.
- 이미지 생성형 AI를 재사용 가능한 빌딩 블록으로 확장합니다. 이를 통해 표준화된 이미지 처리 및 3D 렌더링 파이프라인과 통합할 수 있습니다.
ControlNet은 창작자가 공간 제어를 위해 추가 이미지를 제공할 수 있도록 함으로써, 최종 생성된 이미지에 대한 더 큰 제어력을 부여합니다. 예를 들어, 기존의 텍스트-이미지 생성기에 “뿔이 있는 수컷 사슴”이라는 프롬프트를 입력하면 아래와 같이 매우 다양한 이미지가 생성되었습니다:

기존 AI 솔루션으로 생성된 이러한 이미지들은 매력적이지만, 안타깝게도 본질적으로 임의적인 결과물일 뿐입니다. 제어할 수 있는 방법이 없습니다. 텍스트 프롬프트를 수정하는 것 외에는, 기존 이미지 생성 시스템에서 출력물을 유도할 방법이 없습니다.
ControlNet을 사용하면 제작자는 훨씬 더 많은 제어력을 갖게 됩니다. ControlNet을 활용하는 한 가지 방법은 프롬프트와 함께 따라야 할 일반적인 형태를 결정하는 소스 이미지를 함께 제공하는 것입니다. 이 경우 생성된 이미지는 여전히 다양성을 유지하되, 무엇보다도 지정된 형태를 그대로 유지하게 됩니다:

제작자는 에지 세트나 프롬프트가 전혀 없는 이미지, 또는 시스템에 표현력 있는 입력을 제공하는 다양한 다른 방법을 지정할 수도 있었습니다.
ControlNet을 생성하기 위해, 우리는 대규모 확산 모델 네트워크 내의 가중치를 두 가지 버전으로 복제합니다. 하나는 훈련 가능한 네트워크(이것이 제어 기능을 제공하며, 바로 “ControlNet”입니다)이고, 다른 하나는 고정된 네트워크입니다. 고정된 네트워크는 수십억 장의 이미지에서 학습된 능력을 보존하며, 기존의 어떤 이미지 생성기라도 될 수 있습니다. 그런 다음 우리는 추가된 이미지로부터 조건부 제어를 학습하기 위해 작업별 데이터 세트로 훈련 가능한 네트워크를 훈련시킵니다. 훈련 가능 네트워크와 고정 네트워크는 우리가 '제로 컨볼루션(zero convolution)'이라 부르는 독특한 유형의 컨볼루션 레이어로 연결됩니다. 이 레이어에서 컨볼루션 가중치는 학습된 방식으로 0에서 최적화된 매개변수로 점진적으로 증가합니다. 즉, 초기에는 아무런 영향도 미치지 않으며, 시스템이 고정 네트워크에 가할 최적의 제어 수준을 도출해 냅니다.
잠금 네트워크를 통해 원래 가중치가 보존되므로, 이 모델은 다양한 규모의 훈련 데이터 세트에서도 잘 작동합니다. 또한 제로 컨볼루션 레이어는 이 과정을 훨씬 더 빠르게 만들어주며, 이는 새로운 레이어를 처음부터 훈련시키는 것보다 확산 모델의 미세 조정(fine-tuning)에 더 가깝습니다.
우리는 이미지 생성을 위해 이 기법에 대한 광범위한 검증을 수행했습니다. ControlNet은 단순히 출력 이미지의 품질을 향상시키는 데 그치지 않습니다. 또한 특정 작업을 위한 네트워크 훈련을 더욱 효율적으로 만들어, 수백만 명의 크리에이터를 위해 대규모로 배포하는 데 실용적입니다. 실험 결과, ControlNet은 모델을 완전히 재훈련해야 하는 다른 시나리오에 비해 최대 10배의 효율성 향상을 제공합니다. 이러한 효율성은 매우 중요합니다. 새로운 모델을 생성하는 과정은 기존 소프트웨어 개발에 비해 시간과 자원이 많이 소요되기 때문입니다. 훈련 효율을 높이면 전력을 절약하고 비용을 절감하며, 새로운 기능을 추가할 수 있는 속도를 높일 수 있습니다.
ControlNet의 독특한 구조 덕분에 다양한 규모의 훈련 데이터 세트와 여러 유형의 미디어에서 효과적으로 작동합니다. ControlNet은 사진, 손으로 그린 스케치, OpenPose 자세 감지 등 다양한 제어 모달리티와 호환되는 것으로 입증되었습니다. 저희는 ControlNet이 생성형 AI 콘텐츠를 위한 다양한 유형의 미디어에 적용될 수 있다고 믿습니다. 이 연구는 커뮤니티가 실험하고 발전시킬 수 있도록 공개되어 있으며, 향후 추가적인 발견이 있을 때마다 계속해서 정보를 공유할 예정입니다.
StarCoder
생성형 AI는 이미지, 오디오, 텍스트, 프로그램 소스 코드 또는 기타 모든 형태의 리치 미디어를 생성하는 데 적용될 수 있습니다. 그러나 다양한 미디어 전반에 걸쳐 가장 큰 성공을 거둔 응용 분야는 대개 결과물이 주관적으로 평가되는 분야인 경향이 있습니다. 예를 들어, 이미지는 인간 시청자에게 호소력을 줄 때 성공한 것으로 간주됩니다. 이미지의 가장자리에서 이상한 특징이 나타나거나 손에 손가락이 하나 더 있는 것과 같은 특정 오류는, 전체적인 이미지가 매력적이라면 눈에 띄지 않을 수 있습니다. 마찬가지로, 시나 단편 소설에 문법 오류나 논리적 비약이 있을 수 있지만, 요지가 매력적이라면 우리는 이를 용서하는 경향이 있습니다.
주관적 기준을 고려하는 또 다른 방식은 결과 공간이 연속적이라는 점입니다. 어떤 결과가 다른 결과보다 나을 수는 있지만, 결과가 완전히 수용 가능하거나 수용 불가능한 특정 기준점은 존재하지 않습니다. 다른 분야나 미디어 형태에서는 결과물이 객관적으로 평가됩니다. 예를 들어, 생성형 AI 프로그래밍 보조 도구가 생성한 소스 코드는 올바르거나 그렇지 않은 것 중 하나입니다. 코드가 테스트를 통과하지 못하면, 유효한 해결책의 코드와 유사하더라도 실패한 것입니다. 이는 이산적인 결과 공간입니다. 이산적인 공간에서 성공하기는 더 어렵습니다. 기준이 더 엄격할 뿐만 아니라, 좋은 해결책에 점진적으로 접근할 수 없기 때문입니다. 즉, 코드는 갑자기 작동하기 전까지는 완전히 깨진 상태입니다.
텍스트 출력에 사용되는 대규모 언어 모델(LLM)은 챗봇과 같은 주관적이고 연속적인 응용 분야에서 잘 작동합니다. 또한 영어와 프랑스어 등 많은 인간 언어의 산문 생성에도 효과적인 것으로 보입니다. 그러나 기존 LLM은 이러한 인간 언어만큼 프로그래밍 언어에서는 잘 작동하지 않는 것으로 보입니다. 코드는 자연어와는 매우 다른, 의미를 표현하는 객관적인 방식인 수학의 한 형태입니다. 코드는 연속적인 결과 공간이 아니라 이산적인 결과 공간입니다. Roblox 크리에이터를 위해 최고 품질의 프로그래밍 언어 코드 생성을 달성하려면, 이러한 이산적이고 객관적인 공간에서 효과적으로 작동할 수 있는 LLM 적용 방법이 필요합니다. 또한 Lua, JavaScript, Python과 같은 특정 언어 구문과 독립적으로 코드 기능을 표현할 수 있는 견고한 방법도 필요합니다.
코드 생성을 위한 최신 오픈소스 LLM인 StarCoder는 이러한 기술적 과제를 해결하는 데 있어 중대한 진전이며, 누구나 이용할 수 있는 진정한 의미의 오픈 LLM입니다. StarCoder는 학계 및 산업계 연구소 소속 600명 이상의 구성원이 참여하는 BigCode 연구 컨소시엄의 성과 중 하나입니다. 로블록스 연구원이자 노스이스턴 대학교 교수인 아르준 구하(Arjun Guha)는 이 팀을 이끌며 StarCoder 개발을 주도했습니다. 이번에 처음 발표된 연구 결과는 코드 측면에만 집중하고 있는데, 이는 주관적 방법론이 상대적으로 성공을 거둔 만큼 해당 분야에서 새로운 성장이 가장 시급한 영역입니다.
더 큰 AI 생태계와 로블록스 커뮤니티를 지원하는 LLM을 통해 생성형 AI를 제공하려면, 적절하게 라이선스가 부여되고 책임감 있게 수집된 데이터 세트로만 훈련된 모델이 필요합니다. 또한 누구나 이를 사용하고, 이를 기반으로 구축하며, 생태계에 기여할 수 있도록 제한 없는 라이선스를 가져야 합니다. 오늘날 가장 강력한 LLM들은 독점적이거나 제한된 형태의 상업적 사용만 허용하는 라이선스를 가지고 있어, 연구자들이 모델 자체를 실험할 수 있는 능력을 제한하거나 금지하고 있습니다. 반면, StarCoder는 산업계와 학계 연구자들의 연합을 통해 개발된 진정한 오픈 소스 모델로, 규모에 관계없이 상업적 적용을 위한 제한 없는 라이선스를 부여받았습니다. StarCoder는 책임감 있게 수집되고 적절한 라이선스가 부여된 콘텐츠로만 훈련되었습니다. 이 모델은 초기 단계에서 공개된 코드를 기반으로 훈련되었으며, 자신의 코드가 훈련에 사용되는 것을 원하지 않는 사람들을 위해 옵트아웃 절차도 마련되어 있습니다.
현재 StarCoder는 Python, C++, Java를 포함한 86가지의 다양한 프로그래밍 언어를 지원합니다. 논문 발표 시점을 기준으로, 이 모델은 다중 언어를 지원하는 모든 오픈 소스 LLM을 능가했으며, 많은 비공개 독점 모델들과도 경쟁할 수 있는 수준이었습니다.
StarCoder LLM은 생태계에 기여하는 모델이지만, 저희의 연구 목표는 훨씬 더 심오합니다. 이 연구의 가장 큰 영향력은 코드, 텍스트, 이미지, 음성, 비디오를 포함한 객관적 및 주관적 다중 모달 모델의 의미론적 모델링을 발전시키고, 도메인 전이 기법을 통해 훈련 효율성을 높이는 데 있습니다. 또한 소스 코드 생성과 같은 객관적 과제를 위한 생성형 AI의 유지 관리 및 제어 가능성에 대한 깊은 통찰력을 얻을 것으로 기대합니다. 신기술의 흥미로운 시연과 사용자 커뮤니티에 가치를 제공하는 안전하고 신뢰할 수 있으며 효율적인 제품 사이에는 큰 차이가 있습니다. 저희 ML 모델의 경우, 메모리 사용량, 전력 절약, 실행 시간 측면에서 성능을 최적화합니다. 또한 견고한 인프라를 구축하고, AI 코어를 시스템의 나머지 부분과 연결하는 소프트웨어로 둘러싸며, 새로운 기능이 추가될 때 빈번한 업데이트가 가능한 원활한 시스템을 개발했습니다.
로블록스의 과학자 및 엔지니어들이 과학계 최고의 인재들과 협력하는 것은 획기적인 기술을 추구하는 데 있어 핵심 요소입니다. 우리는 이러한 초기 성과를 공유하게 되어 자랑스럽게 생각하며, 연구 커뮤니티가 우리와 협력하여 이러한 진전을 바탕으로 더 발전시켜 나가기를 기대합니다.


