Treści na tej stronie zostały przetłumaczone przy użyciu sztucznej inteligencji (AI) lub technologii tłumaczenia maszynowego i mogą zawierać błędy.

Skip to content

ControlNet i StarCoder: postępy badań Roblox w zakresie generatywnej sztucznej inteligencji

Jesteśmy głęboko zaangażowani w prowadzenie odpowiedzialnych i angażujących społeczność badań we wszystkich obszarach, w tym w dziedzinie sztucznej inteligencji (AI). Osiągamy to poprzez przejrzystość, zewnętrzną weryfikację oraz wspieranie instytucji akademickich poprzez współpracę i sponsoring. Takie podejście pozwala nam przyspieszyć osiąganie największych postępów w trzech obszarach, na których się skupiamy: generatywnej sztucznej inteligencji, skalowaniu centrów danych oraz bezpieczeństwie w sieci. Dzisiaj dzielimy się spostrzeżeniami i wynikami z dwóch naszych projektów badawczych dotyczących generatywnej sztucznej inteligencji. ControlNet to sieć neuronowa typu open source, która dodaje kontrolę warunkową do modeli generowania obrazów w celu uzyskania bardziej precyzyjnych wyników. StarCoder to najnowocześniejszy model językowy typu open source (LLM) służący do generowania kodu. 

Oba projekty są wynikiem współpracy akademickiej i przemysłowej. Oba koncentrują się również na radykalnie potężniejszych narzędziach dla naszych twórców: artystów 3D i programistów. Co najważniejsze, zgodnie z naszą misją inwestowania w długoterminową perspektywę poprzez przełomowe badania, projekty te wskazują na postępy w fundamentalnym zrozumieniu naukowym i kontroli sztucznej inteligencji w wielu zastosowaniach. Wierzymy, że ta praca może mieć znaczący wpływ na przyszłość Roblox i całej branży i jesteśmy dumni, że możemy się nią otwarcie podzielić.

ControlNet

Ostatnie przełomy w dziedzinie sztucznej inteligencji — w szczególności metody uczenia maszynowego (ML) oparte na danych, wykorzystujące głębokie sieci neuronowe — przyczyniły się do nowych postępów w zakresie narzędzi do tworzenia treści. Postępy te obejmują nasze funkcje Code Assist i Material Generator, które są publicznie dostępne w naszym bezpłatnym narzędziu Roblox Studio. Nowoczesne generatywne systemy sztucznej inteligencji zawierają struktury danych zwane modelami, które są udoskonalane poprzez miliardy operacji szkoleniowych. Najpotężniejsze obecnie modele są multimodalne, co oznacza, że są szkolone na mieszance mediów, takich jak tekst, obrazy i dźwięk. Pozwala im to znaleźć wspólne, podstawowe znaczenia w różnych mediach, zamiast nadmiernego dopasowywania się do konkretnych elementów zbioru danych, takich jak palety kolorów czy pisownia. 

Te nowe systemy AI mają znaczną moc wyrazu, ale moc ta jest w dużej mierze kierowana poprzez „inżynierię podpowiedzi”. Oznacza to po prostu zmianę tekstu wejściowego, podobnie jak udoskonalanie zapytania w wyszukiwarce, jeśli nie zwróciło ono oczekiwanych wyników. Chociaż może to być angażujący sposób na zabawę nową technologią, taką jak chatbot bez kierunku, nie jest to wydajny ani skuteczny sposób tworzenia treści. Twórcy potrzebują raczej zaawansowanych narzędzi, które mogą skutecznie wykorzystać poprzez aktywną kontrolę, a nie zgadywanie.

