Missä koodausagentit auttavat ja missä ne epäonnistuvat

Pedro Alves

Thoth AI:n teknologiajohtaja

Pedro Alves

Pedro Alves kertoo, missä tekoälyn koodausagentit nopeuttavat ohjelmistokehitystä, missä ne aiheuttavat piileviä riskejä ja miksi kokeneet kehittäjät ovat edelleen välttämättömiä.

Key Takeaways

Koodausagentit: Koodausagentit voivat nopeuttaa toteutusta, mutta ihmisen harkinnan on ohjattava arkkitehtuuria, laatua ja tuotantoon liittyviä päätöksiä.

Piilevät virheet: Tekoälyn tuottama koodi toimii usein onnistuneesti samalla, kun se peittää loogisia virheitä, joiden havaitseminen edellyttää kokeneita tarkastajia.

Luovuuden puutteet: Mallit suoriutuvat hyvin tarkasti määritellyistä käännöstehtävistä, mutta ihmisten on tuotava mukaan epätavanomaiset oivallukset, yhteydet ja keskeiset päätökset.

Tiimin suorituskyvyn vahvistaminen: Organisaatiot hyötyvät enemmän kokeneiden ammattilaisten suorituskyvyn vahvistamisesta tekoälyn avulla kuin kokemattomien tiimien kehittämisestä.

Keskitetty ohjaus: Pieni tekoälyyn keskittyvä tiimi voi luoda uudelleenkäytettäviä työnkulkuja, vähentää päällekkäisiä kokeiluja ja parantaa käyttöönottoa eri osastoilla.

Pedro Alves on työskennellyt laajasti tekoälyn parissa 25 vuoden ajan. Hän toimii tällä hetkellä Thoth AI:n teknologiajohtajana ja Last Week in AI -julkaisun luojana.

Tapasimme Pedron keskustellaksemme koodausagenteista ja siitä, miksi on niin tärkeää tietää, mitä ne voivat ja eivät voi tehdä. Tässä hänen kertomansa.

Ennen kuin ”tekoäly” oli jotain, mitä ihmiset laittoivat dioille

Ennen kuin “AI” oli jotain, mitä ihmiset laittoivat dioille


Olen Pedro, Thoth AI:n teknologiajohtaja. Työskentelin tekoälyn parissa jo ennen kuin se oli jotain, mitä ihmiset laittoivat dioille — vuonna 2001, tietojenkäsittelytieteen opiskelijana, rakensin pienen simuloidun maailman, joka oli täynnä agentteja, ja annoin niiden oppia päihittämään toisensa. Se oli eräänlainen digitaalinen evoluutiopeli, jossa pääasia oli seurata niiden kehittymistä. Siitä on 25 vuotta, ja etsin yhä vastausta samaan kysymykseen: miten järjestelmän saa kehittymään?

Kun jatko-opinnot tulivat ajankohtaisiksi, kaikki olettivat, että tekisin väitöskirjan koneoppimisesta. En tehnyt. Aihe tuntui liian kapealta ja teoreettiselta. Halusin oppia käytännön työn mahdollisimman rikkaan ja monimutkaisen datan parissa, joten siirryin laskennalliseen biologiaan: maisteriopinnoissani proteomiikkaan ja väitöskirjassani genomiikkaan. Opin koneoppimista, tilastotiedettä ja datatiedettä soveltamalla niitä — geenien vuorovaikutusverkostoihin, piirteiden suunnitteluun, neuroverkkoihin ja yhdistelmämenetelmiin — ongelmissa, joissa väärillä tuloksilla oli merkitystä.

Siellä opin läksyn, joka on muovannut kaikkea sen jälkeen. Lääketieteessä rakensin sairauden etenemistä ennustavia malleja, ja vakiintunut mittari — kokonaistarkkuus — oli hyödytön. Tällä mittarilla ”hyvä” malli vain vahvisti uudelleen tapaukset, jotka lääkärit jo tunsivat, vaikka koko arvo piili tapauksissa, jotka heiltä jäivät huomaamatta. Sen sijaan, että olisin optimoinut tarkkuutta, optimoin osittaisen AUC-arvon — käytännössä mallin kyvyn käsitellä merkityksellisiä tapauksia. Käteen annettu mittari on lähes koskaan todellinen tavoite.

