ChatGPT, muut kielimallit ja tekoäly

Ensin kiitos kaikille oikein asiallisesta keskustelusta. Vaikka en olisi samaa mieltä arvostan laadukkaita vastineita.

Luonnollisella kielellä voidaan säätää reseptin tarkkuutta paljon. Mielestäni jopa niin paljon, ettei videota tarvita, vaikka ei olisi ikinä kokannut. Toki jos ei ole ikinä elänyt ihmisen vaan on alien toisesta maailmasta niin sitten video lienee tarpeen. Pelkästä reseptistä voidaan laajentaa, mitä välineitä on keittiössä, ja miten niitä pitäisi käyttää. Voidaan myös kertoa jauhelihan rakenteesta, väreistä jne. Luonnollisen kielen kautta mallit ovat myös oppineet jauhelihan sisältämistä makroravinteista, allergioista, ruokakemiasta sekä ruokalajeista ja juomista, jotka sopivat yhteen jauhelihan kanssa jne. Videoissa tätä ei voi olla ilman luonnollista kieltä.

Toki luonnollisella kielellä on rajat, ja monessa asiassa videosta on apua, koska sillä saadaan helposti lisää “resoluutiota” asiaan. Jossain kohtaa se videon apukin loppuu ja pitää itse opetella loppuun. Olen aikuisiällä opetellut useita uusia lajeja. Vaikka aikuisena tietty lapsuusiän herkkyys puuttuu, olen silti päässyt kohtuulliselle tasolle suunnistuksessa, lumilautailussa ja maastopyöräilyssä. Videoita katsomalla sinne ei valitettavasti pääse.

Eli mikä on mun pointtina? Varmaan se, että vaikka videolla on paljon dataa, siellä on vähän signaalia. Malleja voidaan boostata niillä ehkä 5 %. Uskottavampi lähestyminen AGI:n
saavuttamiseksi olisi, jos mallit alkaisivat oppia tekemällä ja kokeilemalla, kuten shakkikoneet, jotka oppivat pelaamalla itseään vastaan (reinforcement learning).

Jotenkin tämä “4-vuotias on nähnyt enemmän dataa” on hiukan hölmö hot-take, johon asiallinen vastaus lienee: “Montako hyödyllistä vastausta saat nelivuotiaalta vs. ChatGPT?”

Periaatteessa koodausta mallit voisivat opiskella reinforcement learning -tavalla lisää. Koodauksessahan video ei auta mitään. Alla pari onnistunutta ja epäonnistunutta koodausesimerkkiä. Kannattaa ehkä skipata, jos et ole alalla.

Fail1. Yksikään malli, ChatGPT 4.0 tai o1-mini tai Claude Opus, eivät saaneet kohtuullisen yksinkertaista koodipätkää toimimaan. Ajattelin, että saan sen LLM:n kanssa ekalla tai toisella pyynnöllä oikein, tyyliin 5-10 minuutissa. No, tappelin sitten eri mallien kanssa 2 tuntia. Sitten luovutin ja koodasin sen itse. Siinä meni seuraavat 2 tuntia. Kaikki mallit yrittivät liian hienoa toteutusta, mihin erään erittäin suositun Python-kirjaston toiminta ei taipunut. Koitin ensin kertoa malleille, että tee yksinkertaisempaa koodia. Ei auttanut. Sitten annoin malleille aivan apinatason ohjeet, että askel yksi, askel kaksi jne. Silti kaikki mallit halusivat tuottaa jotain eleganttia, joka ei toiminut ajossa. Tarjosin LLM-porukalle vielä toisen mahdollisuuden, kun omaa toteutusta piti hiukan korjata. Mallit tekivät nämä pyydetyt korjaukset, mutta hajottivat koodin uudestaan elegantilla sekoilulla. Yleensä ihmiskoodari tajuaa nopeasti, että tapa A ei toimi, vaikka pitäisi, joten kokeillaan tavalla B. Mallit taas itsepäisesti tuputtivat tapaa A.

