Haastattelut

Itamar Friedman, CodiumAI:n toimitusjohtaja ja perustaja – Haastattelusarja

mm
Lisää Unite.AI suosikkilähteisiisi Google-palvelussa

Itamar Friedman on CodiumAI:n toimitusjohtaja ja perustaja. Codium keskittyy “koodin eheys”-puoleen koodin generoimisessa – generoimalla automaattisia testejä, koodin selityksiä ja arvosteluita. He ovat julkaisseet tutkimuksia koodiratkaisujen generoimisesta kilpailukykyisille ohjelmointihalleihin, jotka ylittävät Google DeepMindin tulokset.

Milloin ja miten sinä alkujaan kiinnostuit AI:sta?

Vuonna 2009 työskentelin Mellanoxissa (Acq. by NVIDIA (NVDA )) ja opiskelin sähkötekniikkaa. Tajuttuani, että monia Mellanoxin kehitysprosesseja voitiin automatisoida koneoppimisalgoritmeilla, vaihdoin pääaineeni optimointiin ja koneoppimiseen ja suoritin MSc-tutkinnon tämän alalla. Vuoteen 2010 mennessä olin jo työskennellyt syvänoppimisprojektissa (jossa oli 3 kerrosta syvä neuroverkko) ja luonut pohjan työlle Alibabassa, jossa johtaminen tutkimusryhmää, joka erikoistui neuroarkkitehtuurin etsintään, mallien kouluttamiseen ja AutoML-työkalujen kehittämiseen kehittäjille. Vuoden 2021 tienoilla en ole enää häpeällistä kutsua työtäni “AI:ksi”, koska suuret kielimallit ovat voimakkaita työkaluja, ja mielikuvani siitä, mitä voidaan saavuttaa niiden avulla, on kasvanut.

Mikä oli edellinen tietokoneen näkökulmaan keskittyvä startup Visualead, ja mitkä olivat joitain avainopetuksia tästä kokemuksesta?

Visualead erikoistui logojen, QR-koodien ja kaiken siihen välisen skannaukseen, mukaan lukien tietojen turvallisen ja piilotetun tallentamisen kuvissa, jotta voidaan mahdollistaa turvallinen P2P-transaktio ja osallistuminen. Visualeadissa meillä oli jo vuonna 2012 algoritmeja, jotka suoritettiin mobiililaitteissa, mukaan lukien mallit. Se oli haastavaa ja hankalaa tehdä silloin, ja opimme paljon tehokkaiden mallien rakentamisesta ja varmistamisesta, että nämä tilastolliset olentot ovat turvallisia.

Edelleen sovellan oppeja, joita olen saanut silloin, nykyisiin projekteihini – esimerkiksi, kun rakensimme avoimen lähdekoodin ratkaisun generointityökalun AlphaCodium, jossa esiteltiin Flow Engineering -konsepti ja sovellettiin sitä rakentamaan virtaus, joka turvaa LLM-mallien tulosteen.

Voitko jakaa tarinan CodiumAI:n perustamisesta?

Alibabassa näin ensimmäisen kerran, miten koodivirhe voi johtaa miljoonan dollarin ongelmaan ja mitkä haasteet kehittäjille ovat ylläpitää koodin generoimista ilman laatukärsimystä tai eheisyyden menetystä. Tämä ongelma on edelleen olemassa, ja nykyään huonolaatuinen koodi on katsottu aiheuttaneen biljoonan dollarin ongelman, joka jatkuu kasvamistaan.

CodiumAI:n tiimi on erikoistunut rakentamaan AI:lla mahdollistettuja työkaluja suurissa mittakaavoissa ja on motivoitunut ratkaisemaan kehittäjien kohtaamia haasteita. Uusien LLM- ja AI-mahdollisuuksien myötä ymmärsimme, että tämä on tilaisuutemme rakentaa holistinen koodin eheysalusta, joka auttaa kiireisiä tiimejä meidän kaltaisia vähentämään virheitä ja lieventämään muita eheisyyden ongelmia. Koska yhä enemmän koodia generoidaan AI:lla, koodin benchmarkkaus ja varmistaminen, että se toimii halutulla tavalla, on tullut kriittiseksi haasteeksi, jonka haluamme ratkaista. Rakentaminen AI:lla mahdollistettuja työkaluja suurissa mittakaavoissa ja benchmarkkaus on olennainen konsepti meille.

Kokemuksellisina kehittäjinä ymmärrämme; tylsien tehtävien, kuten testaamisen ja koodin tarkastelun, voi olla turhauttavaa. Olemme korkeasti tehtävämme motivoituneita lopulta mahdollistamaan kiireisille tiimeille koodin eheisyyden lisääminen ja hallitseminen.

Voitko kuvailla, minkälaisia ei-triviaaleja analyysejä CodiumAI suorittaa koodissa, ja miten tämä tukee kehittäjiä koodin laadun parantamisessa?

