Wywiady

Profesor Eran Yahav, współzałożyciel i współprezes Tabnine – seria wywiadów

mm
Dodaj Unite.AI do preferowanych źródeł w Google

Profesor Eran Yahav, współzałożyciel i współprezes Tabnine, jest profesorem informatyki na Technion – Izraelskim Instytucie Technologii, którego badania koncentrują się na językach programowania, uczeniu maszynowym i inżynierii oprogramowania, w szczególności na syntezie programów i analizie kodu w dużych skalach. Wraz z pracą akademicką, współzałożył Tabnine (pierwotnie Codota), aby zastosować lata badań w praktyczne narzędzia dla deweloperów, pomagając w rozwoju AI-zorientowanego uzupełniania kodu i automatyzacji. Jego praca łączy świat akademicki i przemysł, ze szczególnym uwzględnieniem uczynienia kodu generowanego przez AI bardziej niezawodnym, bezpiecznym i świadomym kontekstu w środowiskach przedsiębiorstw.

Tabnine to platforma kodowania wspomaganego przez AI, zaprojektowana do pomocy deweloperom na każdym etapie cyklu rozwoju oprogramowania, od pisania i debugowania kodu do generowania testów i dokumentacji. Początkowo uruchomiona jako narzędzie do uzupełniania kodu, ewoluowała w szerszą platformę skierowaną do przedsiębiorstw, łączącą AI generatywną i agentowe przepływy pracy, umożliwiając zespołom automatyzację złożonych zadań rozwojowych, przy jednoczesnym utrzymaniu silnej kontroli nad prywatnością, bezpieczeństwem i zgodnością. Z obsługą dziesiątek języków programowania i integracjami w głównych środowiskach IDE, Tabnine dąży do poprawy produktywności deweloperów, zapewniając, że kod generowany przez AI pozostaje godny zaufania i zgodny z standardami organizacyjnymi.

Przez lata zajmowałeś się badaniami nad analizą i syntezą programów na Technionie i wcześniej pracowałeś w IBM Research. Jaki problem w rozwoju oprogramowania przekonał Cię do współzałożenia Tabnine, i jak Twoje badania akademickie ukształtowały wizję firmy?

Moja praca akademicka koncentrowała się na analizie i syntezie programów, co w istocie oznacza nauczenie maszyn rozumienia i generowania kodu. Zrobiłem doktorat z analizy programów, a to również miejsce, gdzie spędziłem pierwsze lata pracy badawczej. Rozwiązywanie problemów z jakością oprogramowania za pomocą analizy programów uświadomiło mi, że niektóre problemy są bardzo trudne do rozwiązania, gdy program został napisany nieprawidłowo. Unikanie problemów jest lepsze niż ich późniejsze rozwiązywanie, jeśli można. To przekonało mnie, że właściwy sposób rozwiązania problemów z jakością oprogramowania to synteza programów, na której spędziłem większość czasu i energii.

Początkowo pracowałem nad syntezą programów dla programów współbieżnych, próbując zautomatyzować tworzenie programów współbieżnych z sekwencyjnych. Następnie przerzuciłem się na syntezę programów przy użyciu uczenia maszynowego.

Synteza programów przy użyciu uczenia maszynowego była również podstawową ideą napędzającą Tabnine. Idea, która teraz wydaje się oczywista, była taka, że modele mogą nauczyć się wzorców kodowania bezpośrednio z dużych zbiorów kodu i pomagać deweloperom w czasie rzeczywistym. Ta ogólna idea jest stosowalna na wszystkich etapach cyklu rozwoju oprogramowania – od tworzenia kodu do przeglądu kodu, wdrożenia i dalej.

Wizja zawsze była taka, aby wspomóc ludzkich deweloperów, dając im narzędzia, które przyspieszają proces rozwoju i usuwają tarcie. Rozwój oprogramowania to dyscyplina kreatywna i rozwiązywania problemów, a celem było usunięcie tarć z procesu przez obsługę rutynowych zadań i pomoc deweloperom w utrzymaniu skupienia. Ta wizja nadal nas prowadzi, chociaż technologia ewoluowała znacznie od tych wczesnych dni.