Fail2. Nopeasti koodatessa eräs funktio oli kasvanut turhan pitkäksi, ja siinä tehtiin noin kolmea asiaa sekaisin. Lisäksi oli syntynyt koodiduplikaatteja, usean funktion tehdessä samankaltaisia asioita. Koitin saada LLM:n korjaamaan tämän ongelman. Se tuotta koodista ehkä vieläkin pahempaa sotkua. Kyseessä oli ihan perus refaktorointi, jossa piti tunnistaa yhteiset toiminnallisuudet eri paikoista, tehdä niistä funktiot ja poistaa duplikaatit. Jos malli oikeasti olisi edes keskitason koodari, tämä onnistuisi.

Yleensä LLM:n kanssa koodaus on puhdasta suklaata, kun niitä syöttää teelusikalla. Itse teen tutkimuksen kylkeen pientä data-analytiikkaohjelmistoa. Perinteisesti plottaaminen on aika tuskallista. Ensin pitää selvittää sopiva plottauskirjasto, sitten tutkia sen APIa ja koittaa saada toimimaan. Kaikki, jotka ovat R:n ggplot2:sen kanssa tapelleet, tietävät tuskan. LLM:lle näytin, mitä dataa on inputissa ja kerroin millainen kuvan pitäisi olla. Näin usean tunnin koodausrupeama tuli valmiiksi viidessä minuutissa. Toinen juttu, jonka LLM koodasi hyvin, oli konfiguraation lukeminen tiedostosta ja läpi tulevien kutsujen tekeminen dynaamisesti oikeisiin funktioihin. Nuo molemmat alueet ovat sellaisia, etten tiedä niistä hirveästi, enkä oikeastaan haluakaan tietää. Tälläkin viikolla on varmaan kymmenen tuntia säästynyt LLM:n avulla. Se ei tarkoita, että LLM yksinään mitään toimivaa saisi aikaiseksi. Ei ennen kuin se voi reinforcement learningilla opetella lisää.

Varmaan noiden epäonnistuneiden esimerkkien takia jotkut firmat käyttävät LLM:ää yllättävän vähän koodauksessa. Sekin on pelottavaa, eikä noille firmoille uskalla ennustaa hyvää tulevaisuutta. LLM:n kanssa olen keskimäärin 3x nopeampi koodari. Lisäksi jää enemmän aikaa korkeantason arkkitehtuurin pohtimiseen.

5 tykkäystä

Myös Mark Zuckerberg vetää firmaa joka on aika syvällä syväoppimisessa ja näin hän perustelee massiivisia investointejaan:

https://x.com/tsarnick/status/1839125189667492048?t=SUy8w6nm3MevTQIlircLeQ&s=19

Yhteenveto

Skaalaus toimii eikä minkäänlaista kattoa tai seinää ole vielä tullut vastaan.

Pekan tviittiketju tekoälystä :slight_smile:

https://x.com/vontuchman/status/1840329706291270053

Loppuosa tviittikejusta, mut paljon helpompi lukea suoraan Äxässä










2 tykkäystä

Uusin tuon listaksen asioista on vuonna 1990 alkanut genome project. Sen jälkeen kohta jo 35 vuotta ilman merkittäviä uusia mullistuksia.

1 tykkäys

Tietääkseni alkuperäinen lähde on julkaistu 1999, joten olisi ihme jos sisältäisi uudempia asioita.

Catching Up with the Economy

  • R. Fogel
  • Published 1 March 1999
  • Economics
  • The American Economic Review
3 tykkäystä

Ja mitä ylipäätään tarkoittaisi, että “valon nopeus on teknologian kasvun (nopeuden?) esteenä”?
Eihän tuossa lauseessa ole mitään järkeä? Hirveetä tuubaa taas, ja jälleen vahvistui oma käsitys siitä että ikinä ei kannata twitterissä klikata auki näitä ketjuja joissa mainitaan joku kahvikuppi ekassa viestissä.

8 tykkäystä

informaatiosiirron maksiminopeus on valonnopeus. ei se teknologian kasvua estä, mutta asettaa sille rajat.

1 tykkäys

Juu. Miten tämä itsestäänselvyys liittyy mihinkään? Kuvassa, johon kommentti on liitetty, on esitetty ihmispopulaation koko ajan funktiona. Tämän nyt voi mutkan kautta ajatella liittyvän teknologian kehitykseen (teknologia mahdollistaa suuremman populaation). Mutta sitten aletaan runoilla jotain valon nopeudesta, mikä ei liity kuvattuun asiaan millään tavalla.