Projekt ControlNet jest krokiem w kierunku rozwiązania niektórych z tych wyzwań. Oferuje on wydajny sposób wykorzystania mocy dużych, wstępnie wytrenowanych modeli AI, takich jak Stable Diffusion, bez polegania na inżynierii promptów. ControlNet zwiększa kontrolę, umożliwiając artyście podawanie dodatkowych warunków wejściowych wykraczających poza same podpowiedzi tekstowe. Maneesh Agrawala, badacz z Roblox i profesor Uniwersytetu Stanforda, oraz Lvmin Zhang, badacz ze Stanford, określają cele naszego wspólnego projektu ControlNet w następujący sposób:

  1. Opracowanie lepszego interfejsu użytkownika dla generatywnych narzędzi AI. Wyjście poza niejasną manipulację promptami i oparcie się na bardziej naturalnych sposobach przekazywania pomysłu lub koncepcji twórczej.
  2. Zapewnienie bardziej precyzyjnej kontroli przestrzennej, wykraczającej poza tworzenie „obrazu podobnego do” lub „obrazu w stylu...”, aby umożliwić realizację dokładnie takiego obrazu, jaki twórca ma w głowie.
  3. Przekształcenie szkolenia generatywnej sztucznej inteligencji w proces bardziej wydajny obliczeniowo, który działa szybciej, wymaga mniej pamięci i zużywa mniej energii elektrycznej.
  4. Rozszerzenie generatywnej sztucznej inteligencji obrazowej na moduł wielokrotnego użytku. Dzięki temu będzie można ją zintegrować ze standardowymi procesami przetwarzania obrazu i renderowania 3D. 

Umożliwiając twórcom dostarczenie dodatkowego obrazu do kontroli przestrzennej, ControlNet zapewnia większą kontrolę nad ostatecznym wygenerowanym obrazem. Na przykład polecenie „samec jelenia z rogami” w istniejącym generatorze tekstu na obraz wygenerowało szeroką gamę obrazów, jak pokazano poniżej:

Te obrazy wygenerowane przy użyciu poprzednich rozwiązań AI są atrakcyjne, ale niestety są to w zasadzie arbitralne wyniki — nie ma nad nimi kontroli. W poprzednich systemach generowania obrazów nie ma możliwości sterowania wynikiem, z wyjątkiem zmiany tekstu polecenia.

Dzięki ControlNet twórca ma teraz znacznie większą kontrolę. Jednym ze sposobów korzystania z ControlNet jest podanie zarówno podpowiedzi, jak i obrazu źródłowego w celu określenia ogólnego kształtu, który ma zostać zachowany. W tym przypadku powstałe obrazy nadal będą zróżnicowane, ale co najważniejsze, zachowają określony kształt:

Twórca mógł również określić zestaw krawędzi, obraz bez żadnego podpowiedzi lub wiele innych sposobów dostarczania systemowi wyrazistych danych wejściowych.

Aby stworzyć ControlNet, klonujemy wagi w sieci dużego modelu dyfuzyjnego do dwóch wersji. Jedna to sieć, którą można trenować (zapewnia ona kontrolę; jest to „ControlNet”), a druga to sieć zablokowana. Sieć zablokowana zachowuje zdolności wyuczone na podstawie miliardów obrazów i może być dowolnym poprzednim generatorem obrazów. Następnie trenujemy sieć, którą można trenować, na zestawach danych specyficznych dla zadania, aby nauczyła się kontroli warunkowej na podstawie dodatkowego obrazu. Kopie podlegające szkoleniu i zablokowane są połączone za pomocą unikalnego typu warstwy konwolucyjnej, którą nazywamy konwolucją zerową, gdzie wagi konwolucji stopniowo rosną od zera do zoptymalizowanych parametrów w sposób wyuczony, co oznacza, że początkowo nie mają one żadnego wpływu, a system wywodzi optymalny poziom kontroli, jaki należy wywrzeć na sieci zablokowanej.

Ponieważ oryginalne wagi są zachowywane za pośrednictwem sieci zablokowanej, model dobrze współpracuje z zestawami danych szkoleniowych o różnych rozmiarach. Warstwa konwolucji zerowej znacznie przyspiesza ten proces — jest to bardziej zbliżone do dostrajania modelu dyfuzyjnego niż do szkolenia nowych warstw od podstaw. 

