ControlNet 與 StarCoder:Roblox 在生成式人工智慧領域的研究進展

我們致力於在所有領域(包括人工智慧(AI))進行負責任且積極參與社群的研究。我們透過透明度、外部驗證,以及透過合作與贊助支持學術機構來實現此目標。這種做法使我們能夠加速在三大重點領域——生成式 AI、資料中心擴展及網路安全——取得最重大的進展。 今日,我們將分享兩個生成式 AI 研究專案的洞見與成果。ControlNet 是一個開源神經網路,透過為影像生成模型增添條件控制功能,以產生更精準的影像輸出。StarCoder 則是一款用於程式碼生成的頂尖開源大型語言模型(LLM)。
這兩項計畫皆為學術界與產業界的合作成果,且均致力於為我們的創作者——3D 藝術家與程式設計師——打造功能更為強大的工具。最重要的是,這與我們透過顛覆性研究進行長遠投資的使命相契合,這些計畫顯示出在基礎科學理解以及對 AI 應用控制方面的進展。我們相信這項工作將對 Roblox 的未來以及整個領域產生重大影響,並自豪地公開分享這些成果。
ControlNet
近期的人工智慧突破——特別是運用深度神經網路的數據驅動機器學習(ML)方法——已推動創作工具取得新進展。這些進展包括我們免費工具 Roblox Studio 中已公開提供的「程式碼輔助」與「材質生成器」功能。 現代生成式 AI 系統包含稱為「模型」的資料結構,這些模型是透過數十億次訓練運算所精煉而成的。當今最強大的模型屬於多模態系統,意即它們是透過文字、圖像和音訊等多種媒體的混合資料進行訓練。這使它們能夠找出跨媒體的共通底層意涵,而非僅針對資料集中的特定元素(例如色彩組合或拼寫)產生過度擬合。
這些新型 AI 系統具備強大的表達能力,但這種能力主要透過「提示工程」來引導。所謂提示工程,簡而言之就是調整輸入文字,類似於當搜尋引擎的查詢結果不如預期時,對查詢內容進行微調。雖然這可能是探索無指引聊天機器人等新技術的趣味方式,但並非創建內容的高效或有效途徑。 創作者真正需要的,是能夠透過主動控制而非憑空猜測來有效運用的強大工具。
ControlNet 專案正是為解決部分挑戰而邁出的一步。它提供了一種高效方式,能利用 Stable Diffusion 等大型預訓練 AI 模型的強大能力,且無需依賴提示工程。ControlNet 透過允許藝術家提供超越純文字提示的額外輸入條件,從而增強控制力。Roblox 研究員暨史丹佛大學教授 Maneesh Agrawala,以及史丹佛大學研究員 Lvmin Zhang,將我們共同的 ControlNet 專案目標概括為:
- 開發更優質的生成式 AI 工具使用者介面。超越晦澀難懂的提示字串操作,轉而建立更自然的創意概念傳達方式。
- 提供更精確的空間控制,不僅止於生成「類似某張圖片」或「某種風格的圖片」,而是能精準實現創作者腦海中的具體畫面。
- 將生成式 AI 的訓練轉變為更節省運算資源的流程,使其執行速度更快、所需記憶體更少,且耗電量更低。
- 將圖像生成式 AI 擴展為可重複使用的建構模組,使其能與標準化的圖像處理及 3D 渲染流程無縫整合。
透過允許創作者提供額外的圖像來進行空間控制,ControlNet 賦予了對最終生成圖像更大的掌控力。例如,在現有的文字轉圖像生成器上輸入「帶有鹿角的雄鹿」這個提示,會產生多種多樣的圖像,如下所示:

這些透過先前 AI 解決方案生成的圖像雖具吸引力,但遺憾的是本質上純屬隨機產出——缺乏任何控制。在那些舊有的圖像生成系統中,除了修改文字提示外,根本無法引導輸出結果。
透過 ControlNet,創作者現在擁有更強大的掌控力。使用 ControlNet 的其中一種方式,是同時提供提示語與參考圖片,以決定應遵循的整體輪廓。在此情況下,生成的圖片仍會呈現多樣性,但關鍵在於能保留指定的輪廓:

創作者亦可指定一組邊緣、一張完全沒有提示文字的圖片,或透過其他多種方式向系統提供具表現力的輸入。
為了建立 ControlNet,我們將大型擴散模型網路中的權重複製為兩個版本。其中一個是可訓練網路(負責提供控制功能;即「ControlNet」),另一個則是鎖定網路。鎖定網路保留了從數十億張圖像中學習到的能力,可以是任何現有的圖像生成器。接著,我們利用特定任務的資料集來訓練可訓練網路,使其從額外的圖像中學習條件控制。 可訓練與鎖定版本透過一種獨特的卷積層相連,我們稱之為「零卷積」;在此卷積層中,卷積權重會以學習方式從零逐步增長至最佳化參數,這意味著它們初期並無影響力,而系統會推導出對鎖定網路施加的最佳控制程度。
由於原始權重透過鎖定網路得以保留,該模型能良好地適應各種規模的訓練資料集。而零卷積層使此過程大幅加速——其效率更接近微調擴散模型,而非從頭訓練新層。
我們已針對圖像生成對這項技術進行了廣泛驗證。ControlNet 不僅能提升輸出圖像的品質,還能提高針對特定任務訓練網路的效率,從而使其能夠大規模部署,服務於數百萬創作者。實驗顯示,相較於需要完全重新訓練模型的替代方案,ControlNet 的效率提升最高可達 10 倍。 這項效率至關重要,因為相較於傳統軟體開發,建立新模型的過程既耗時又耗費資源。提升訓練效率不僅能節省電力、降低成本,更能加快新增功能的開發速度。
ControlNet 的獨特架構使其能有效處理各種規模的訓練資料集,並適用於多種不同類型的媒體。研究顯示,ControlNet 能支援多種控制模式,包括照片、手繪塗鴉以及 OpenPose 姿勢偵測。 我們相信 ControlNet 能應用於多種媒體類型,用於生成式 AI 內容。這項研究是開放且公開的,供社群進行實驗與進一步開發,我們也將隨著研究進展持續分享更多資訊。
StarCoder
生成式人工智慧可應用於生成圖像、音訊、文字、程式原始碼,或任何其他形式的豐富媒體。然而,在不同媒體類型中,最成功的應用往往是那些輸出結果需經主觀判斷的領域。例如,一張圖像若能吸引人類觀看者的目光,即被視為成功。 若整體畫面極具吸引力,圖像中的某些瑕疵——例如邊緣的怪異細節,甚至手部多出一根手指——往往不會被察覺。同樣地,一首詩或一篇短篇小說或許存在文法錯誤或邏輯跳躍,但若核心意境引人入勝,我們通常會對此予以寬容。
另一種理解主觀標準的方式是:結果空間是連續的。某個結果可能優於另一個,但並不存在某個具體的門檻,使結果在該處被視為完全可接受或不可接受。對於其他領域和媒體形式,其產出則是客觀評判的。 舉例來說,生成式 AI 程式設計助理產出的原始碼,要麼正確,要麼不正確。若程式碼無法通過測試,即視為失敗,即使其與有效解法的程式碼極為相似。這屬於離散結果空間。要在離散空間中取得成功較為困難,原因不僅在於標準更為嚴格,更在於無法逐步接近理想解法——程式碼可能始終無法運作,直到某個瞬間突然成功。
用於文字輸出的 LLM 在聊天機器人等主觀且連續的應用中表現優異。它們在生成英語和法語等多種人類語言的散文時,似乎也表現出色。然而,現有的 LLM 在處理程式語言時,似乎不如處理人類語言那樣有效。程式碼是一種數學形式,其表達意義的方式與自然語言截然不同且更為客觀。它屬於離散結果空間,而非連續結果空間。 為了為 Roblox 創作者實現最高品質的程式語言程式碼生成,我們需要能在此離散、客觀空間中有效運作的 LLM 應用方法。我們還需要強健的方法,以獨立於特定語言語法(如 Lua、JavaScript 或 Python)的方式來表達程式碼功能。
StarCoder 是一款嶄新的頂尖開源程式碼生成大型語言模型(LLM),不僅是解決此技術挑戰的重要突破,更是真正開放給所有人使用的 LLM。 StarCoder 是 BigCode 研究聯盟的成果之一,該聯盟匯聚了來自學術界與產業界研究實驗室的 600 多名成員。Roblox 研究員暨東北大學教授 Arjun Guha 協助領導此團隊開發了 StarCoder。此次首度發表的研究成果專注於程式碼層面,鑑於主觀方法已取得相對成功,此領域正是該領域最亟需新突破的範疇。
為了透過大型語言模型(LLM)提供生成式人工智慧,並支持更廣泛的人工智慧生態系統與 Roblox 社群,我們需要僅使用經適當授權且負責任地收集的資料集所訓練的模型。這些模型還應具備無限制的授權條款,以便任何人都能使用、基於其進行開發,並回饋至生態系統。目前,最強大的大型語言模型多屬專有技術,或僅限於特定形式的商業用途授權,這阻礙或限制了研究人員對模型本身進行實驗的能力。 相較之下,StarCoder 是一個真正開放的模型,由產學界研究人員聯盟共同打造,並授予無限制的授權,可供任何規模的商業應用。StarCoder 完全基於負責任地收集且具備適當授權的內容進行訓練。該模型最初是透過公開程式碼進行訓練,並為不希望其程式碼被用於訓練的人士提供退出機制。
目前,StarCoder 支援 86 種不同的程式語言,包括 Python、C++ 和 Java。截至論文發表之時,其表現已超越所有支援多語言的開放原始碼大型語言模型(LLM),甚至能與許多封閉的專有模型一較高下。
StarCoder 大型語言模型雖是對生態系統的一項貢獻,但我們的研究目標遠不止於此。這項研究最重大的影響在於推動客觀與主觀多模態模型(包含程式碼、文字、圖像、語音及影片)的語義建模,並透過領域轉移技術提升訓練效率。我們亦期望能深入理解生成式 AI 在源碼生成等客觀任務中的可維護性與可控性。 新興技術的引人入勝的展示,與能為使用者社群帶來價值、且安全、可靠、高效的產品之間,存在著巨大差異。針對我們的機器學習模型,我們針對記憶體佔用、節能及執行時間進行了效能優化。我們還建置了堅實的基礎架構,透過軟體將 AI 核心與系統其他部分相連,並開發出無縫的系統,以便在新增功能時能頻繁更新。
匯聚 Roblox 的科學家與工程師,並結合科學界中最傑出的智囊,是我們追求突破性技術的關鍵要素。我們很榮幸能分享這些初步成果,並邀請研究界與我們攜手合作,在此基礎上共同推進技術發展。