Aikaisemmin olemassa olevat työkalut tarjosivat kehittäjille vain vähän arvoa, mutta LLM:ien (kuten ChatGPT ja Copilot) saavutettua odotuksia ylittävät kyvyt, kehittäjille tarjottava tuki ei ole enää triviaalia.

CodiumAI:n kehittämä Codiumate-koodausagentti tarjoaa kehittäjille ainutlaatuisia työkaluja parantamaan työnkulkua ja tehostamaan koodin generoimista. Codiumate suorittaa koodauksen automaattisesti valitsemalla olemassa olevia koodinpätkiä kehittäjän ympäristössä, ja se voi luoda kehittäjälle ymmärrettävän ja yhtenäisen kehityssuunnitelman, kirjoittaa koodin suunnitelman mukaan, tunnistaa duplikaattikoodin, jonka kehittäjä voi haluta käyttää tai poistaa, luoda dokumentaation ja ehdottaa testejä, jotta koodi toimii oikein ennen kuin se otetaan käyttöön live-ympäristössä.

Codiumate tarjoaa kehittäjille syvän käyttäytymisanalyysin, joka valaisee mahdollisia käyttäytymisiä ja haaroja, joita koodi sisältää. Tämä mahdollistaa kehittäjälle tarkastella generoituja koodinpätkiä ja luoda testejä, jotka kattavat kaikki käyttäytymiset, parantaen koodin laatuja enemmän kuin jos kehittäjä olisi itse huomioinut kaikki mahdolliset tapaukset.

Mitkä ovat PR-Agentin toiminnot pull request -analyysille, ja miten se suorittaa arvosteluprosessin alustoilla kuten GitHub ja GitLab (GTLB )?

PR-Agent tarjoaa useita toimintoja, jotka parantavat ja suorittavat pull request -analyysin ja arvosteluprosessin eri git-palveluilla.

Automaattinen PR-kuvausgenerointi luo perusteellisen ja yksityiskohtaisen kuvauksen pull requesteille. Tämä toiminto ratkaisee yleisiä ongelmia, joissa kehittäjät saattavat jättää yksityiskohtaiset PR-kuvaukset väliin aikarajoitusten tai huomion puutteen vuoksi. Automaattisten kuvausten ansiosta jokainen PR on varustettu riittävällä kontekstilla, mikä tekee arvostelijoille helpommaksi ymmärtää muutokset ilman, että heidän tarvitsee tulkita koodin muutoksia laajasti.

AI:n avulla automaattiset koodiehdotukset voivat ehdottaa parannuksia tai vaihtoehtoisia toteutuksia suoraan PR-liittymässä. Nämä ehdotukset voivat olla optimointeja, noudattamista koodausstandardeista tai jopa arkkitehtuurisia parannuksia, jotka parantavat koodipohjan laatua asteittain.

PR-Agent tukee useita vaihtoehtoja mukauttaa komentoja, joita se tarjoaa. Yksi hyödyllisimmistä mukautusvaihtoehdoista on mukautettavien etikettien käyttäminen pull requestien järjestelyyn ja hallintaan alustoilla kuten GitHub ja GitLab. Tämä toiminto edistää kehitys- ja arvosteluprosessien toimivuutta ja selkeyttä.

Miten CodiumAI generoi merkityksellisiä testejä, ja mitä tekee nämä testit tehokkaammiksi kuin standardit yksikkötestit?

Parannamme testien generoimista skannaamalla koodirepositorioita asiaankuuluvia koodinpätkiä, jotka liittyvät testattavaan koodiin. Käyttämällä chain-of-thought-ohjelmia, kartoitamme kaikki mahdolliset koodin käyttäytymiset, mukaan lukien tyypilliset polut ja reunatapaukset. Tämä lähestymistapa käyttää kontekstisidonnaisia hakutoimintoja ja mukautettuja ohjelmia, jotka on suunniteltu kunkin kielen yksilölliseen syntaksiin ja semantiikkaan. Lisäksi CodiumAI määrittää tietyn suoritusaikaympäristön näille kielille, mikä parantaa työkalun kykyä havaita virheitä ja generoida itseparantavat testit.

Mihin perustuen käyttäjien palautteen, mitkä ovat CodiumAI:n arvostetuimmat ominaisuudet, ja miten nämä ominaisuudet ovat vaikuttaneet kehittäjien tuottavuuteen?

Käyttäjien palautteen perusteella huomaamme, että /kysy koodipätkän kontekstissa ja /testien generointi ovat Codiumate-agentin suosituimpia ominaisuuksia, jotka parantavat kehittäjien työnkulkua.