Tabnine była pionierem w dziedzinie AI-kodowania lat przed tym, zanim AI generatywny stał się popularny z narzędziami takimi jak modele OpenAI. Jak ewoluowała rola AI w rozwoju oprogramowania od tych wczesnych dni, i jakie lekcje wyciągnęła branża z pierwszej fali AI-kodowania?

Pierwsze pokolenie AI-kodowania koncentrowało się głównie na predykcji. Były to podstawowo zaawansowane systemy autouzupełniania, które pomagały deweloperom pisać kod szybciej, predykując następną linię lub funkcję.

Co się zmieniło z pętlami agentów, to że AI może teraz obsługiwać zadania z większą autonomią, do punktu, w którym możemy rozważać agenty (z odpowiednim przewodnictwem) jako niezależnych młodszych deweloperów.

Ale to również nauczyło branżę ważnej lekcji. Surowa zdolność modelu nie jest wystarczająca dla rozwoju oprogramowania w przedsiębiorstwach. Modele wyszkolone na danych publicznych mogą produkować imponujące dane wyjściowe, ale często brakuje im świadomości architektury organizacji, zależności i konwencji.

To dlatego następny etap ewolucji nie dotyczy tylko większych modeli lub większych kontekstów, ale połączenia tych modeli z rzeczywistym kontekstem, w którym oprogramowanie jest budowane.

Wiele przedsiębiorstw odkrywa, że skalowanie agentów AI wymaga więcej niż tylko większe modele – wymaga głębszego kontekstu organizacyjnego. Dlaczego uważasz, że kontekst staje się prawdziwą granicą dla niezawodnego rozwoju AI?

Systemy oprogramowania są złożonymi sieciami relacji. Jedna zmiana może wpłynąć na wiele usług, interfejsów API lub składników podrzędnych.

Modele AI dzisiaj są bardzo dobre w generowaniu prawdopodobnego kodu, ale często działają bez ustrukturyzowanego zrozumienia tych relacji. Bez tego zrozumienia, AI nie może niezawodnie rozważać konsekwencji zmiany.

To, co przedsiębiorstwa odkrywają, to fakt, że niezawodność systemów AI zależy od jakości kontekstu, w którym działają. Jeśli system AI rozumie architekturę systemu, zależności między usługami i standardy kodowania organizacji, może generować kod, który jest znacznie bardziej zgodny z tym, jak system naprawdę działa.

W tym sensie kontekst staje się następną granicą dla rozwoju AI w przedsiębiorstwach.

Wasz nowy Silnik Kontekstu Przedsiębiorstwa ma na celu dać agentom AI ustrukturyzowane zrozumienie architektury, zależności i praktyk inżynierskich organizacji. Jak ten podejście różni się od powszechnych metod, takich jak wzmocniona generacja, na której wiele firm obecnie polega?

Wzmocniona generacja to przydatna technika. Pozwala modelom ściągać odpowiednie dokumenty lub fragmenty kodu podczas generowania odpowiedzi.

Ale sama wzmocniona generacja nie tworzy zrozumienia. Zapewnia dostęp do informacji, nie struktury.

Silnik Kontekstu Przedsiębiorstwa jest zaprojektowany, aby posunąć się dalej, budując ustrukturyzowaną reprezentację środowiska oprogramowania. Analizuje repozytoria, usługi, zależności, interfejsy API i relacje architektoniczne, a następnie organizuje je w modelu, jak system naprawdę działa.

To pozwala systemom AI rozważać relacje między składnikami, zamiast po prostu ściągać fragmenty tekstu. Dla złożonych środowisk przedsiębiorstw ta różnica staje się bardzo ważna.

Narzędzia kodowania AI ewoluują od sugestii autouzupełniania do autonomicznych agentów zdolnych do wykonywania wieloetapowych przepływów pracy. Jak widzisz zmianę równowagi między ludzkimi deweloperami a systemami agentywnymi w ciągu najbliższych pięciu lat?

Agenci AI będą coraz częściej przejmować rutynowe zadania rozwojowe. Są już w stanie wdrożyć funkcje od końca do końca, w tym testy i dokumentację. Każdy deweloper stanie się liderem zespołu deweloperów AI. Głównym wyzwaniem będzie komunikowanie wymagań temu zespołowi i weryfikacja, czy wygenerowane artefakty odpowiadają określonym wymaganiom.

