Rozhovory

Profesor Eran Yahav, spoluzakladatel a spoluceo Tabnine – rozhovor

mm
Přidejte Unite.AI mezi své preferované zdroje na Google

Profesor Eran Yahav, spoluzakladatel a spoluceo Tabnine, je profesor počítačových věd na Technionu – Izraelském technologickém institutu, jehož výzkum se zaměřuje na programovací jazyky, strojové učení a softwarové inženýrství, zejména na syntézu programů a analýzu velkých kódů. Vedle své akademické práce spoluzaložil Tabnine (původně Codota), aby aplikoval roky výzkumu do praktických vývojářských nástrojů, a tím pomohl prosadit AI-poháněné dokončování kódu a automatizaci. Jeho práce spojuje akademickou a průmyslovou sféru, se zaměřením na to, aby se AI-generovaný kód stal spolehlivějším, bezpečnějším a kontextově uvědomělým pro reálná podniková prostředí.

Tabnine je AI-poháněná kódovací platforma navržená tak, aby pomáhala vývojářům po celou dobu životního cyklu softwarového vývoje, od psaní a ladění kódu až po generování testů a dokumentace. Původně spuštěna jako nástroj pro dokončování kódu, vyvinula se do širší platformy zaměřené na podniky, která integruje generativní AI a agentní pracovní postupy, umožňující týmům automatizovat složité vývojářské úkoly, zatímco udržují silnou kontrolu nad soukromím, bezpečností a dodržováním předpisů. S podporou desítek programovacích jazyků a integracemi napříč hlavními vývojářskými prostředími (IDE) si Tabnine klade za cíl zlepšit produktivitu vývojářů, zatímco zajišťuje, aby AI-generovaný kód zůstal důvěryhodný a v souladu se standardy organizace.

Vous jste strávil roky výzkumem programové analýzy a syntézy na Technionu a dříve pracoval v IBM Research. Jaký problém ve softwarovém vývoji vás přesvědčil, aby jste se stal spoluzakladatelem Tabnine, a jak váš akademický výzkum ovlivnil původní vizi společnosti?

Má akademická práce se zaměřovala na programovou analýzu a syntézu, což je vlastně učení strojů, aby rozuměly a generovaly kód. Svou dizertační práci jsem psal o programové analýze, a to je také místo, kde jsem strávil své první roky aplikovaného výzkumu. Řešení problémů se softwarovou kvalitou pomocí programové analýzy mi ukázalo, že některé problémy jsou velmi těžké vyřešit, až když je program napsán nesprávně. Opatření je lepší než následná náprava, pokud můžete. To mě přesvědčilo, že správný způsob, jak řešit problémy se softwarovou kvalitou, je prostřednictvím programové syntézy, na které jsem strávil většinu svého výzkumného času a energie.

Na začátku jsem pracoval na programové syntéze pro paralelní programy, snaže se automatizovat vytváření paralelních programů ze sekvenčních. Pak jsem přešel k obecněji použitelné programové syntéze pomocí strojového učení.

Programová syntéza pomocí strojového učení byla také základní myšlenkou, která poháněla Tabnine. Myšlenka, která nyní parece zřejmá, byla, že modely mohou naučit kódovací vzory přímo z velkých sbírek kódu a pomoci vývojářům v reálném čase. Tato obecná myšlenka je aplikovatelná na všechny fáze softwarového vývojového cyklu – od vytváření kódu až po kontrolu, nasazení a dál.

Vize vždy byla posílit lidského vývojáře tím, že mu poskytne nástroje, které urychlí vývojový proces a odstraní tření. Softwarový vývoj je tvořivá a problémově orientovaná disciplína, a cílem bylo, aby AI odstranila tření z procesu tím, že bude zpracovávat rutinní úkoly a pomáhat vývojářům zůstat v pracovním toku. Tato vize nás stále vede, i když se technologie od těch raných dnů výrazně vyvinula.

Tabnine byla průkopníkem AI kódovacích asistentů již několik let předtím, než se generativní AI stalo mainstreamem s nástroji jako OpenAI. Jak se role AI ve softwarovém vývoji změnila od těch raných dnů, a jaké урокy si odvětví vzalo z první vlny kódovacích kopií?

Nejranější generace AI kódovacích asistentů se zaměřovala primárně na predikci. Byly to vlastně pokročilé systémy pro automatické dokončování, které pomáhaly vývojářům psát kód rychleji tím, že predikovaly další řádek nebo funkci.

Co se změnilo s agentními smyčkami je, že AI může nyní zpracovávat úkoly s větší autonomií, až do té míry, že můžeme považovat agenty (s odpovídajícím vedením) za nezávislé junior vývojáře.

Ale to také učí odvětví důležité lekci. Surová modelová schopnost nestačí pro podnikový softwarový vývoj. Modely trénované na veřejných datech mohou produkovat působivé výstupy, ale často postrádají povědomí o architektuře organizace, závislostech a konvencích.