/kysy koodipätkän kontekstissa (ks. dokumentaatio täältä: /kysy) kehittäjät voivat esittää avoimia kysymyksiä koodistaan tai pyytää koodin parannuksia tai arvosteluita ilmaisessa chat-istunnossa. Tämä ominaisuus on erityisen hyödyllinen koodipohjan syvällisemmän ymmärtämisen kannalta, koska malli säilyttää koko projektin kontekstin, mikä mahdollistaa yksityiskohtaisten ja spesifien kysymysten käsittelyn.

/testien generointi (ks. dokumentaatio täältä: /testit) sallii kehittäjien generoida kattavat testisarjat koodilleen yhdellä klikkauksella. Tämä ominaisuus on suuri tuottavuuden apu, koska se mahdollistaa nopean koodin käyttäytymisen tutkimisen, virheiden nopean havaitsemisen ja koodikattavuuden nopean laajentamisen.

/arvostelu (ks. dokumentaatio täältä – /arvostelu) skannaa PR-koodin muutokset ja generoi automaattisesti PR-arvostelun, jotta kehittäjät voivat havaita ongelmat ennen kuin he pushaavat koodin tuotantoon. /kuvaile (ks. dokumentaatio täältä – /kuvaile) skannaa PR-koodin muutokset ja generoi kuvauksen PR:lle – otsikko, tyyppi, yhteenveto, käynti ja etiketit, mikä säästää kehittäjien aikaa ja energiaa, jonka he voivat paremmin soveltaa haasteellisempiin tai luoviimpiin tehtäviin.

Miten CodiumAI tunnistaa reunatapaukset ja epäilyttävät käyttäytymiset koodissa?

Meidän työkalumme skannaa kehittäjän repositoriota asiaankuuluvia koodinpätkiä, jotka liittyvät testattavaan koodiin, ja käyttämällä chain-of-thought-ohjelmia, kartoitamme kaikki mahdolliset koodin käyttäytymiset ja näytämme ne kehittäjälle. CodiumAI voi tunnistaa epäilyttävät käyttäytymiset suoraan (riippumatta testien generoimisesta), tunnistamalla ristiriitaisuuksia tai epäjohdonmukaisuuksia eri koodinpätkien tai koodinpätkien ja liittyvän dokumentaation välillä.

CodiumAI tukee useita ohjelmointikieliä; voitko selittää, miten se käsittelee kielikohtaisia nuansseja koodianalyysissä ja testien generoimisessa?

Suurelle osalle ohjelmointikielistä, meidän alustamme menee perus tuen ulkopuolelle toteuttamalla erikoistuneita tekniikoita. Nämä sisältävät kontekstisidonnaisen hakutoiminnan ja mukautetun ohjelmoinnin, jotka on suunniteltu kunkin kielen yksilölliseen syntaksiin ja semantiikkaan. Lisäksi tarjoamme kykyjä määritellä suoritusaikaympäristö näille kielille, mikä parantaa työkalun kykyä havaita virheitä ja generoida itseparantavat testit.

Mitkä ovat tulevaisuuden suunnitelmat CodiumAI:lle kehittää ja yksinkertaistaa kehittäjien tehtäviä?

CodiumAI:n tulevaisuuden kehitysstrategia korostaa AI-työkalujen parantamista, jotta ne voidaan sulauttaa kaikkiin ohjelmistokehityksen elinkaaren vaiheisiin. Käyttämällä edistyneitä flow-engineering-periaatteita kehittäjien työnkulkujen suorittamiseen, meidän agenttimme tarjoavat merkittävää arvoa eri kehitysvaiheissa. Lisäksi CodiumAI on sitoutunut varmistamaan, että nämä työkalut ovat erinomaisia käsittelemään monimutkaisia, todellisia koodi- ja tekstikokonaisuuksia, mikä tekee niistä välttämättömiä työkaluja päivittäisissä ohjelmistokehitystehtävissä. Tämä holistinen lähestymistapa pyrkii korostamaan tarjontaa vahvaksi, päivittäin käytettäväksi työkaluksi kehittäjille, parantaen tuottavuutta ja tehokkuutta ohjelmistokehitysprosessissa. Kiitos haastattelusta, lukijat, jotka haluavat oppia lisää, voivat vierailla CodiumAI:ssa.

Antoine on visionäärisellä johtajalla ja Unite.AI:n perustajakumppani, joka on intohimoisesti omistautunut tulevaisuuden älyteknologian ja robotiikan muotoiluun ja edistämiseen. Sarjayrittäjänä hän uskoo, että älyteknologia tulee olemaan yhtä mullistava yhteiskunnalle kuin sähkö, ja hän on usein innostunut puhumaan älyteknologian ja AGI:n mahdollisuuksista.

Hän on tulevaisuudentutkija, joka on omistautunut tutkimiseen, miten nämä innovaatiot muotoilevat maailmaamme. Lisäksi hän on Securities.io:n perustaja, joka on keskittynyt sijoittamiseen älykkäisiin teknologioihin, jotka määrittelevät tulevaisuutta ja muokkaavat koko toimialoja.