Mastodon
Zdjęcie okładkowe wpisu Apple stworzyło AI, która sama uczy się programować. Imponujący wynik, mimo że na starcie prawie nie znała kodu

Apple stworzyło AI, która sama uczy się programować. Imponujący wynik, mimo że na starcie prawie nie znała kodu

0
Dodane: 2 dni temu

Grupa badaczy z Apple i Carnegie Mellon University opublikowała pracę naukową, która może zwiastować rewolucję w sposobie, w jaki sztuczna inteligencja tworzy oprogramowanie.

Opisali w niej nowatorską metodę, dzięki której model AI, niemal od zera, nauczył się samodzielnie pisać wysokiej jakości, działający kod dla interfejsów użytkownika w języku SwiftUI. Wyniki są zdumiewające – stworzony w ten sposób model, nazwany UICoder, dorównuje, a w niektórych aspektach nawet przewyższa, giganta takiego jak GPT-4.

Jak nauczyć AI programować interfejsy?

Duże modele językowe (LLM) mają fundamentalny problem z generowaniem dobrego kodu dla interfejsów użytkownika (UI). Powód jest prosty: w ich gigantycznych zbiorach danych treningowych znajduje się bardzo mało wysokiej jakości, kompletnych przykładów takiego kodu. Zamiast szukać kolejnych przykładów lub polegać na drogim feedbacku od ludzi, badacze Apple postanowili, że AI nauczy się sama – metodą prób i błędów, z pomocą zautomatyzowanych recenzentów.

Proces wyglądał następująco:

  • Punkt wyjścia: wybrano open-source’owy model AI wyspecjalizowany w kodowaniu, StarChat-Beta.
  • Generowanie: poproszono go o wygenerowanie ogromnej liczby (prawie miliona) programów w SwiftUI na podstawie tekstowych opisów interfejsów.
  • Automatyczna recenzja: każdy wygenerowany program przechodził przez surowy, trzystopniowy system oceny:
    • Kompilator: czy kod w ogóle działa i się kompiluje? Jeśli nie – do kosza.
    • Model wizualny (CLIP): czy interfejs, który powstał po skompilowaniu kodu, faktycznie wygląda tak, jak w oryginalnym opisie? Jeśli nie – do kosza.
    • Filtr duplikatów: czy program nie jest zbyt podobny do tysięcy innych? Jeśli tak – do kosza, by uniknąć monotonii w danych.
  • Trening na najlepszych: programy, które przetrwały tę selekcję, stworzyły nowy, elitarny zbiór danych, na którym ponownie trenowano (dostrajano) oryginalny model AI.
  • Powtórz: cały proces powtórzono pięć razy. Z każdą iteracją AI stawała się coraz lepsza, generując wyższej jakości kod, co z kolei tworzyło jeszcze lepszy zbiór danych do kolejnego treningu.

Lepszy od open-source, doganiający GPT-4

Efektem tego procesu jest UICoder – model, który w testach zdeklasował inne otwarte modele do generowania kodu. Co więcej, w testach porównawczych zbliżył się do wyników potężnych, zamkniętych modeli od OpenAI.

GPT-5 – co warto wiedzieć o najnowszej sztucznej inteligencji od OpenAI

Wskaźnik generowania poprawnego, kompilującego się kodu dla modelu UICoder-Top (jedna z wersji) wyniósł 82%, przewyższając w tym zadaniu minimalnie GPT-4 (81%).

Największa niespodzianka: uczył się niemal od zera

Najbardziej fascynujący w całym eksperymencie jest fakt, który badacze odkryli niejako przy okazji. Okazało się, że bazowy model StarChat-Beta został wytrenowany na zbiorze danych, z którego przez pomyłkę (!) wykluczono repozytoria z kodem w języku Swift i SwiftUI. Oznacza to, że model, który zaczynał eksperyment, praktycznie nie widział wcześniej dobrego kodu w tym języku. Uczył się całkowicie od zera, wbrew pierwotnym zamiarom projektantów, którzy zakładali, że będzie to model wstępnie wytrenowany na zewnętrznych, wysokiej jakości danych.

Oznacza to, że UICoder nie nauczył się programować poprzez odtwarzanie tysięcy widzianych wcześniej przykładów, ale faktycznie „zrozumiał” zasady i logikę SwiftUI dzięki metodzie prób, błędów i automatycznej weryfikacji. To dowodzi niezwykłej skuteczności tej metody i sugeruje, że można ją z powodzeniem zastosować do nauki dowolnego innego języka programowania. Choć to na razie praca badawcza, daje ona niesamowity wgląd w to, jak Apple może w przyszłości tworzyć narzędzia AI, które zrewolucjonizują proces tworzenia aplikacji na jego platformy. Oczywiście jak zawsze dla zainteresowanych mam link do pełnej publikacji rzeczonej pracy „UICoder: Finetuning Large Language Models to Generate User Interface Code through Automated Feedback” umieszczonej na platformie arXiv.

Zapraszamy do dalszej dyskusji na Mastodonie lub Twitterze .