Sen jälkeen kiersin useita toimialoja: näitä lääketieteellisiä malleja, työskentelin hetken ammattilaisjalkapallojoukkueen konsulttina, siirryin sitten Piilaaksoon ja vietin vuosia konenäön parissa — aikana, jolloin tunnistamisen ja luokittelun toimivaksi saamiseksi piti vielä innovoida siinä, miten verkkoa koulutettiin ja jopa miten sen painokertoimet alustettiin. Työskentelin sosiaalisten verkostojen, vähittäiskaupan, muodin ja videon parissa kerätyn datan kanssa. Vietin vuoden rakentaen kaupankäyntialgoritmeja geneettisillä algoritmeilla ja parvihiukkasoptimoinnilla — ei-parametrisilla optimointimenetelmillä, joista olin kirjoittanut artikkeleita jatko-opintojeni aikana. Lopulta perustin oman yrityksen ja rakensin tekoälytyökaluja ihmisille, jotka eivät olleet datatieteilijöitä.

Laaja-alaisuus yhdistää kaikkea tätä. Kymmenien alojen jälkeen näen yhä saman ongelman eri asuissa — genomiikassa itsestään selvältä vaikuttava temppu osoittautuu avaimeksi konenäössä. Minulle on tärkeämpää, miten ongelma määritellään, kuin se, miten se ratkaistaan, koska vaikutusmahdollisuudet piilevät ongelman määrittelyssä.

Tämä johdatti minut Thothiin. Paperilla olemme dataa annotointiva yritys. Mielestäni koko alan ratkaisema ongelma on kuitenkin väärä. Kukaan ei halua annotoitua dataa — data on vain välivaihe. He haluavat paremman mallin. Siksi pyrin kohti tulevaisuutta, jossa järjestelmä selvittää, mitä dataa mallisi tarvitsee kehittyäkseen, ja hoitaa tämän osuuden puolestasi, jotta voit keskittyä malliin annotoinnin sijaan.

More Articles

Liiketoiminnan kaksi puolta

Rakenteellisesti Thoth AI:lla on kaksi puolta. Toinen on dataoperaatioiden moottori, joka toimii kansainvälisesti ja laajassa mittakaavassa. Se on suurempi kuin tyypillinen startup-yritys, mutta silti paljon pienempi kuin alan jättiläiset, joten kutsuisin sitä keskisuureksi. Toinen puoli, jota rakennan, on täällä Bay Arealla toimiva aivan uusi tutkimus- ja innovaatioyksikkö — tällä hetkellä meitä on viisi, ja seuraavien kuukausien aikana joukkoomme liittyy lisää ihmisiä. Siellä tavoittelemme mallin kehittämisen muita osa-alueita: kaikkea annotoinnin ulkopuolista.

Tutkimuksemme jakautuu kahteen pääsuuntaan. Ensimmäinen on robotiikka: kehoon sidotun datan tuottaminen ja arviointi sekä aktiivisen oppimisen käyttäminen parhaan mahdollisen koulutusdatan tuottamiseen automaattisesti, jotta robotit voivat oppia tehtävänsä mahdollisimman vähäisellä datamäärällä. Suurin osa tästä perustuu egosentriseen dataan (eli käytännössä ensimmäisen persoonan kuvamateriaaliin), ja keskitymme suuressa osassa työtämme mahdollisimman laadukkaan egosentrisen datan tuottamiseen. Toinen suunta on kielimallien luotettavuus ja tehokkuus: pyrimme ymmärtämään, mikä aiheuttaa hallusinaatioita ja miltä ne näyttävät, sekä tehokkuuden näkökulmasta tunnistamaan, milloin pienempi malli pystyy käsittelemään kyselyn, ja muotoilemaan kyselyn uudelleen tai jakamaan sen osiin, jotta yksinkertaisempi ja edullisempi malli voi vastata siihen. Kaikki tämä on tällä hetkellä tutkimusta, jonka tavoitteena ovat tuotteet, jotka julkaisemme tästä yksiköstä.

