ControlNet i StarCoder: Postępy w badaniach Roblox na rzecz generatywnej sztucznej inteligencji – Blog Roblox

ControlNet i StarCoder: Postępy w badaniach Roblox na rzecz generatywnej sztucznej inteligencji – Blog Roblox

Węzeł źródłowy: 2864546

Jesteśmy głęboko zaangażowani w prowadzenie badań, które są odpowiedzialne i angażują społeczność we wszystkich obszarach, w tym w sztuczną inteligencję (AI). Osiągamy to poprzez przejrzystość, zewnętrzną walidację oraz wspieranie instytucji akademickich poprzez współpracę i sponsoring. Takie podejście pozwala nam przyspieszyć osiągnięcie największych postępów w trzech obszarach, na których się skupiamy: generatywnej sztucznej inteligencji, skalowaniu centrów danych i bezpieczeństwie online. Dziś dzielimy się spostrzeżeniami i wynikami dwóch naszych projektów badawczych w zakresie generatywnej sztucznej inteligencji. Sieć kontrolna to sieć neuronowa typu open source, która dodaje kontrolę warunkową do modeli generowania obrazu w celu uzyskania bardziej precyzyjnych wyników obrazu. StarCoder to najnowocześniejszy model dużego języka (LLM) o otwartym kodzie źródłowym do generowania kodu. 

Obydwa projekty to współpraca środowisk akademickich i przemysłowych. Obydwa skupiają się także na radykalnie potężniejszych narzędziach dla naszych twórców: artystów 3D i programistów. Co najważniejsze i zgodne z naszą misją inwestowania w długoterminową perspektywę poprzez badania transformacyjne, projekty te wykazują oznaki postępu w podstawowym naukowym zrozumieniu i kontroli sztucznej inteligencji w wielu zastosowaniach. Wierzymy, że ta praca może mieć znaczący wpływ na przyszłość Robloxa i całej branży i z dumą dzielimy się nią otwarcie.

Sieć kontrolna

Niedawne przełomowe odkrycia w zakresie sztucznej inteligencji – w szczególności metody uczenia maszynowego opartego na danych (ML) wykorzystujące głębokie sieci neuronowe – przyczyniły się do nowego postępu w narzędziach do tworzenia. Postępy te obejmują nasze Asystent kodu i Generator materiałów funkcje, 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 w drodze miliardów operacji szkoleniowych. Najpotężniejsze obecnie modele są multimodalne, co oznacza, że ​​są szkolone w oparciu o mieszankę mediów, takich jak tekst, obrazy i dźwięk. Pozwala im to znaleźć wspólne znaczenia leżące u podstaw różnych mediów, zamiast nadmiernie dopasowywać się do określonych elementów zbioru danych, takich jak palety kolorów lub pisownia. 

Te nowe systemy sztucznej inteligencji mają znaczną siłę wyrazu, ale moc ta jest kierowana głównie poprzez „szybką inżynierię”. Oznacza to po prostu zmianę tekstu wejściowego, co przypomina doprecyzowanie zapytania w wyszukiwarce, jeśli nie zwróciło oczekiwanych wyników. Chociaż może to być wciągający sposób na zabawę z nową technologią, taką jak niekierowany chatbot, nie jest to wydajny i skuteczny sposób tworzenia treści. Zamiast tego twórcy potrzebują potężnych narzędzi, które mogą skutecznie wykorzystać poprzez aktywną kontrolę, a nie domysły.

Projekt ControlNet jest krokiem w kierunku rozwiązania części z tych wyzwań. Oferuje skuteczny sposób wykorzystania mocy dużych, wstępnie wyszkolonych modeli sztucznej inteligencji, takich jak Stabilna dyfuzja, bez polegania na szybkiej inżynierii. ControlNet zwiększa kontrolę, umożliwiając artyście zapewnienie dodatkowych warunków wejściowych, wykraczających poza zwykłe podpowiedzi tekstowe. Badacz Roblox i profesor Uniwersytetu Stanforda Maneesh Agrawala oraz badacz ze Stanford Lvmin Zhang określają cele naszego wspólnego projektu ControlNet jako:

  1. Opracuj lepszy interfejs użytkownika dla generatywnych narzędzi AI. Wyjdź poza niejasną, szybką manipulację i zbuduj bardziej naturalne sposoby komunikowania pomysłu lub koncepcji kreatywnej.
  2. Zapewnij bardziej precyzyjną kontrolę przestrzenną, wykraczającą poza tworzenie „obrazu podobnego” lub „obrazu w stylu…”, aby umożliwić realizację dokładnie takiego obrazu, jaki ma w głowie twórca.
  3. Przekształć generatywne szkolenie AI w proces bardziej wydajny obliczeniowo, który działa szybciej, wymaga mniej pamięci i zużywa mniej energii elektrycznej.
  4. Rozszerz sztuczną inteligencję generującą obrazy w element konstrukcyjny wielokrotnego użytku. Następnie można go zintegrować ze standardowymi procesami przetwarzania obrazu i renderowania 3D. 

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