Jednak rozwój oprogramowania jest fundamentalnie dyscypliną kreatywną i rozwiązywania problemów. Deweloperzy ludzcy będą nadal definiować architekturę, podejmować decyzje i kierować ogólnym kierunkiem systemów.

To, co się zmieni, to poziom abstrakcji, na którym deweloperzy pracują. Zamiast koncentrować się na kodzie, deweloperzy będą coraz częściej orkiestrować wyższe przepływy pracy i współpracować z systemami AI, które wykonują części tych przepływów.

Innymi słowy, rola deweloperów staje się bardziej strategiczna, gdy AI zajmuje się coraz większą częścią mechanicznej pracy.

Tabnine wskazał, że użytkownicy przedsiębiorstw mogą osiągnąć wskaźnik akceptacji kodu generowanego przez AI na poziomie około 80% w niektórych środowiskach. Jakie wskaźniki powinny organizacje używać, aby określić, czy narzędzia kodowania AI naprawdę poprawiają produktywność deweloperów, a nie tylko generują więcej kodu?

Kluczowe pytanie nie brzmi, ile kodu AI generuje, ale ile użytecznej pracy ono naprawdę wytwarza.

Istnieje kilka wskaźników, które organizacje powinny śledzić. Jednym z nich jest wskaźnik akceptacji kodu AI w pierwszej kolejności, który mierzy, jak często kod generowany przez AI może być użyty bez modyfikacji. Innym jest czas cyklu przeglądu – ile iteracji jest wymaganych, zanim żądanie ściągnięcia może być połączone.

Organizacje powinny również sprawdzić czas spędzony przez deweloperów na prace nad kodem i czas oczekiwania na zmiany od rozwoju do produkcji.

Jeśli narzędzia AI naprawdę poprawiają produktywność, powinno się zobaczyć poprawę we wszystkich tych wskaźnikach. Deweloperzy spędzają mniej czasu na naprawie wygenerowanego kodu i więcej czasu na zadaniach o wyższej wartości.

Przedsiębiorstwa pozostają ostrożne, jeśli chodzi o narażanie kodu własnościowego na zewnętrzne modele. Jak pojęcie „Zaufany Kod AI” rozwiązuje problemy związane z zarządzaniem, prywatnością i zgodnością, które spowolniły przyjęcie narzędzi rozwoju AI w przedsiębiorstwach?

Zaufanie jest jednym z najważniejszych czynników w przyjęciu przedsiębiorstw AI.

Zaufanie jest ostatecznym wyzwaniem dla realizacji inżyniera AI. Jak możemy zaufać inżynierowi AI, aby działał samodzielnie, wykonując krytyczne zadania inżynierii oprogramowania? Jak możemy upewnić się, że jego działania są zgodne z naszymi oczekiwaniami co do jakości, bezpieczeństwa i zgodności z naszymi politykami? Jeśli inżynier AI ma być akceptowanym członkiem naszych zespołów inżynierskich, musi być tak samo zaufany, jak nasi starannie sprawdzeni i odpowiednio wdrożeni koledzy.

Rozwiązanie tego wyzwania opiera się na dwóch kluczowych filarach:

  • Personalizacja: Wyposażenie inżyniera AI w dogłębne zrozumienie Twojej organizacji, kodu i najlepszych praktyk.
  • Kontrola: Wdrożenie solidnych systemów, aby zapewnić, że cały kod – zarówno wygenerowany przez AI, jak i napisany przez ludzi – spełnia Twoje organizacyjne standardy jakości, bezpieczeństwa, wydajności i niezawodności.

Ponadto, Zaufany Kod AI oznacza dać organizacjom kontrolę nad tym, jak AI jest wdrożony, oraz zapewnić scentralizowane zarządzanie i kontrolę.

Uzasadniłeś, że kontekst organizacyjny może stać się warstwą podstawową w stosie AI przedsiębiorstw – podobnie jak bazy danych lub infrastruktura chmurowa w poprzednich erach obliczeniowych. Jaki wygląda ten przyszły architektura?