Vaiheesta ja koosta puhuttaessa datapuoli on vakiintunut, keskisuuri kansainvälinen toiminto, kun taas Yhdysvaltojen tutkimustiimi on tarkoituksella alkuvaiheessa. Toimistollamme San Mateossa työskentelee nyt viisi henkilöä, ja seuraavien kuukausien aikana joukkoomme liittyy vielä yksi tai kaksi uutta työntekijää. Tämä on nykytilanteemme.

Miten perusteellinen testaaminen tuottaa luotettavia tuloksia

Pedro Alves

Pedro kertoo

Valmistelu sujuu nyt pääosin itsestään. Mutta se ei ole todellinen hyöty. Suurempi parannus on laadussa: kokous on terävämpi ja keskittyneempi, ja oikeat asiat päätyvät luotettavasti toimitusjohtajalle.

Monet kiirehtivät automatisoimaan tekoälyn avulla jokaisen tehtävän ja toiminnon, mutta itse suhtaudun asiaan varovaisesti. Tekoäly tekee demon rakentamisesta helppoa. Luotettavan, päivittäiseen käyttöön tarkoitetun ratkaisun rakentaminen on eri asia. Kun näitä työkaluja käyttää oikeasti, vastaan tulee reuna- ja poikkeustapauksia, joissa automaatio toimii melkein, mutta ei aivan. Siksi testaan perusteellisesti ennen kuin luotan mihinkään todellisessa työnkulussa.

Tänä vuonna rakensin tekoälytyökaluja viikoittaista toimitusjohtajan katselmuskokoustamme varten, ja ne läpäisivät tuon vaatimustason. Työkalu lähettää alueiden vastuuhenkilöille sähköpostia päivitysten keräämiseksi, kokoaa vastaukset automaattisesti, laatii raportit, yhteenvedot ja esityslistan sekä seuraa tuloksia ajan mittaan.

Aiemmin kaikki tämä tehtiin manuaalisesti. Joku pyysi ihmisiltä päivityksiä, yhdisteli vastaukset käsin, kirjoitti yhteenvedot ja esityslistan sekä seurasi tuloksia viikosta toiseen. Se toimi, mutta oli hidasta, ja esityslista kallistui helposti sen mukaan, mikä oli tuoreinta, sen sijaan että se olisi keskittynyt tärkeimpiin asioihin.

Valmistelu sujuu nyt pääosin itsestään. Mutta se ei ole todellinen hyöty. Suurempi parannus on laadussa: kokous on terävämpi ja keskittyneempi, ja oikeat asiat päätyvät luotettavasti toimitusjohtajalle. Kyse ei siis niinkään ole ajansäästöstä, vaan toimitusjohtajan huomion suuntaamisesta päätöksiin, joilla todella on merkitystä.

Miksi harkinta säilyy ihmisen tehtävänä tekoälyn nopeuttaessa ohjelmointia

Miksi harkinta säilyy ihmisen tehtävänä tekoälyn nopeuttaessa ohjelmointia

Tekoäly ohjaa nykyään itse ohjelmointia lähes kaikkialla. Tutkijani, työmme tuotantokäyttöön vievät insinöörimme ja minä käytämme kaikki tekoälypohjaisia ohjelmointityökaluja. Koodin rakentamisen ratkaisee ihmisen harkinta, ei tietty tehtäväluokka, ja tämä standardi muuttuu panosten mukaan.

Tutkimuspuolella tavoitteena on yleensä saada jokin toimimaan, usein perustamalla GitHub-repositorion idean toimivuuden testaamista varten. Mikään ei päädy tuotantoon, joten suhtaudun sen toteutuksen laatuun sallivasti. Jos se toimii ja vastaa kysymykseen, se riittää.

Tuotantokäyttö on eri asia. Sillä, miten rakennamme jotakin, on yhtä paljon merkitystä kuin sillä, toimiiko se, joten käytämme tekoälyä harkitummin. Kokeneet insinöörit vastaavat arkkitehtuurista, laadusta ja katselmoinneista. Tekoäly nopeuttaa heidän työtään, mutta se ei tee näitä päätöksiä. Tämä raja säilyy ihmisen hallinnassa.