Te obrazy wygenerowane za pomocą poprzednich rozwiązań AI są atrakcyjne, ale niestety w zasadzie mają arbitralne wyniki – nie ma nad nimi kontroli. W poprzednich systemach generujących obrazy nie ma możliwości sterowania wynikami, z wyjątkiem zmiany podpowiedzi tekstowej.

Dzięki ControlNet twórca ma teraz znacznie większą moc. Jednym ze sposobów wykorzystania ControlNet jest udostępnienie zarówno podpowiedzi, jak i obrazu źródłowego w celu określenia ogólnego kształtu, jaki należy zastosować. W tym przypadku powstałe obrazy nadal będą różnorodne, ale co najważniejsze, zachowają określony kształt:

Twórca mógł także określić zestaw krawędzi, obraz bez podpowiedzi lub wiele innych sposobów zapewnienia wyrazistego wejścia do systemu.

Aby utworzyć sieć kontrolną, klonujemy wagi w ramach sieci dużego modelu dyfuzyjnego w dwóch wersjach. Jednym z nich jest dająca się trenować sieć (zapewnia kontrolę; jest to „Sieć Kontrolna”), a druga to zablokowana sieć. Zablokowana sieć zachowuje możliwości wyciągnięte z miliardów obrazów i może być dowolnym wcześniejszym generatorem obrazów. Następnie szkolimy sieć, którą można trenować, na zestawach danych specyficznych dla zadania, aby nauczyć się sterowania warunkowego na podstawie dodatkowego obrazu. Kopie możliwe do wyszkolenia i zablokowane są połączone unikalnym typem warstwy splotu, który nazywamy zerowy splot, gdzie wagi splotu stopniowo rosną od zer do zoptymalizowanych parametrów w wyuczony sposób, co oznacza, że ​​początkowo nie mają na nie żadnego wpływu, a system uzyskuje optymalny poziom kontroli, jaki może sprawować w zablokowanej sieci.

Ponieważ oryginalne wagi są zachowywane poprzez zamkniętą sieć, model dobrze współpracuje ze zbiorami danych szkoleniowych o różnej wielkości. A warstwa zerowego splotu sprawia, że ​​proces jest znacznie szybszy — bliżej do dostrojenia modelu dyfuzji niż do uczenia nowych warstw od zera. 

Przeprowadziliśmy szeroko zakrojoną walidację tej techniki generowania obrazu. ControlNet nie tylko poprawia jakość obrazu wyjściowego. Dzięki temu szkolenie sieci pod kątem konkretnego zadania jest bardziej wydajne, a co za tym idzie – praktyczne do wdrożenia na dużą skalę dla milionów naszych twórców. W eksperymentach ControlNet zapewnia nawet 10-krotny wzrost wydajności w porównaniu do alternatywnych scenariuszy, które wymagają pełnego ponownego szkolenia modelu. Wydajność ta 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ększanie efektywności szkoleń pozwala oszczędzać energię elektryczną, zmniejszać koszty i zwiększać tempo dodawania nowych funkcji.

Unikalna struktura ControlNet oznacza, że ​​dobrze współpracuje ze zbiorami danych szkoleniowych o różnej wielkości i na wielu różnych typach mediów. Wykazano, że ControlNet współpracuje z wieloma różnymi typami metod kontroli, w tym ze zdjęciami, ręcznie rysowanymi bazgrołami i otwórz poza wykrywanie pozy. Wierzymy, że ControlNet można zastosować do wielu różnych typów mediów w celu uzyskania generatywnej treści AI. Ten badania są otwarte i publicznie dostępne społeczności do eksperymentowania i rozwijania, a my będziemy nadal przedstawiać więcej informacji w miarę dokonywania kolejnych odkryć.

StarCoder

Generatywną sztuczną inteligencję można zastosować do tworzenia obrazów, dźwięku, tekstu, kodu źródłowego programu lub dowolnej innej formy multimediów. Jednak w przypadku różnych mediów największe sukcesy odnoszą aplikacje, w przypadku których wyniki są oceniane subiektywnie. Na przykład obraz odniesie sukces, jeśli spodoba się ludzkiemu widzowi. Niektóre błędy na obrazie, takie jak dziwne cechy na krawędziach lub nawet dodatkowy palec na dłoni, mogą nie zostać zauważone, jeśli cały obraz jest atrakcyjny. Podobnie wiersz lub opowiadanie może zawierać błędy gramatyczne lub pewne przeskoki logiczne, ale jeśli sedno jest przekonujące, zwykle je wybaczamy. 

Innym sposobem uwzględnienia 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 określonego progu, przy którym wynik jest całkowicie akceptowalny lub nie do zaakceptowania. W przypadku innych dziedzin i form mediów, dorobek oceniany jest obiektywnie. Na przykład kod źródłowy wygenerowany przez generatywnego asystenta programowania AI jest poprawny lub nie. Jeśli kod nie przejdzie testu, kończy się niepowodzeniem, nawet jeśli jest podobny do kodu prawidłowego rozwiązania. Jest to dyskretna przestrzeń wynikowa. Trudniej jest odnieść sukces w dyskretnej przestrzeni, zarówno ze względu na bardziej rygorystyczne kryteria, jak i dlatego, że nie można stopniowo zbliżać się do dobrego rozwiązania – kod jest łamany aż do momentu, w którym nagle zacznie działać.