To je důvod, proč další fáze evoluce není jen o větších modelech nebo větším kontextových oknech, ale o propojení těch modelů s reálným kontextem, ve kterém se software staví.

Mnohé podniky objevují, že škálování AI agentů vyžaduje více než větší modely – vyžaduje hlubší organizační kontext. Proč jste přesvědčen, že kontext se stává skutečnou hranicí pro spolehlivý AI-poháněný vývoj?

Softwarové systémy jsou komplexní sítě vztahů. Jedna změna může ovlivnit několik služeb, API nebo downstream komponent.

Dnešní AI modely jsou velmi dobré v generování pravděpodobného kódu, ale často fungují bez strukturovaného pochopení těch vztahů. Bez toho pochopení nemůže AI spolehlivě uvažovat o důsledcích změny.

Co podniky objevují, je, že spolehlivost AI systémů závisí na kvalitě kontextu, ve kterém fungují. Pokud AI systém rozumí architektuře systému, závislostem mezi službami a kodifikačním standardům organizace, může generovat kód, který se mnohem více shoduje s tím, jak ten systém skutečně funguje.

V tom smyslu se kontext stává další hranicí pro podnikový AI vývoj.

Vaše nová Enterprise Context Engine má za cíl poskytnout AI agentům strukturované pochopení architektury organizace, závislostí a inženýrských postupů. Jak se tento přístup liší od běžných metod, jako je retrieval-augmented generace, na které se mnoho společností spoléhá?

Retrieval-augmented generace je užitečná technika. Umožňuje modelům získat relevantní dokumenty nebo kódové fragmenty při generování odpovědi.

Ale samotné získání nezajišťuje pochopení. Poskytuje přístup k informacím, ne strukturu.

Enterprise Context Engine je navržen tak, aby šel dále tím, že buduje strukturovanou reprezentaci softwarového prostředí. Analyzuje repozitáře, služby, závislosti, API a architektonické vztahy a organizuje je do modelu, jak systém skutečně funguje.

To umožňuje AI systémům uvažovat o vztazích mezi komponentami, místo aby pouze získaly textové fragmenty. Pro komplexní podniková prostředí se tato rozdílnost stává velmi důležitou.

AI kódovací nástroje se vyvíjejí z autodokončovacích návrhů na autonomní agenty schopné provádět vícekrokové pracovní postupy. Jak očekáváte, že se bude měnit rovnováha mezi lidskými vývojáři a agentními systémy v příštích pěti letech?

AI agenti budou stále více přebírat rutinní vývojářské úkoly. Již jsou schopni implementovat funkce od začátku do konce, včetně testování a dokumentace. Každý vývojář se stane vedoucím týmu AI vývojářů. Hlavní výzvou bude komunikovat požadavky tomuto týmu a ověřit, zda vygenerované artefakty odpovídají stanoveným požadavkům.

Jednak je softwarový vývoj fundamentálně tvořivou a problémově orientovanou disciplínou. Lidský vývojáři budou i nadále určovat architekturu, dělat kompromisy a vést celkové směrování systémů.

Co se změní, je úroveň abstrakce, na které vývojáři pracují. Místo toho, aby se soustředili na kód, budou vývojáři stále více orchestrovat vyšší úrovně pracovních postupů a spolupracovat s AI systémy, které vykonávají části těch pracovních postupů.

Jinými slovy, role vývojářů se stává strategičtější, protože AI zpracovává více mechanické práce.

Tabnine uvedl, že podnikoví uživatelé mohou vidět míru akceptace AI-generovaného kódu kolem 80 % v některých prostředích. Jaké metriky by měly organizace použít k určení, zda AI kódovací nástroje skutečně zvyšují produktivitu vývojářů, a ne pouze generují více kódu?

Klíčová otázka není, kolik kódu AI generuje, ale kolik užitečné práce skutečně produkuje.

Existuje několik metrik, které by organizace měly sledovat. Jednou z nich je míra první akceptace, která měří, jak často může být AI-generovaný kód použit bez modifikace. Další je doba cyklu recenze – kolik iterací je vyžadováno, než může být pull request sloučen.

Organizace by také měly sledovat čas, který vývojáři stráví opravami vygenerovaného kódu, a dobu vedoucí od vývoje k produkci.

Pokud AI nástroje skutečně zvyšují produktivitu, měly by se tyto metriky zlepšit. Vývojáři stráví méně času opravami vygenerovaného kódu a více času prací na vyšších úkolech.

Podniky zůstávají obezřetné, pokud jde o vystavení vlastního kódu externím modelům. Jak koncept “Důvěryhodné AI kódování” řeší otázky řízení, soukromí a dodržování předpisů, které zpomalily podnikové přijetí AI vývojářských nástrojů?

