ControlNetとStarCoder:ジェネレーティブAIに向けたRobloxの研究の進展

当社は、人工知能(AI)を含むあらゆる分野において、責任ある姿勢とコミュニティとの連携を重視した研究に深く取り組んでいます。これを実現するために、透明性の確保、外部による検証、そして学術機関との協業や支援を行っています。このアプローチにより、生成AI、データセンターの拡張、オンラインの安全性という3つの重点分野において、最大の進歩を加速させることが可能になります。 本日は、当社の生成AI研究プロジェクトのうち2つに関する知見と成果をご紹介します。ControlNetは、画像生成モデルに条件付き制御機能を追加し、より精緻な画像出力を可能にするオープンソースのニューラルネットワークです。StarCoderは、コード生成のための最先端のオープンソース大規模言語モデル(LLM)です。
両プロジェクトとも、学術界と産業界の共同研究によるものです。また、3Dアーティストやプログラマーといったクリエイターのために、飛躍的に強力なツールを提供することに焦点を当てています。最も重要な点として、変革的な研究を通じて長期的な視点で投資するという当社のミッションに沿い、これらのプロジェクトは、多くのアプリケーションにおけるAIの基礎的な科学的理解と制御の進歩を示す兆しを見せています。この取り組みは、Robloxの未来およびこの分野全体に大きな影響を与える可能性があると確信しており、これを公開できることを誇りに思います。
ControlNet
最近のAIにおける画期的な進展、特に深層ニューラルネットワークを用いたデータ駆動型の機械学習(ML)手法は、創作ツールの新たな進化を牽引してきました。こうした進化には、当社の無料ツール「Roblox Studio」で一般公開されている「Code Assist」や「Material Generator」といった機能も含まれます。 現代の生成AIシステムには、「モデル」と呼ばれるデータ構造が含まれており、数十億回に及ぶ学習処理を通じて洗練されています。現在最も強力なモデルはマルチモーダルであり、テキスト、画像、音声といった多様なメディアの混合データを用いて学習されています。これにより、色調や綴りといったデータセットの特定の要素に過学習するのではなく、メディア全体に共通する根本的な意味を見出すことが可能になります。
これらの新しいAIシステムは高い表現力を備えていますが、その力は主に「プロンプトエンジニアリング」を通じて制御されます。これは、期待した結果が得られなかった場合に検索エンジンのクエリを調整するのと同様に、単にテキスト入力を変更することを意味します。これは、指示のないチャットボットのような新しい技術を試すには魅力的な方法かもしれませんが、コンテンツを作成する上で効率的かつ効果的な方法とは言えません。 クリエイターには、当て推量ではなく、能動的な制御を通じて効果的に活用できる強力なツールが必要です。
ControlNetプロジェクトは、こうした課題の解決に向けた一歩です。このプロジェクトは、プロンプトエンジニアリングに依存することなく、Stable Diffusionのような大規模な事前学習済みAIモデルの力を効率的に活用する方法を提供します。ControlNetは、アーティストが単なるテキストプロンプトだけでなく、追加の入力条件を指定できるようにすることで、制御性を高めます。Robloxの研究者でありスタンフォード大学教授のManeesh Agrawala氏と、スタンフォード大学の研究者Lvmin Zhang氏は、共同プロジェクトであるControlNetの目標を次のように定めています:
- 生成AIツールのための、より優れたユーザーインターフェースを開発する。難解なプロンプト操作の枠を超え、アイデアや創造的なコンセプトをより自然な方法で伝える仕組みを構築する。
- より精密な空間制御を提供し、「~のような画像」や「~のスタイルの画像」といった表現にとどまらず、クリエイターが頭の中に描いているイメージを正確に具現化できるようにする。
- 生成AIのトレーニングを、より高速に実行され、より少ないメモリと電力で済む、計算効率の高いプロセスへと変革する。
- 画像生成AIを再利用可能な構成要素へと拡張する。これにより、標準化された画像処理や3Dレンダリングのパイプラインに統合できるようになる。
ControlNetは、クリエイターが空間制御のために追加の画像を提供できるようにすることで、生成される最終画像に対する制御性を高めます。例えば、既存のテキストから画像への生成ツールで「角のある雄の鹿」というプロンプトを入力すると、以下に示すように多種多様な画像が生成されました:

以前のAIソリューションで生成されたこれらの画像は魅力的ですが、残念ながら本質的に恣意的な結果であり、制御が効きません。以前の画像生成システムでは、テキストプロンプトを修正する以外に出力を誘導する方法がありませんでした。
ControlNet を使えば、制作者ははるかに大きな力を手に入れることができます。ControlNet の活用法の一つとして、プロンプトと、模倣すべき大まかな形状を示すソース画像の両方を指定する方法があります。この場合、生成される画像には依然として多様性がありますが、重要な点として、指定された形状が維持されることになります:

作成者は、エッジのセットや、プロンプトを一切含まない画像、あるいはシステムに表現力豊かな入力を提供するその他の多くの方法を指定することもできた。
ControlNetを作成するには、大規模な拡散モデルのネットワーク内の重みを2つのバージョンに複製します。1つは学習可能なネットワーク(これが制御を提供し、「ControlNet」となります)で、もう1つはロックされたネットワークです。ロックされたネットワークは、数十億枚の画像から学習された能力を保持しており、既存の任意の画像生成モデルでも構いません。その後、タスク固有のデータセットを用いて学習可能なネットワークを訓練し、追加された画像からの条件付き制御を学習させます。 学習可能ネットワークとロックされたネットワークは、「ゼロ畳み込み」と呼ぶ独自の畳み込み層で接続されています。この層では、畳み込み重みが学習された方法でゼロから最適化されたパラメータへと段階的に増加します。つまり、初期段階では重みに影響力はなく、システムがロックされたネットワークに及ぼすべき最適な制御レベルを導き出すのです。
ロックされたネットワークを通じて元の重みが保持されるため、本モデルは様々な規模のトレーニングデータセットで良好に動作します。また、ゼロ畳み込み層により処理が大幅に高速化され、新しい層をゼロから学習させるよりも、拡散モデルの微調整に近いプロセスが実現されます。
私たちは、この手法について画像生成において広範な検証を行いました。ControlNetは、出力画像の品質を向上させるだけではありません。特定のタスクに向けたネットワークのトレーニングをより効率的にし、それによって数百万人のクリエイターに向けて大規模に展開することを現実的なものにします。実験では、ControlNetはモデルを完全に再トレーニングする必要がある他のシナリオと比較して、最大10倍の効率向上を実現しました。 この効率性は極めて重要です。なぜなら、新しいモデルの作成プロセスは、従来のソフトウェア開発に比べて時間とリソースを大量に消費するからです。トレーニングの効率化は、電力消費の削減、コストの低減、そして新機能の追加速度の向上につながります。
ControlNetの独自の構造により、さまざまなサイズのトレーニングデータセットや、多種多様なメディア形式で良好に機能します。ControlNetは、写真、手書きのスケッチ、OpenPoseによる姿勢検出など、多種多様な制御モダリティに対応することが実証されています。 ControlNetは、生成AIコンテンツのための多種多様なメディアに応用可能であると私たちは考えています。本研究はオープンに公開されており、コミュニティが実験やさらなる発展に取り組めるようになっています。今後も、ControlNetを用いた新たな発見があるたびに、情報を発信し続けていきます。
StarCoder
生成AIは、画像、音声、テキスト、プログラムのソースコード、あるいはその他のあらゆる形式のリッチメディアの生成に応用可能です。しかし、メディアの種類を問わず、最も成功しているアプリケーションは、その出力が主観的に評価されるものに限られる傾向があります。例えば、画像が成功するかどうかは、人間の鑑賞者に訴求できるかどうかにかかっています。 画像の端に奇妙な特徴があったり、手に指が1本余分にあったりするといった特定の誤りでも、画像全体が魅力的であれば気づかれないことがあります。同様に、詩や短編小説には文法的な誤りや論理の飛躍があるかもしれませんが、その要旨が魅力的であれば、私たちはそれらを許容しがちです。
主観的な基準を考える別の方法は、結果の空間が連続的であるという点です。ある結果が別の結果より優れていることはあっても、結果が完全に受け入れられるか、あるいは受け入れられないかの明確な境界線は存在しません。他の分野やメディア形態では、出力は客観的に評価されます。 例えば、生成AIプログラミングアシスタントが生成したソースコードは、正しいか正しくないかのどちらかです。たとえ有効な解決策のコードに似ていても、テストに合格できなければ失敗となります。これは離散的な結果空間です。離散的な空間で成功するのはより困難です。なぜなら、基準がより厳格であるだけでなく、良い解決策に段階的に近づくことができないからです。コードは、突然動作するようになるまで、ずっと壊れたままなのです。
テキスト出力に用いられるLLMは、チャットボットのような主観的で連続的な用途では良好に機能します。また、英語やフランス語など、多くの自然言語における文章生成においても有効であるようです。しかし、既存のLLMは、自然言語ほどプログラミング言語に対しては効果を発揮していないようです。コードは数学の一形態であり、自然言語とは全く異なる、客観的な意味表現の方法です。それは連続的な結果空間ではなく、離散的な結果空間なのです。 Robloxクリエイター向けに最高品質のプログラミング言語コード生成を実現するには、この離散的で客観的な空間において効果的に機能するLLMの適用手法が必要です。また、Lua、JavaScript、Pythonといった特定の言語構文に依存せず、コードの機能を表現するための堅牢な手法も求められています。
コード生成のための最新鋭のオープンソースLLMであるStarCoderは、この技術的課題に対する大きな進歩であり、誰もが利用できる真にオープンなLLMです。 StarCoderは、学術界および産業界の研究機関から600名以上のメンバーが参加する研究コンソーシアム「BigCode」の成果の一つです。Robloxの研究者でありノースイースタン大学の教授であるArjun Guha氏は、このチームを率いてStarCoderの開発を主導しました。今回初めて公開された成果は、コードの側面のみを対象としています。これは、主観的な手法が比較的成功を収めている現状において、この分野が最も新たな成長を必要としている領域だからです。
より広範なAIエコシステムとRobloxコミュニティを支えるLLMを通じて生成AIを提供するためには、適切にライセンスされ、責任を持って収集されたデータセットのみで学習されたモデルが必要です。また、誰もがそれらを利用し、その上に構築し、エコシステムに還元できるよう、制限のないライセンスが適用されているべきです。現在、最も強力なLLMはプロプライエタリであるか、限定的な商用利用のみが許可されており、これにより研究者がモデル自体を用いて実験を行う能力が阻害されたり制限されたりしています。 これに対し、StarCoderは産業界と学術界の研究者による連合によって作成された真にオープンなモデルであり、あらゆる規模での商用利用に対して制限のないライセンスが付与されています。StarCoderは、責任を持って収集され、適切にライセンスされたコンテンツのみを用いて学習されています。このモデルは当初、公開されているコードを用いて学習されましたが、自身のコードが学習に使用されることを望まない人のために、オプトアウトの手続きも用意されています。
現在、StarCoderはPython、C++、Javaを含む86種類のプログラミング言語に対応しています。論文発表時点において、StarCoderは多言語に対応するすべてのオープンソースLLMを上回る性能を示しており、多くのクローズドなプロプライエタリモデルと互角の性能を発揮していました。
StarCoder LLMはエコシステムへの貢献ですが、私たちの研究目標はさらに深いところにあります。本研究の最大の影響は、コード、テキスト、画像、音声、動画を含む客観的および主観的なマルチモーダルモデルの意味論的モデリングを推進し、ドメイン転移技術を通じてトレーニング効率を高めることにあります。また、ソースコード生成などの客観的タスクにおける生成AIの保守性と制御性について、深い知見を得られることも期待しています。 新興技術の興味深いデモンストレーションと、ユーザーコミュニティに価値をもたらす安全で信頼性が高く効率的な製品との間には大きな違いがあります。当社のMLモデルでは、メモリ使用量、省電力性、実行時間の観点からパフォーマンスを最適化しています。また、堅牢なインフラストラクチャを構築し、AIコアをシステム全体と接続するソフトウェアで囲み、新機能の追加に伴う頻繁な更新に対応できるシームレスなシステムを開発しました。
Robloxの科学者やエンジニアと、科学界の最も優秀な頭脳を結集させることは、画期的な技術を追求する上で重要な要素です。私たちはこれらの初期成果を共有できることを誇りに思い、研究コミュニティの皆様に、私たちと協力し、これらの進歩をさらに発展させていくことを呼びかけます。