Tiimin kokeneisuudesta on apua. He käyttävät tekoälyä eri tavalla kuin vähemmän kokeneet henkilöt. He tietävät jo, miltä hyvä näyttää, joten malli vahvistaa heidän olemassa olevaa harkintaansa sen sijaan, että se korvaisi vielä kehittymässä olevan harkinnan. Se nopeuttaa heidän työtään korvaamatta olennaista osaa.

Näin käytät ohjelmointiagentteja tehokkaasti

Lähes jokaisessa projektissa on yksi ainutlaatuinen asia, jota se tarvitsee: epäilmeinen oivallus tai päätös, jota ongelma edellyttää… Projektin toimivaksi tekevä osa ei yleensä ole keskivertoa, eikä tekoäly pysty päätymään siihen itsenäisesti. Minun tehtäväni on löytää tuo osa. Sen jälkeen tekoäly rakentaa kaiken sen pohjalta nopeammin ja paremmin kuin pystyisin yksin.

Pedro AlvesThoth AI:n CTO
Share This Quote on:

Kaiken kaikkiaan ohjelmointiagenttien tehokkuus perustuu siihen, että pidän itseni kurinalaisena teknologian vahvuuksien ja heikkouksien suhteen.

Ajattelen asiaa kuin maalaisin taulua. Tavoite on aina sama: selkeyttää mielessäni oleva kuva ja käyttää sitten tekoälyä tuon tarkoituksen muuttamiseen toimivaksi koodiksi mahdollisimman nopeasti. Sen onnistuminen riippuu yhdestä muuttujasta: kuinka paljon luovaa työtä pidän itselläni ja kuinka paljon annan eteenpäin.

Tekoäly loistaa ensimmäisellä tasolla. Näen koko maalauksen ja vedän laajat siveltimenvedot, ja tekoäly täyttää yksityiskohdat. Tiedän tarkalleen, mitä on rakennettava, ja tarkoituksen muuttaminen koodiksi on pohjimmiltaan kaavamaista. Tällä alueella tekoäly moninkertaistaa työtehon, ja suurin osa päivittäisestä työstäni kuuluu tähän.

Toinen taso on hyödyllinen, mutta sen vaihtelu on suurempaa. Se on samankaltainen, mutta jätän tarkoituksella muutamia taulun alueita avoimiksi ja pyydän mallia maalaamaan niihin jotakin. Se vaatii jonkin verran luovuutta, mutta ohjaukseni rajaa sitä edelleen. Pidän tuotosta luonnoksena, en vastauksena.

Varoitan ihmisiä kolmannesta tasosta. Siinä luova ydin – projektin määrittely tai keskeiset suunnittelupäätökset – annetaan tekoälyn tehtäväksi. Se näyttää vaikuttavalta ihmisestä, joka ei tunne alaa syvällisesti, mutta toimii onnistumista huomattavasti useammin huonommin, koska malli täyttää aukon, joka minun olisi pitänyt täyttää.

Tuo ero on koko asian ydin. Lähes jokaisessa projektissa on yksi ainutlaatuinen asia, jota se tarvitsee: ongelman edellyttämä epäilmeinen oivallus tai päätös. Oletusarvoisesti malli tarjoaa keskivertoratkaisun, yleisimmän koulutusdatasta peräisin olevan mallin. Projektin toimivaksi tekevä osa ei yleensä ole keskivertoa, eikä tekoäly pysty päätymään siihen itsenäisesti. Minun tehtäväni on löytää tuo osa. Sen jälkeen tekoäly rakentaa kaiken sen pohjalta nopeammin ja paremmin kuin pystyisin yksin.

Miten koodausagentit luovat vaikeasti löydettäviä bugeja

Pedro Alves

Pedro jakaa

Koodausagenttien selkein hyvä puoli on nopeus. Koodaaminen on nopeampaa, mikä lisää julkaisutiheyttämme, eikä kyse ole vain raakanopeudesta. Asiat, joiden käyttöönotto oli monimutkaista, ovat nyt paljon helpompia. Se pitää paikkansa, ja sillä on merkitystä.