Kyllä minun tulkintani on, että tässä yritetään kuulostaa fiksulta ilman että oikeasti on mitään järkevää sanottavaa.

Kiva kuunnella myös suomeksi välillä aidosti asiantuntevaa keskustelua tekoälystä ja ylipäätään informaatioteknologiasta rönsyillen Turingista von Neumaniin ja laskentateoriasta kvanttifysiikkaan. Otsikko hämää - 80% muuta kuin dystopiatavaraa:

Tämä ei välttämättä ole ihan niin itsestäänselvyys, kun ensiajatuksella tuntuu. Esim. kvanttifysiikassa tutkitaan ihan vakavasti, onko ns. lomittumiseen liittyvä “kommunikaatio” valonnopeutta nopeampi ilmiö: Quantum Entanglement Communication | Quantum Xchange. Jos se olisi (nykytietämyksellä tosin ei ole), tämä voisi liittyä esim. kvanttikoneiden kautta hyvin läheisestikin teknologiseen kehitykseen.

Se on toki todettava, että aika vähän on ainakaan nykyisin applikaatioita, joissa kehityksen merkittävin este on valonnopeus :slight_smile:

5 tykkäystä

Ei tutkita vakavasti eikä ole. Jos joku tutkii valoa nopeampaa kommunikaatiota lomittumisen avulla, niin kyseessä ei ole vakavasti otettava fyysikko. Lomittuminen ei mahdollista kommunikaatiota, kyseessä on populaaritieteen väärinkäsitys.

Tämä on juuri tätä ilmiötä, että etsitään jotain hienolta kuulostavia sanoja joista kootaan sillisalaattia jonka on tarkoitus luoda hypeä jonkun trendaavan asian ympärille. Kunhan vain kuulostaa teknologiselta, ihan sama onko asiassa mitään järkeä vai ei. Twitter-postaus jota alunperin kommentoin näyttäisi olevan samaa sarjaa. Jos on oikeasti jotain oivaltavaa sanottavaa, niin sen voi sanoa myös selkeästi ja suoraan ymmärrettävästi ilman mielikuvituksellisia kielikuvia.

Menee vähän ohi aiheesta. Mutta onneksi ihmiskunnassa on ollut niitä hullujakin, joilla on ollut uskallusta testata vallitsevia käsityksiä, joita on kulloinkin pidetty selvänä. Tieteen perusperiaate on kai testata käsitystemme todenmukaisuutta ja muuttaa niitä uuden tiedon valossa. Einsteininkin erityinen suhteellisuusteoriakin on kuitenkin vain teoria ja kaipa sekin voi muuttua ihan kuten Einstein muutti Newtonin teoriat :slight_smile: Hyvähän sekin on testata, onko esim. kvanttikommunikaatio valoa nopeampi ja siirtyä seuraavaan “hulluun ajatukseen”, jos edellinen on umpikuja :slight_smile:

6 tykkäystä

Pakko tuoda esiin uudehko Googlen AI-assistentti ‘NotebookLM’, koska en ole vielä nähnyt että sitä olisi mainittu täällä. Tästä voi olla mahdollisesti hyötyä muillekin sijoittajille ja se on saatavilla ihan googlen-tunnareilla. Tietysti tutut disclaimerit pätevät, mutta olen nyt hieman viime päivinä testannut ja löytyi ihan mukava käyttötarkoitus. Tulosraporttien rikkominen palasiksi ja myös podcast muotoon.

Kuinka toimii? Droppaa palveluun pdf tai file muu file (?), sen jälkeen AI “analysoi” sen ja dokumentista voi tehdä podcastin ja siitä voi käydä AIn kanssa keskustelua. Itse kokeilin Nokian Q2 raportilla ja tuloksena melko loistava podcast. Kiva tapa palauttaa mieleen mitä siellä Q2 raportissa olikaan. :slight_smile: Joku varmasti keksii vielä parempia sijoittamiseen littyviä käyttötarkoituksia.