Jeśli spojrzymy, jak ewoluuje technologia przedsiębiorstw, często widzimy nowe warstwy infrastruktury, które pojawiają się.

Bazy danych stały się podstawą do zarządzania danymi. Platformy chmurowe stały się podstawą do uruchamiania aplikacji w skali.

W erze AI, organizacje będą potrzebować infrastruktury, która pozwoli systemom AI zrozumieć wewnętrzną strukturę przedsiębiorstwa – jego systemy, relacje i ograniczenia operacyjne.

Ta warstwa infrastruktury zapewni ustrukturyzowany kontekst, który wiele systemów AI może wykorzystać, niezależnie od tego, czy są to asystenci kodowania, agenci wsparcia, czy narzędzia automatyzacji operacyjnej.

W tym sensie kontekst staje się wspólną podstawą dla AI przedsiębiorstw.

Wiele firm buduje asystentów kodowania ściśle powiązanych z jednym modelem podstawowym. Tabnine zamiast tego pozwala przedsiębiorstwom łączyć różne modele w zależności od ich potrzeb. Dlaczego elastyczność modelu jest ważna dla długoterminowej ewolucji narzędzi rozwoju AI w przedsiębiorstwach?

Ekosystem AI ewoluuje bardzo szybko. Nowe modele są często wydawane, a różne modele mają różne mocne strony.

Przedsiębiorstwa nie powinny być zmuszane do przebudowywania swoich przepływów pracy rozwojowych za każdym razem, gdy krajobraz modeli się zmienia. Pozwalając organizacjom wybierać i przełączać się między modelami, zapewniamy elastyczność, która pomaga zabezpieczyć ich strategię AI na przyszłość.

Elastyczność modelu pozwala również organizacjom na balansowanie wydajności, kosztów, wymagań dotyczących prywatności i ograniczeń wdrożeniowych.

W długiej perspektywie przedsiębiorstwa będą prawdopodobnie działać w środowisku wielomodelowym, a platformy rozwoju powinny być zaprojektowane z tym reality w mente.

Dla CTO i liderów inżynierskich oceniających platformy rozwoju AI dzisiaj, jakie są największe błędy, które organizacje popełniają podczas wdrażania narzędzi kodowania AI, i jak mogą ich uniknąć?

Jednym z powszechnych błędów jest koncentrowanie się tylko na zdolności modelu. Większe modele są zdecydowanie kluczowym składnikiem, ale niezawodność w środowiskach rzeczywistych zależy od tego, jak dobrze AI rozumie system, w którym działa.

Innym błędem jest wdrażanie narzędzi AI bez uwzględnienia wymagań dotyczących zarządzania i bezpieczeństwa. Przedsiębiorstwa potrzebują jasnych polityk dotyczących dostępu do kodu, wdrożenia modeli i walidacji danych wyjściowych.

Wreszcie, organizacje czasami oczekują, że AI dostarczy natychmiastowe korzyści produktywnościowe bez adaptacji przepływów pracy lub dostarczania wystarczającego kontekstu. Pomyślne wdrożenia zwykle obejmują integrację AI z istniejącymi procesami rozwoju i połączenie go z kodem i architekturą organizacji.

Gdy te elementy się połączą, AI może stać się potężnym przyspieszaczem rozwoju oprogramowania, a nie tylko kolejnym narzędziem.

Dziękuję za wspaniały wywiad, czytelnicy, którzy chcą dowiedzieć się więcej, powinni odwiedzić Tabnine.

Antoine jest wizjonerskim liderem i współzałożycielem Unite.AI, który jest zmotywowany niezachwianą pasją do kształtowania i promowania przyszłości sztucznej inteligencji i robotyki. Jako serialowy przedsiębiorca, wierzy, że sztuczna inteligencja będzie tak samo przełomowa dla społeczeństwa, jak elektryczność, i często jest złapany na tym, że zachwala potencjał przełomowych technologii i AGI.

Jako futurysta, jest poświęcony badaniu, jak te innowacje ukształtują nasz świat. Ponadto, jest założycielem Securities.io, platformy skupiającej się na inwestowaniu w najnowocześniejsze technologie, które zmieniają przyszłość i przebudowują całe sektory.