Przeprowadziliśmy szeroko zakrojone testy tej techniki w zakresie generowania obrazów. ControlNet nie tylko poprawia jakość obrazu wyjściowego. Sprawia również, że szkolenie sieci do konkretnego zadania jest bardziej wydajne, a tym samym praktyczne do wdrożenia na dużą skalę dla naszych milionów twórców. W eksperymentach ControlNet zapewnia nawet 10-krotny wzrost wydajności w porównaniu z alternatywnymi scenariuszami, które wymagają całkowitego ponownego szkolenia modelu. Ta wydajność ma kluczowe znaczenie, ponieważ proces tworzenia nowych modeli jest czasochłonny i wymaga dużych zasobów w porównaniu z tradycyjnym tworzeniem oprogramowania. Zwiększenie wydajności szkolenia pozwala oszczędzać energię elektryczną, obniża koszty i przyspiesza tempo dodawania nowych funkcji.

Unikalna struktura ControlNet oznacza, że działa on dobrze z zestawami danych szkoleniowych o różnych rozmiarach i na wielu różnych typach mediów. Wykazano, że ControlNet działa z wieloma różnymi rodzajami modalności sterowania, w tym zdjęciami, odręcznymi szkicami i wykrywaniem pozycji ciała w otwartych pozycjach. Wierzymy, że ControlNet może być stosowany do wielu różnych rodzajów nośników w celu generowania treści opartych na sztucznej inteligencji. Badania te są otwarte i publicznie dostępne dla społeczności, która może na ich podstawie eksperymentować i rozwijać je, a my będziemy nadal przedstawiać więcej informacji w miarę dokonywania kolejnych odkryć.

StarCoder

Generatywna sztuczna inteligencja może być wykorzystywana do tworzenia obrazów, dźwięku, tekstu, kodu źródłowego programów lub wszelkich innych form multimediów. Jednak w różnych mediach największy sukces odnoszą zazwyczaj te zastosowania, w których wynik jest oceniany subiektywnie. Na przykład obraz odnosi sukces, gdy przemawia do ludzkiego odbiorcy. Pewne błędy w obrazie, takie jak dziwne elementy na krawędziach lub nawet dodatkowy palec na dłoni, mogą pozostać niezauważone, jeśli ogólny obraz jest atrakcyjny. Podobnie wiersz lub opowiadanie może zawierać błędy gramatyczne lub pewne skoki logiczne, ale jeśli sedno jest przekonujące, zazwyczaj jesteśmy skłonni je wybaczyć. 

Innym sposobem rozpatrywania kryteriów subiektywnych jest założenie, że przestrzeń wyników jest ciągła. Jeden wynik może być lepszy od drugiego, ale nie ma konkretnego progu, przy którym wynik jest całkowicie akceptowalny lub nieakceptowalny. W przypadku innych dziedzin i form mediów wynik jest oceniany obiektywnie. Na przykład kod źródłowy wygenerowany przez generatywnego asystenta programistycznego AI jest albo poprawny, albo nie. Jeśli kod nie przejdzie testu, oznacza to porażkę, nawet jeśli jest podobny do kodu prawidłowego rozwiązania. Jest to dyskretna przestrzeń wyników. Trudniej jest odnieść sukces w przestrzeni dyskretnej, zarówno dlatego, że kryteria są bardziej rygorystyczne, jak i dlatego, że nie można stopniowo zbliżać się do dobrego rozwiązania – kod jest uszkodzony, aż nagle zaczyna działać.

Modele LLM wykorzystywane do generowania tekstu sprawdzają się dobrze w subiektywnych, ciągłych zastosowaniach, takich jak chatboty. Wydają się również dobrze radzić sobie z generowaniem prozy w wielu językach ludzkich, takich jak angielski i francuski. Jednak istniejące modele LLM nie wydają się działać tak dobrze w przypadku języków programowania, jak w przypadku języków ludzkich. Kod jest formą matematyki, która stanowi zupełnie inny, obiektywny sposób wyrażania znaczenia niż język naturalny. Jest to dyskretna przestrzeń wyników, a nie ciągła. Aby osiągnąć najwyższą jakość generowania kodu w językach programowania dla twórców Roblox, potrzebujemy metod stosowania modeli LLM, które mogą dobrze funkcjonować w tej dyskretnej, obiektywnej przestrzeni. Potrzebujemy również solidnych metod wyrażania funkcjonalności kodu niezależnych od konkretnej składni języka, takiej jak Lua, JavaScript czy Python. 