15 tykkäystä

Ei välttämättä mielestäni ihan näin yksioikoisesti voi asiaa tiivistää.

Monille neljävuotiaille on kehittynyt jo jonkinlainen kyky rakentaa erilaisia abstraktioita havainnoimistaan asioista ja kyky luokitella asioita hierarkisesti. Myös jonkinlainen kyky hierarkiseen päätöksentekoon on kehittynyt. Nämä ovat sitten taas AI:lle vielä nykyisellään hankalia asioita. (Toki 4-vuotiaallakin tuo kyky kehittyy edelleen iän ja kokemuksen karttuessa.)

Missä määrin se, että ihmisen aivot oppivat rakentamaan hierarkisia abstraktioita ja tekemään hierarkisia päätöksiä, voi olla seurausta jatkuvasta redundantista datavirrasta? Tuo ei ole triviaali kysymys, mutta on kaiketi ihan mahdollista, että nimenomaisesti redundanssi ja “tarpeeton” toisto ovat niitä, jotka triggaavat oppimisprosessissa pidemmän päälle jotain sellaista, mikä olisi sitten oleellinen osa myös AGI:ta.

Olen vahvasti oppositiossa tämän suhteen myöskin. Tai ehkä joku kännykällä kuvattu video ei toimisi, mutta kyse on siitä, että tekoäly saisi jonkinlaista käsitystä siitä, mitä tosimaailmassa tapahtuu tehtyjen asioiden perusteella. Koodauksen tapauksessa kyse olisi ehkä siitä, että tekoälylle annettaisiin näkymä siihen, mitä tapahtuu dynaamisesti tietokoneen koneen sisällä (CPU:n tila, GPU:n tila, RAM:n sisältö, massamuistien sisältö, ulostuleva videosignaali, ohjelman käyttäjän syötteet näppäimistöltä, hiireltä jne.). Nämä mahdollistavat jonkinlaisen kytköksen siihen, mitä se suoritettava koodinpätkä ihan aidosti lopulta tekee siellä koneen sisällä.

Tuo vastaisi vähän samaa kuin aiemmin puhutun ruuanlaitoin yhteydessä ymmärrys siitä, miten keittiössä tulee toimia ja miten eri työvälineitä tulee käyttää.

Riippuu tosiaan varmaan mitä tekee ja miten isoja palasia yrittää AI:lla rakentaa. Esimerkkisi olivat tosiaan varsin yksinkertaisen ja lyhyen oloisia. Esim. mainitsemasi plottausesimerkki on sellainen, että sen tyyppisessä AI:ta voi varmaan hyödyntää: suuri osa koodista on jonkinlaista mahdollisesti kertakäyttöistä koodinpätkää, jossa tärkeintä on muistaa vaan jonkin plottauskirjaston syntaksi ja suoritettava asia ei ole erityisen monimutkainen.

Itsekin olen käyttänyt AI:ta onnistuneesti tehostamaan työtä esimerkiksi silloin, jos jonkin vikaraportin mukana pitää lähettää joku minimaalinen esimerkkiohjelma, joka toistaa jonkin ohjelmakirjaston / driverin yms. virheen. Tuommoisissa tilanteissa on kohtuullisen kätevää rakentaa AI-avusteisesti joku ohjelman runko, johon sitten voi itse kirjoitella mukaan ne oleelliset osat, joilla haluaa virheen osoittaa.

Mutta sitten, jos annetaan käteen vaikka miljoonan rivin koodikanta, johon pitäisi lähteä tekemään jotain koko koodikannan läpi kulkevia epätriviaaleja muutoksia, niin ei tuo AI ainakaan oman kokemukseni mukaan sen kaltaiseen nykyisellään oikein taivu. Vaikka muutokset eivät olisi koodikannan kokoon nähden isoja (syötetään lusikalla), niin niihin liittyy helposti sellaisia semanttisia muutoksia, joiden järkevästi tekemiseksi pitää oikeasti olla riittävän korkean tason ymmärrys tilanteesta ja tilastollinen hallusinointi ei ole kovin suotavaa.