Důvěra je jedním z nej महतnějších faktorů pro podnikové přijetí AI.

Důvěra je konečná výzva pro realizaci AI inženýra. Jak můžeme důvěřovat AI inženýrovi, aby jednal autonomně a dokončoval kritické softwarové inženýrské úkoly? Jak můžeme zajistit, aby jeho akce byly v souladu s našimi očekáváními pro kvalitu, bezpečnost a dodržování našich politik? Pokud má AI inženýr být přijat jako člen našeho inženýrského týmu, musí být stejně důvěryhodný jako naši dobře prověření a řádně zaškolení kolegové.

Řešení této výzvy závisí na dvou kritických pilířích:

  • Personalizace: vybavení AI inženýra hlubokým pochopením vaší organizace, kódové základny a nejlepších postupů.
  • Kontrola: implementace robustních systémů, které zajistí, aby veškerý kód – ať už AI-generovaný nebo lidsky psaný – splňoval vaše organizační standardy kvality, bezpečnosti, výkonu a spolehlivosti.

Kromě toho znamená Důvěryhodné AI kódování, že organizace mají kontrolu nad tím, jak je AI nasazeno, a zajišťuje centralizované řízení a kontrolu.

Navrhujete, že kontext organizace se může stát základním vrstvám v podnikovém AI stacku – podobně jako databáze nebo cloudová infrastruktura v předchozích počítačových érách. Jak vypadá tato budoucí architektura?

Pokud se podíváme, jak se podniková technologie vyvíjí, často vidíme, jak se objevují nové infrastrukturní vrstvy.

Databáze se staly základem pro správu dat. Cloudové platformy se staly základem pro běh aplikací v měřítku.

V éře AI budou organizace potřebovat infrastrukturu, která umožní AI systémům pochopit vnitřní strukturu podniku – jeho systémy, vztahy a provozní omezení.

Tato infrastrukturní vrstva poskytne strukturovaný kontext, který mohou využívat multiple AI systémy, ať už se jedná o kódovací asistenty, podpůrné agenty nebo operační automatizační nástroje.

V tom smyslu se kontext stává sdílenou základnou pro podnikový AI.

Mnohé společnosti staví kódovací asistenty pevně spojené s jediným základním modelem. Tabnine naopak umožňuje podnikům připojit různé modely podle svých potřeb. Proč je modelová flexibilita důležitá pro dlouhodobou evoluci podnikových AI vývojářských nástrojů?

AI ekosystém se vyvíjí velmi rychle. Nové modely jsou vydávány často, a různé modely mají často silné stránky v různých oblastech.

Podniky by neměly muset重新 navrhovat své vývojářské pracovní postupy pokaždé, když se mění modelová krajina. Povolováním organizacím vybrat a přepnout mezi modely poskytujeme flexibilitu, která pomáhá budoucnosti jejich AI strategie.

Modelová flexibilita také umožňuje organizacím vyvážit výkon, náklady, požadavky na soukromí a omezení nasazení.

V dlouhodobém horizontu budou podniky pravděpodobně fungovat v multi-modelovém prostředí, a vývojářské platformy by měly být navrženy s touto realitou na mysli.

Pro CTO a inženýrské lídry, kteří vyhodnocují AI vývojářské platformy dnes, jaké jsou největší chyby, kterých se organizace dopouštějí při nasazování AI kódovacích nástrojů, a jak jim lze předejít?

Jedna běžná chyba je soustředění se pouze na modelovou schopnost. Věřejnější modely jsou určitě kritickou součástí, ale spolehlivost v reálném prostředí závisí na tom, jak dobře AI rozumí systému, ve kterém funguje.

Další chybou je nasazení AI nástrojů bez zohlednění požadavků na řízení a bezpečnost. Podniky potřebují jasnou politiku ohledně přístupu kódu, nasazení modelů a ověřování výstupů.

Nakonec se organizace někdy domnívají, že AI může přinést okamžitý produktivní zisk bez přizpůsobení pracovních postupů nebo poskytnutí dostatečného kontextu. Úspěšné nasazení obvykle zahrnuje integraci AI do stávajících vývojářských procesů a propojení s organizační architekturou a kódem.

Když se tyto prvky spojí, AI se může stát silným urychlovačem softwarového vývoje, místo aby byl jen dalším nástrojem.

Děkuji za skvělý rozhovor, čtenáři, kteří chtějí se dozvědět více, by měli navštívit Tabnine.

Antoine je vizionářský líder a spoluzakladatel Unite.AI, který je poháněn neotřesitelnou vášní pro formování a propagaci budoucnosti umělé inteligence a robotiky. Jako sériový podnikatel věří, že umělá inteligence bude mít na společnost stejně disruptivní vliv jako elektřina, a často se chvála na potenciál disruptivních technologií a AGI.