Koodausagenttien selkein hyvä puoli on nopeus. Koodaaminen on nopeampaa, mikä lisää julkaisutiheyttämme, eikä kyse ole vain raakanopeudesta. Asiat, joiden käyttöönotto oli monimutkaista, ovat nyt paljon helpompia. Se pitää paikkansa, ja sillä on merkitystä.

Kiinnostavampi seuraus on se, miten bugimme muuttuivat. Virheiden määrä ei ole kasvanut, mutta virhetyypit ovat muuttuneet. Tekoäly varmistaa, että koodi toimii. Se tarkistaa tämän lähes aina ennen kuin palauttaa koodin sinulle. Siksi yksinkertaisimmat bugit — ne, jotka vain aiheuttavat virheen tai estävät ohjelmaa toimimasta — esiintyvät paljon harvemmin. Jäljelle jäävät loogiset bugit ja tapaukset, joita malli ei ajatellut loppuun asti. Niitä on vaikeampi havaita juuri siksi, että koodi toimii ongelmitta.

Siinä piilee haittapuoli. Nämä bugit piiloutuvat paremmin. Jos joltain puuttuu kokemusta tai hän nojaa työkaluun liikaa, hän näkee koodin toimivan ja olettaa sen olevan oikein, vaikka näin ei ole. Vaara ei ole bugien suurempi määrä, vaan väärä itsevarmuus. Tarvitset jonkun, joka tietää, mitä etsiä, jotta hän voi havaita asiat, jotka läpäisevät ”se toimii” -testin mutta ovat silti väärin.

Miksi tekoälyä pitäisi käyttää kokeneiden ihmisten vaikutusalan laajentamiseen heikompien kehittämisen sijaan

Eniten minut yllätti se, mistä vipuvaikutus syntyy. Intuitiivisesti voisi ajatella, että tekoäly madaltaa kokemuskynnystä, jolloin voit palkata edullisempia ja kokemattomampia tiimejä ja antaa työkalujen nostaa niiden tasoa. Totuus osoittautui päinvastaiseksi. Kokemuksella on nyt enemmän merkitystä, ei vähemmän.

Kyse on luotettavuudesta. Tekoälyn avulla yhden kokeneen ohjelmistosuunnittelijan muuttaminen viideksi kokeneeksi ohjelmistosuunnittelijaksi on paljon luotettavampaa kuin kokemattoman ohjelmistosuunnittelijan muuttaminen kokeneeksi. Tekoäly moninkertaistaa jo olemassa olevan harkintakyvyn; se ei luo sellaista tyhjästä.

Siksi laajennan vahvimpien ihmisteni vaikutusalaa ulospäin enkä yritä nostaa heikoimpien tasoa ylöspäin. Muutama kokenut ihminen, joista jokainen tuottaa moninkertaisesti aiempaan verrattuna, päihittää joka kerta suuremman, eri tasoista koostuvan tiimin.

Miksi ihmisten, ei tekoälyn, on tuotava luovuus

Miksi ihmisten, ei tekoälyn, on tuotava luovuus

Tekoäly ei selvästikään ole onnistunut tutkimuksen luovissa ja yhdistävissä ulottuvuuksissa. Kun teen teknistä työtä tekoälyn avustuksella, ihmisen täytyy edelleen yhdistää pisteet: selvittää, miten jonkun toisen työtä voidaan laajentaa, yhdistää kaksi tutkimuspaperia järkevällä tavalla ja tehdä loogiset päätelmät, joita itse pitäisit itsestäänselvinä. Tämä osa vaatii edelleen ihmisen.

Tämä ei ole yllättävää, kun muistaa, mitä nämä mallit ovat. Ne ovat todennäköisyyskoneita. Ne tuottavat tekstin, joka todennäköisimmin miellyttää lukijaa. Opimme kouluttamaan niitä paremmin myös muunlaisiin tehtäviin, mutta tilanne muuttuu todella vaikeaksi, kun yrität opettaa itse luovuutta, koska koulutussignaalin rakentaminen on hankalaa.