StarCoder, nowy, najnowocześniejszy model LLM typu open source do generowania kodu, stanowi znaczący postęp w zakresie tego wyzwania technicznego i jest prawdziwie otwartym modelem LLM dostępnym dla wszystkich. StarCoder jest jednym z wyników prac konsorcjum badawczego BigCode, w skład którego wchodzi ponad 600 członków z akademickich i przemysłowych laboratoriów badawczych. Badacz z Roblox i profesor Uniwersytetu Northeastern, Arjun Guha, pomógł poprowadzić ten zespół do opracowania StarCodera. Te pierwsze opublikowane wyniki skupiają się wyłącznie na aspekcie kodu, który jest obszarem, w którym dziedzina ta najbardziej potrzebuje nowego rozwoju, biorąc pod uwagę względny sukces metod subiektywnych. 

Aby dostarczać generatywną sztuczną inteligencję poprzez modele LLM, które wspierają szerszy ekosystem AI oraz społeczność Roblox, potrzebujemy modeli, które zostały wytrenowane wyłącznie na odpowiednio licencjonowanych i odpowiedzialnie zebranych zestawach danych. Powinny one również posiadać nieograniczające licencje, tak aby każdy mógł z nich korzystać, rozwijać je i wnosić swój wkład w ekosystem. Obecnie najpotężniejsze modele LLM są zastrzeżone lub licencjonowane do ograniczonych form komercyjnego wykorzystania, co uniemożliwia lub ogranicza badaczom możliwość eksperymentowania z samym modelem. Natomiast StarCoder jest modelem prawdziwie otwartym, stworzonym dzięki współpracy badaczy z branży i środowiska akademickiego oraz licencjonowanym bez ograniczeń do zastosowań komercyjnych na dowolną skalę. StarCoder jest trenowany wyłącznie na odpowiedzialnie zebranych, odpowiednio licencjonowanych treściach. Model był początkowo trenowany na kodzie publicznym, a dla tych, którzy nie chcą, aby ich kod był wykorzystywany do treningu, dostępna jest opcja rezygnacji.

Obecnie StarCoder obsługuje 86 różnych języków programowania, w tym Python, C++ i Java. W momencie publikacji artykułu model ten osiągał lepsze wyniki niż każdy otwarty model LLM obsługujący wiele języków, a nawet był konkurencyjny w stosunku do wielu zamkniętych, zastrzeżonych modeli. 

Model LLM StarCoder stanowi wkład w ekosystem, ale nasz cel badawczy sięga znacznie głębiej. Największym osiągnięciem tych badań jest postęp w modelowaniu semantycznym zarówno obiektywnych, jak i subiektywnych modeli multimodalnych, obejmujących kod, tekst, obrazy, mowę i wideo, a także zwiększenie wydajności szkolenia dzięki technikom transferu domenowego. Oczekujemy również uzyskania dogłębnego wglądu w łatwość utrzymania i kontrolowalność generatywnej sztucznej inteligencji w przypadku zadań obiektywnych, takich jak generowanie kodu źródłowego. Istnieje duża różnica między intrygującą demonstracją nowej technologii a bezpiecznym, niezawodnym i wydajnym produktem, który wnosi wartość dla społeczności użytkowników. W przypadku naszych modeli uczenia maszynowego optymalizujemy wydajność pod kątem zużycia pamięci, oszczędzania energii i czasu wykonania. Opracowaliśmy również solidną infrastrukturę, otoczyliśmy rdzeń AI oprogramowaniem łączącym go z resztą systemu oraz stworzyliśmy płynnie działający system umożliwiający częste aktualizacje w miarę dodawania nowych funkcji. 

Połączenie naukowców i inżynierów Roblox z najbystrzejszymi umysłami społeczności naukowej jest kluczowym elementem naszych dążeń do przełomowych technologii. Z dumą dzielimy się tymi wczesnymi wynikami i zapraszamy społeczność badawczą do współpracy z nami oraz do rozwijania tych osiągnięć.