Yksi osa “koodarin” hommaa on myös tuotosten debuggaaminen. Tällöin ei riitä mikään staattinen koodin ymmärtäminen vaan pitää analysoida dynaamisessa tilanteessa koodin suoritusta. Vika voi olla omassa koodissa (mikä on periaatteessa mahdollista löytää staattisestikin), mutta ongelmalähde voi olla oman koodikannan ulkopuolella esimerkiksi jossain ulkoisessa kirjastossa, käyttöjärjestelmän palveluissa tai käytetyissä drivereissa. Joskus on tullut vastaan myös kääntäjässä olevia vikoja, eli kääntäjä emittoi virheellistä konekielistä koodia. Ja tulkattavilla kielillä vastaavasti vikaa voi olla tulkissa eikä ongelma ole siinä, miten koodi itsessään on kirjoitettu. Tämän tyyppiseen hommaan eivät tekoälyt tällä hetkellä nähdäkseni kovin hyvin sovellu. Ja tällaisten kykyjen mukaan tuominen nähdäkseni edellyttäisi juuri sitä, että AI:lle tuotaisiin jotain kautta “laajempi ymmärrys” siitä, mitä tietokoneella tapahtuu tai pitäisi tapahtua silloin, kun tietynlaisesta lähdekoodista aikaansaatua tuotosta suoritetaan. Tämä edellyttää siis mielestäni jonkinlaista näkymää (“videota”) siitä, mitä siellä tietokoneen sisällä dynaamisissa tilanteissa on meneillään.

Debuggauksessa kyse on jossain mielessä siitä, että pitää yrittää selvittää, missä lähtöoletuksessa on virhe, kun homma ei toimi niin kuin pitäisi. Oletusten joukko (=oletukset, joita koodia kirjoitettaessa ajoympäristöstä tehtiin) on siis lähtötilanteessa ristiriitainen joiltain osin. Tätä taustaa vasten AI-mallit, jotka saa sekaisin jo varsin yksinkertaisilla ristiriitoja sisältävillä syötteillä, eivät vaikuta lupaavilta ratkaisuilta. No, ehkä tämä ongelma korjaantuu ajan kanssa.

Koodin kirjoittamisella ja debuggaamisen tehokkuudella on taas myös vahvoja kytköksiä. Itse kirjoitettua (tai entuudestaan muutoin tuttua) koodikantaa on huomattavasti helpompi ja nopeampi debugata kuin jonkun muun tekemää tuotosta. Jos oletetaan, että suurin osa koodikannasta generoitaisiin AI-avusteisesti, niin koodaajille itselleen jää paljon vähemmän näppituntumaa ja mielikuvaa siitä, miten asiat on missäkin puolella koodikantaa toteutettu. Ja mitä vähemmän tällaista käsitystä on, sitä hitaampaa on debuggauksessa liikkeelle pääseminen. Asiaa hankaloittaa entisestään se, jos AI generoi koodikannasta isoja osia uudestaan aina joidenkin muutosten yhteydessä. Tällöin ihmisvoimin tehtävä debuggaus käy selvästi aiempaa hitaammaksi. Jos siis jossain vaiheessa lähdettäisiin generoimaan hyvinkin isoja koodikantoja melkein pelkästään AI:n avulla, niin tällöin pitäisi ratkaista myös debuggaukseen ja koodikannan korjailuun liittyvät asiat AI:lla. Ja sitten pitäisi edelleen olla kuitenkin riittävän hyvä kyky lopulta tutkia ja selvitellä sen koodikannan ongelmia manuaalisesti, vaikka AI tuottaisikin 99,99%:sti toimivaa lopputulosta.

Itse lasken koodarihommiin myös testaamisen. Tuohonkin palaa aikaa, vaikka testausta olisikin automatisoitu, koska se testausautomaatiokin pitää rakentaa. Tällä puolella ehkä voi olla tekoälyllä tehostamismahdollisuuksia jonkin verran, koska monesti ainakin osa testausautomaatiosta on kohtuullisen lyhyitä skriptin pätkiä / sisäänrakennettuja yksikkötestejä. Mutta testitapaustenkin rakentaminen edellyttää jossain mielessä lähes samanlaista ymmärrystä ohjelman toiminnasta kuin sen tekeminen, joten helposti ohjelman kirjoittamiseen liittyvät ongelmat alkavat näkyä myös testitapausten generoinnin puolella.