Ajatellaan aineistoja. Aineisto siitä, miltä koira näyttää, on helppo laatia. Keräät paljon kuvia koirista. Piirrosten luovuutta käsittelevä aineisto on erilainen ongelma. Kuvitellaan esimerkiksi ihminen, joka lisää koiralle siivet. Esimerkin pointti ei ole siivissä. Se on niiden taustalla olevassa abstraktissa liikkeessä: otetaan jokin asia, joka ei kuulu joukkoon, ja sijoitetaan se paikkaan, jossa sitä ei odoteta. Jotta malli ymmärtäisi tämän, tarvitset valtavan määrän esimerkkejä, jotta se oppii, etteivät siivet ole olennaisia vaan luova ele on.

Vaikka se pääsisi tähän asti, vastaan tulee seuraava seinä. Ota nyt sama luovuus ja sovella sitä matemaattiseen yhtälöön tai tutkimuspaperissa olevaan koodinpätkään ja käytä sitä jonkun algoritmin laajentamiseen. Juuri tällainen siirto on kohta, jossa se hajoaa.

Ihmiset nojaavat koneisiin juuri siinä osassa, jossa ne ovat heikoimmillaan. Ironista kyllä, ratkaisu on halpa. Pieni määrä inhimillistä luovuutta kantaa pitkälle. Älä nojaa tuossa osassa liikaa koneeseen, niin pääset hämmästyttävän pitkälle.

Miksi teknologiajohtajien on suunniteltava uudelleen, miten tekoälyominaisuudet liikkuvat organisaatioissa

Tämä ei ehkä juuri nyt ole suosittu neuvo, mutta mielestäni se on harkittu ja todennäköisimmin tuloksia tuottava: toimi harkitummin kuin hetki painostaa sinua toimimaan.

Tällä hetkellä yritykset käyttävät valtavia summia rahaa yksinkertaiseen oletukseen: jokainen voi automatisoida osan työstään tekoälyn avulla. Siksi ohje annetaan kaikille. Insinööreille, data-asiantuntijoille, myynnille, markkinoinnille, koko yritykselle. Luo tili, automatisoi jotain, rakenna omat työkalusi ja ryhdy toimeen. Tuloksena on valtava määrä hukkaan heitettyä työtä: päällekkäistä työtä, hankkeita, jotka eivät johda mihinkään, ja työkaluja, joita kukaan ei käytä. Yritykset kuluttavat paljon rahaa työhön, aikaan ja tokeneihin, jotka eivät tuota mitään pysyvää.

Luo sen ympärille toimiva prosessi. Keskitytä se. Perusta pieni keskustiimi, jonka tehtävänä on auttaa jokaista muuta tiimiä työskentelemään paremmin tekoälyn avulla. Tiimi kehittää työnkulkuja, uudelleenkäytettävää kontekstia, standardeja ja tehokkaita toimintamalleja ja jalkauttaa ne sitten niin, etteivät yksittäiset insinöörit joudu kukin erikseen maksamaan selvitystyön hintaa. Tämä on rakenteellinen versio siitä, mitä sanoin aiemmin vaikutusvallan keskittämisestä parhaimmille ihmisillesi: muutama tekoälyn sujuvasti hallitseva insinööri auttaa koko organisaatiota toimimaan paremmin.

Tämä tuottaa kaksi tulosta samanaikaisesti. Käyttöaste kasvaa, koska tiimit hyödyntävät hyväksi todettuja toimintamalleja arvailemisen sijaan. Lisäksi saat takaisin huomattavan määrän aikaa, joka menetetään huomaamatta kokeiluihin, joita ei koskaan olisi tarvinnut tehdä useammin kuin kerran.

Tämä ei ehkä juuri nyt ole suosittu neuvo, mutta mielestäni se on harkittu ja todennäköisimmin tuloksia tuottava: toimi harkitummin kuin hetki painostaa sinua toimimaan… Luo sen ympärille toimiva prosessi. Keskitytä se. Perusta pieni keskustiimi, jonka tehtävänä on auttaa jokaista muuta tiimiä työskentelemään paremmin tekoälyn avulla.

Pedro AlvesCTO Thoth AI:ssa
Share This Quote on:

Pysy mukana

Voit seurata Pedro Alvesin työtä LinkedInissä tai tilata hänen uutiskirjeensä Viime viikko tekoälyssä. Tutustu myös Thoth AI:hin.

Lisää asiantuntijahaastatteluja on tulossa CTO-klubiin!

You may also like