LLM używane do tworzenia tekstu dobrze sprawdzają się w subiektywnych, ciągłych aplikacjach, takich jak chatboty. Wydaje się, że sprawdzają się również w generowaniu prozy w wielu językach ludzkich, takich jak angielski i francuski. Jednak istniejące LLM nie wydają się działać tak dobrze programowanie językach, tak samo jak w przypadku języków ludzkich. Kod jest formą matematyki, która jest zupełnie innym, obiektywnym sposobem wyrażania znaczenia niż język naturalny. Jest to dyskretna przestrzeń wynikowa zamiast ciągłej przestrzeni wynikowej. Aby osiągnąć najwyższą jakość generowania kodu języka programowania dla twórców Roblox, potrzebujemy metod stosowania LLM, które mogą dobrze sprawdzić się w tej dyskretnej, obiektywnej przestrzeni. Potrzebujemy także solidnych metod wyrażania funkcjonalności kodu niezależnie od składni konkretnego języka, takich jak Lua, JavaScript czy Python. 

StarCoder, nowy, najnowocześniejszy program LLM o otwartym kodzie źródłowym do generowania kodu, stanowi poważny postęp w obliczu tego technicznego wyzwania i naprawdę otwarty LLM dla każdego. StarCoder jest jednym z rezultatów duży kod konsorcjum badawcze, w skład którego wchodzi ponad 600 członków z laboratoriów akademickich i przemysłowych. Badacz Roblox i profesor Northeastern University Arjun Guha pomógł poprowadzić ten zespół do opracowania StarCodera. Te pierwsze opublikowane wyniki skupiają się wyłącznie na aspekcie kodu, czyli obszarze, w którym dziedzina najbardziej potrzebuje nowego rozwoju, biorąc pod uwagę względną skuteczność metod subiektywnych. 

Aby zapewnić generatywną sztuczną inteligencję za pośrednictwem LLM, które obsługują większy ekosystem sztucznej inteligencji i społeczność Roblox, potrzebujemy modeli, które zostały przeszkolone wyłącznie na odpowiednio licencjonowanych i odpowiedzialnie zebranych zbiorach danych. Powinny one również obejmować nieograniczone licencje, aby każdy mógł z nich korzystać, budować na nich i wnosić wkład do ekosystemu. Obecnie najpotężniejsze LLM są zastrzeżone lub licencjonowane do ograniczonych form użytku komercyjnego, co zabrania lub ogranicza zdolność badaczy do eksperymentowania z samym modelem. Natomiast StarCoder jest modelem prawdziwie otwartym, stworzonym przez koalicję badaczy przemysłowych i akademickich i licencjonowanym bez ograniczeń do zastosowań komercyjnych na dowolną skalę. StarCoder jest szkolony wyłącznie w zakresie odpowiedzialnie zebranych i odpowiednio licencjonowanych treści. Model był początkowo szkolony w oparciu o kod publiczny, a dla tych, którzy wolą, aby ich kod nie był używany do szkolenia, dostępny jest proces rezygnacji.

Obecnie StarCoder działa w 86 różnych językach programowania, w tym w Pythonie, C++ i Javie. W chwili publikacji artykułu przewyższał on każdy LLM z otwartym kodem, który obsługuje wiele języków, a nawet był konkurencyjny w stosunku do wielu zamkniętych, zastrzeżonych modeli. 

StarCoder LLM wnosi wkład w ekosystem, ale nasz cel badawczy sięga znacznie głębiej. Największy wpływ tych badań polega na postępie w modelowaniu semantycznym zarówno obiektywnych, jak i subiektywnych modeli multimodalnych, w tym kodu, tekstu, obrazów, mowy i wideo, a także na zwiększeniu efektywności szkolenia poprzez techniki transferu dziedzin. Oczekujemy również uzyskania głębokiego wglądu w łatwość konserwacji i sterowalności generatywnej sztucznej inteligencji w przypadku obiektywnych zadań, takich jak generowanie kodu źródłowego. Istnieje duża różnica pomiędzy intrygującą demonstracją powstającej technologii a bezpiecznym, niezawodnym i wydajnym produktem, który przynosi wartość społeczności użytkowników. W przypadku naszych modeli ML optymalizujemy wydajność pod kątem zużycia pamięci, oszczędzania energii i czasu wykonywania. Opracowaliśmy także solidną infrastrukturę, otoczyliśmy rdzeń AI oprogramowaniem umożliwiającym połączenie go z resztą systemu i opracowaliśmy jednolity system umożliwiający częste aktualizacje w miarę dodawania nowych funkcji. 

Spotkanie naukowców i inżynierów Roblox z najbystrzejszymi umysłami społeczności naukowej jest kluczowym elementem naszego dążenia do przełomowej technologii. Z dumą dzielimy się tymi wczesnymi wynikami i zapraszamy społeczność badawczą do współpracy z nami i korzystania z tych osiągnięć.

Znak czasu:

Więcej z Roblox