ControlNet ve StarCoder: Üretken Yapay Zeka için Roblox araştırma gelişmeleri

Yapay zeka (AI) dahil olmak üzere tüm alanlarda sorumlu ve topluma duyarlı araştırmalar yürütmeye büyük önem veriyoruz. Bunu şeffaflık, dış doğrulama ve işbirliği ve sponsorluk yoluyla akademik kurumları destekleyerek başarıyoruz. Bu yaklaşım, üç odak alanımızda (üretken yapay zeka, veri merkezi ölçeklendirme ve çevrimiçi güvenlik) en büyük ilerlemeleri daha hızlı elde etmemizi sağlıyor. Bugün, üretken AI araştırma projelerimizden ikisinin içgörülerini ve sonuçlarını paylaşıyoruz. ControlNet, daha hassas görüntü çıktıları elde etmek için görüntü üretme modellerine koşullu kontrol ekleyen açık kaynaklı bir sinir ağıdır. StarCoder ise kod üretimi için son teknoloji ürünü bir açık kaynaklı büyük dil modelidir (LLM).
Her iki proje de akademik ve endüstri işbirlikleridir. Her ikisi de yaratıcılarımız, yani 3D sanatçıları ve programcılar için çok daha güçlü araçlara odaklanmaktadır. En önemlisi, dönüştürücü araştırmalar yoluyla uzun vadeli yatırım yapma misyonumuzla uyumlu olarak, bu projeler birçok uygulama için temel bilimsel anlayış ve yapay zeka kontrolünde ilerlemelere işaret etmektedir. Bu çalışmanın Roblox'un ve genel olarak bu alanın geleceği üzerinde önemli bir etkisi olabileceğine inanıyoruz ve bunu açık bir şekilde paylaşmaktan gurur duyuyoruz.
ControlNet
Son zamanlarda yapay zeka alanında kaydedilen ilerlemeler — özellikle derin sinir ağlarını kullanan veriye dayalı makine öğrenimi (ML) yöntemleri — yaratım araçlarında yeni gelişmelere yol açmıştır. Bu gelişmeler arasında, ücretsiz aracımız Roblox Studio'da herkese açık olan Code Assist ve Material Generator özelliklerimiz de bulunmaktadır. Modern üretken AI sistemleri, milyarlarca eğitim işlemiyle geliştirilen modeller adı verilen veri yapılarını içerir. Günümüzün en güçlü modelleri çok modludur, yani metin, görüntü ve ses gibi çeşitli ortamlar üzerinde eğitilirler. Bu, renk paletleri veya yazım gibi bir veri kümesinin belirli öğelerine aşırı uyum sağlamak yerine, ortamlar arasında ortak altta yatan anlamları bulmalarını sağlar.
Bu yeni AI sistemleri önemli bir ifade gücüne sahiptir, ancak bu güç büyük ölçüde "prompt mühendisliği" yoluyla yönlendirilir. Bunu yapmak, beklediğiniz sonucu vermediğinde bir arama motoru sorgusunu iyileştirmeye benzer şekilde, basitçe giriş metnini değiştirmek anlamına gelir. Bu, yönlendirilmemiş bir sohbet robotu gibi yeni bir teknolojiyle oynamak için ilgi çekici bir yol olsa da, içerik oluşturmak için verimli veya etkili bir yol değildir. Yaratıcıların ihtiyaç duyduğu şey, tahminlere dayalı yaklaşımlar yerine aktif kontrol yoluyla etkili bir şekilde kullanabilecekleri güçlü araçlardır.
ControlNet projesi, bu zorlukların bazılarını çözmeye yönelik bir adımdır. Proje, prompt mühendisliğine güvenmeden Stable Diffusion gibi önceden eğitilmiş büyük yapay zeka modellerinin gücünden yararlanmanın verimli bir yolunu sunar. ControlNet, sanatçının sadece metin promptlarının ötesinde ek girdi koşulları sağlamasına izin vererek kontrolü artırır. Roblox araştırmacısı ve Stanford Üniversitesi profesörü Maneesh Agrawala ile Stanford araştırmacısı Lvmin Zhang, ortak ControlNet projemizin hedeflerini şu şekilde belirlemiştir:
- Üretken AI araçları için daha iyi bir kullanıcı arayüzü geliştirmek. Anlaşılması zor komut manipülasyonunun ötesine geçmek ve bir fikri veya yaratıcı bir konsepti iletmenin daha doğal yollarını temel almak.
- "Şuna benzer bir görüntü" veya "şu tarzda bir görüntü" oluşturmanın ötesine geçerek, yaratıcının zihnindeki görüntüyü tam olarak hayata geçirebilmek için daha hassas uzamsal kontrol sağlamak.
- Üretken yapay zeka eğitimini, daha hızlı çalışan, daha az bellek gerektiren ve daha az elektrik enerjisi tüketen, hesaplama açısından daha verimli bir sürece dönüştürmek.
- Görüntü üretken yapay zekayı yeniden kullanılabilir bir yapı taşı haline getirin. Böylece standartlaştırılmış görüntü işleme ve 3D render iş akışlarına entegre edilebilir.
ControlNet, yaratıcıların uzamsal kontrol için ek bir görüntü sağlamasına izin vererek, üretilen nihai görüntü üzerinde daha fazla kontrol sağlar. Örneğin, mevcut bir metinden görüntüye dönüştürücüde "boynuzlu erkek geyik" komutu, aşağıda gösterildiği gibi çok çeşitli görüntüler üretti:

Önceki AI çözümleriyle oluşturulan bu görüntüler çekici olmakla birlikte, ne yazık ki esasen keyfi sonuçlardır; üzerinde herhangi bir kontrol yoktur. Metin komutunu revize etmek dışında, önceki görüntü oluşturma sistemlerinde çıktıyı yönlendirmenin bir yolu yoktur.
ControlNet ile, içerik oluşturucular artık çok daha fazla güce sahip. ControlNet'i kullanmanın bir yolu, izlenecek genel şekli belirlemek için hem bir komut hem de bir kaynak görüntü sağlamaktır. Bu durumda, ortaya çıkan görüntüler yine çeşitlilik sunacak, ancak en önemlisi, belirtilen şekli koruyacaktır:

Yaratıcı, bir dizi kenar, hiç komut istemi içermeyen bir görüntü veya sisteme ifade gücü yüksek girdi sağlamak için birçok başka yol da belirleyebilirdi.
Bir ControlNet oluşturmak için, büyük bir difüzyon modelinin ağındaki ağırlıkları iki versiyona klonlarız. Bunlardan biri eğitilebilir ağdır (bu, kontrolü sağlar; "ControlNet"tir) ve diğeri kilitli ağdır. Kilitli ağ, milyarlarca görüntüden öğrenilen yeteneği korur ve önceki herhangi bir görüntü üreteci olabilir. Ardından, ek görüntüden koşullu kontrolü öğrenmek için eğitilebilir ağı göreve özgü veri kümeleri üzerinde eğitiriz. Eğitilebilir ve kilitli kopyalar, sıfır konvolüsyon olarak adlandırdığımız benzersiz bir konvolüsyon katmanı türüyle birbirine bağlanır; burada konvolüsyon ağırlıkları, öğrenilmiş bir şekilde sıfırdan optimize edilmiş parametrelere doğru kademeli olarak artar; bu, başlangıçta hiçbir etkiye sahip olmadıkları ve sistemin kilitli ağ üzerinde uygulayacağı optimal kontrol seviyesini türettiği anlamına gelir.
Orijinal ağırlıklar kilitli ağ aracılığıyla korunduğundan, model çeşitli boyutlardaki eğitim veri kümeleriyle iyi çalışır. Sıfır konvolüsyon katmanı ise süreci çok daha hızlı hale getirir; bu, yeni katmanları sıfırdan eğitmekten ziyade bir difüzyon modelini ince ayarlamaya daha yakındır.
Görüntü üretimi için bu tekniği kapsamlı bir şekilde doğruladık. ControlNet sadece çıktı görüntüsünün kalitesini iyileştirmekle kalmaz. Aynı zamanda belirli bir görev için bir ağı eğitmeyi daha verimli hale getirir ve böylece milyonlarca içerik üreticimiz için büyük ölçekte kullanıma sunulmasını pratik hale getirir. Deneylerde ControlNet, modelin tamamen yeniden eğitilmesini gerektiren alternatif senaryolara kıyasla 10 kata kadar verimlilik artışı sağlar. Yeni modeller oluşturma süreci, geleneksel yazılım geliştirmeye kıyasla zaman alıcı ve kaynak yoğun olduğundan, bu verimlilik çok önemlidir. Eğitimi daha verimli hale getirmek, elektrik tasarrufu sağlar, maliyetleri düşürür ve yeni işlevlerin eklenme hızını artırır.
ControlNet’in benzersiz yapısı, çeşitli boyutlardaki eğitim veri setleriyle ve birçok farklı medya türünde iyi çalıştığı anlamına gelir. ControlNet’in fotoğraflar, elle çizilmiş karalamalar ve openpose poz algılama dahil olmak üzere birçok farklı kontrol yöntemiyle çalıştığı gösterilmiştir. ControlNet'in, üretken AI içeriği için birçok farklı medya türüne uygulanabileceğine inanıyoruz. Bu araştırma, topluluğun denemeleri ve üzerine eklemeleri için açık ve halka açıktır; bu konuda daha fazla keşif yaptıkça daha fazla bilgi sunmaya devam edeceğiz.
StarCoder
Üretken yapay zeka, görüntü, ses, metin, program kaynak kodu veya diğer herhangi bir zengin medya biçimini üretmek için uygulanabilir. Ancak farklı medya türleri arasında en başarılı uygulamalar, genellikle çıktının öznel olarak değerlendirildiği uygulamalardır. Örneğin, bir görüntü, insan izleyiciye hitap ettiğinde başarılı sayılır. Görüntüdeki kenarlardaki garip özellikler veya hatta bir eldeki fazladan parmak gibi belirli hatalar, genel görüntü etkileyiciyse fark edilmeyebilir. Benzer şekilde, bir şiir veya kısa öyküde gramer hataları veya bazı mantıksal atlamalar olabilir, ancak ana fikir etkileyiciyse bunları affetme eğilimindeyiz.
Öznel kriterleri değerlendirmenin bir başka yolu da sonuç uzayının süreklilik arz etmesidir. Bir sonuç diğerinden daha iyi olabilir, ancak sonucun tamamen kabul edilebilir veya kabul edilemez olduğu belirli bir eşik yoktur. Diğer alanlar ve medya türleri için çıktı objektif olarak değerlendirilir. Örneğin, üretken bir yapay zeka programlama asistanı tarafından üretilen kaynak kod ya doğrudur ya da değildir. Kod bir testi geçemezse, geçerli bir çözümün koduna benzese bile başarısız olur. Bu, ayrık bir sonuç uzayıdır. Ayrık bir uzayda başarılı olmak daha zordur, çünkü hem kriterler daha katıdır hem de iyi bir çözüme kademeli olarak yaklaşmak mümkün değildir; kod, aniden çalışana kadar bozuk kalır.
Metin çıktısı için kullanılan LLM'ler, sohbet robotları gibi öznel, sürekli uygulamalar için iyi sonuç verir. Ayrıca İngilizce ve Fransızca gibi birçok insan dilinde düz yazı üretimi için de iyi sonuç veriyor gibi görünürler. Ancak mevcut LLM'ler, programlama dillerinde insan dillerinde olduğu kadar iyi sonuç vermiyor gibi görünür. Kod, doğal dilden çok farklı, anlamı ifade etmenin nesnel bir yolu olan bir matematik biçimidir. Sürekli bir sonuç alanı yerine ayrık bir sonuç alanıdır. Roblox yaratıcıları için en yüksek kalitede programlama dili kod üretimi elde etmek için, bu ayrık, nesnel alanda iyi çalışabilen LLM'leri uygulama yöntemlerine ihtiyacımız var. Ayrıca, Lua, JavaScript veya Python gibi belirli bir dil sözdiziminden bağımsız olarak kod işlevselliğini ifade etmek için sağlam yöntemlere de ihtiyacımız var.
Kod üretimi için yeni ve son teknoloji bir açık kaynak LLM olan StarCoder, bu teknik zorluğun üstesinden gelmek için önemli bir adımdır ve herkes için gerçek anlamda açık bir LLM'dir. StarCoder, akademik ve endüstri araştırma laboratuvarlarından 600'den fazla üyenin yer aldığı BigCode araştırma konsorsiyumunun bir sonucudur. Roblox araştırmacısı ve Northeastern Üniversitesi profesörü Arjun Guha, bu ekibin StarCoder'ı geliştirmesine öncülük etmiştir. İlk yayınlanan bu sonuçlar, öznel yöntemlerin göreceli başarısı göz önüne alındığında, alanın en çok yeni büyümeye ihtiyaç duyduğu alan olan kod yönüne odaklanmaktadır.
Daha geniş AI ekosistemini ve Roblox topluluğunu destekleyen LLM'ler aracılığıyla üretken AI sunmak için, yalnızca uygun şekilde lisanslanmış ve sorumlu bir şekilde toplanmış veri setleri üzerinde eğitilmiş modellere ihtiyacımız var. Bunlar, herkesin kullanabilmesi, üzerine eklemeler yapabilmesi ve ekosisteme katkıda bulunabilmesi için kısıtlamasız lisanslara sahip olmalıdır. Günümüzde en güçlü LLM'ler tescillidir veya sınırlı ticari kullanım için lisanslanmıştır; bu da araştırmacıların modelin kendisiyle deney yapma yeteneğini engeller veya sınırlar. Buna karşılık, StarCoder, endüstri ve akademik araştırmacıların bir koalisyonu tarafından oluşturulan ve her ölçekte ticari uygulama için kısıtlama olmaksızın lisanslanan, gerçek anlamda açık bir modeldir. StarCoder, yalnızca sorumlu bir şekilde toplanmış, uygun şekilde lisanslanmış içeriklerle eğitilmiştir. Model başlangıçta halka açık kodlarla eğitilmiştir ve kodlarının eğitim için kullanılmasını istemeyenler için bir devre dışı bırakma süreci mevcuttur.
Bugün StarCoder, Python, C++ ve Java dahil olmak üzere 86 farklı programlama dilinde çalışmaktadır. Makalenin yayınlandığı tarihte, çoklu dilleri destekleyen tüm açık kodlu LLM'lerden daha iyi performans göstermekteydi ve hatta birçok kapalı, tescilli modelle rekabet edebilecek durumdaydı.
StarCoder LLM, ekosisteme bir katkıdır, ancak araştırma hedefimiz çok daha derindir. Bu araştırmanın en büyük etkisi, kod, metin, görüntüler, konuşma ve video dahil olmak üzere hem nesnel hem de öznel çok modlu modellerin anlamsal modellemesini ilerletmek ve alan transferi teknikleri yoluyla eğitim verimliliğini artırmaktır. Ayrıca, kaynak kod üretimi gibi nesnel görevler için üretken yapay zekanın sürdürülebilirliği ve kontrol edilebilirliği konusunda derin içgörüler elde etmeyi umuyoruz. Gelişmekte olan teknolojinin ilgi çekici bir gösterimi ile kullanıcı topluluğuna değer katan güvenli, güvenilir ve verimli bir ürün arasında büyük bir fark vardır. ML modellerimiz için performansı bellek ayak izi, güç tasarrufu ve yürütme süresi açısından optimize ediyoruz. Ayrıca sağlam bir altyapı geliştirdik, AI çekirdeğini sistemin geri kalanına bağlamak için yazılımla çevreledik ve yeni özellikler eklendikçe sık güncellemeler için sorunsuz bir sistem geliştirdik.
Roblox'un bilim insanlarını ve mühendislerini bilim camiasının en parlak beyinleriyle bir araya getirmek, çığır açan teknolojiyi arayışımızın önemli bir bileşenidir. Bu ilk sonuçları paylaşmaktan gurur duyuyoruz ve araştırma camiasını bizimle işbirliği yapmaya ve bu ilerlemeleri daha da geliştirmeye davet ediyoruz.