Ja koodarihommiin toki kuuluu nähdäkseni myös erilaisten sidosryhmien kanssa yhteydenpitoa. Tällä rakennetaan ymmärrystä puolin ja toisin siitä, mitä oikeasti lopulta pyritään ja mitkä ovat tarkoituksenmukaisia ratkaisuita. Tämmöistäkin on vaikea ulkoistaa AI:lle, koska tavoite nimenomaisesti on, että ihmisten ymmärrys ja keskinäinen luottamus puolin ja toisin kasvaa prosessin aikana. Ei se, että prosessi saadaan suoritettua jotenkin mekaanisen koneellisesti läpi.

Vaikka tunnistan joitain tilanteita, joissa AI:lla pystyy tehostamaan varsinaistan koodin kirjoittamista (hetkellisesti ehkä jopa paljonkin), niin en silti näe, että AI-avusteisesti ainakaan nykyisellään pystyisin mitenkään olemaan “3x tehokkaampi koodari”. Ne hetket, jossa merkittävää tehostushyötyä saavutetaan, eivät ole sitten ehkä kuitenkaan kovin iso osa koko työnkuvasta. Mutta tietysti “koodaus” on niin epämääräisesti ja laajasti määritelty termi, että toki sen alta ehkä löytyy joitain sellaisiakin työtehtäviä, joissa tuo 3x on saavutettavissa.

Lisätäänpä tähän vielä se, että näen kyllä AI:ssa hyvää potentiaalia tehostajana sitä kautta, että sillä voi pystyä indeksoimaan koodikantaa tehokkaasti ja todennäköisesti rakentamaan sellaista staattista koodikannan analyysia, josta on hyötyä koodikannan laadun valvonnassa ja toisaalta ymmärryksen kehittäjänä sen suhteen, mitä jossain isossakoodikannassa on meneillään. Mutta toisaalta en toistaiseksi pysty näkemään AI:ta sellaisena, että se tekee yksilöistä välittömästi “superkoodaajia” tai jopa hävittää ihmiset suurimmaksi osaksi alalta kokonaan. Tällaisia näkökulmia ottavia artikkeleita kuitenkin paikoin on esim. lehdistössä ja raflaavimmissa markkinointijulistuksissa.

12 tykkäystä

Fysiikan Nobel myönnetty tekoälytutkimuksesta. Selkeästi fyysikoilla paniikki päällä, kun pitää alkaa tietotekniikan tutkimusta omimaan :sweat_smile:

Osin samat tutkijat saaneet aiemmin Turing palkinnon.

Tämän lähteen mukaan Turing palkitut ja nyt osin Nobel palkitut olisi vain tunnetut popularisoijat eikä niitä ketkä ovat keksinnöt alunperin tehneet. Twitterissä linkki koko juttuun. Helposti mahdollista että eivät ole prior workistä tienneet kun alunperin julkaisseet. Nyt ovat varmasti siitä jo kuulleet, mutta ilmeisestikin silti sen ohittaneet myöhemmissä papereissä, mikä on jo mautonta.

https://x.com/SchmidhuberAI/status/1844022724328394780

Pidempi juttu alla. Mukana myös monen tähän ketjuun postaavan suosikki guru Lecun.

Tällaiset jutut eivät tosiaan ole tieteessä ainutkertaisia. Usein ensimmäinen ja oikea keksijä ei saa kunniaa vaan se ketä osaa jutun popularisoida.

Jurgenillä selvästi jotain hampaankolossa, mutta se ei tarkoita että hän olisi väärässä. Julkaistuista papereista tuo pitäisi selvitä.

1 tykkäys

Myös kemian Nobel meni tekoälytutkijoille eli Googlen Deepmindin Demis Hassabikselle ja John Jumperille sekä Washingtonin yliopiston David Bakerille proteiinien rakenteiden tutkimisesta.

2 tykkäystä

Tässä on ihan kiinnostava tviitti, kärjessä ei kait mitään ihmeellistä :slight_smile:

https://x.com/Investeraren/status/1844856994055999815

1 tykkäys