ChatGPT, muut kielimallit ja tekoäly

Joko koodarin puntti tutisee?

https://twitter.com/cognition_labs/status/1767548763134964000?t=cPpI6lYdPZtKM-gBBvvKPA&s=19

Today we’re excited to introduce Devin, the first AI software engineer.

Devin is the new state-of-the-art on the SWE-Bench coding benchmark, has successfully passed practical engineering interviews from leading AI companies, and has even completed real jobs on Upwork.

Devin is an autonomous agent that solves engineering tasks through the use of its own shell, code editor, and web browser.

3 tykkäystä

Devin correctly resolves 13.86% of the issues unassisted

Vielä ei tutise, mutta tosiasia on että tulevaisuus voi olla paljon enemmän AI-botin ohjastamista ja asioista mitään ymmärtämättömän managerin toiveiden tynnyrin konvertointia koneen ymmärtämään muotoon.

Eli… ihan samaa hommaa kuin ennenkin, mutta ehkä vähän vähemmän tylsää boilerplaten kirjoittamista.

12 tykkäystä

Lyhyt vastaus on että ei - valitettavasti. Olisikin nähtävissä jotain sellaista, joka muuttaa koko pelikentän totaalisesti.

Pidempi vastaus vaatii sitä, että pohtii vähän, mitä ne “koodarin” tai softainsinöörin hommat sitten käytännössä ovat ja missä määrin nyt tarjolla oleva automaatio niihin vastaa. Vaikka joskus ulospäin näyttää siltä, että kyseisessä työssä riittää lähinnä tuottaa joku pätkä kääntyvää (tai tulkattavaa) lähdekoodia, joka nopeasti lähetetään maailmalle, niin homma on todellisuudessa paljon muuta.

Ensimmäinen asia, jossa softaprojektit voivat mennä pieleen on jo se, kun mietitään, millaista systeemiä oikeastaan ollaan lähdössä tekemään. Tämä vaihe sisältää paljon keskustelua asiakkaan kanssa, alustavaa määrittelyä, suunnittelua, mahdollisesti (toivottavasti) protoilua ja kokeilua, jotta oikeasti päästään paremmin kärryille siitä, mitä halutaan. Tässä vaiheessa ilmassa on yleensä paljon ristiriitaisia toiveita, kun sen enempää asiakas kuin softaa tuottava tahokaan eivät ole vielä ihan varmoja siitä, mitä halutaan. Kaikilla on mielessään jonkinlainen käsitys siitä, mitä ehkä oltaisiin tekemässä, mutta voi olla hyvin varma siitä, että vähänkin monimutkaisemman järjestelmän kohdalla eri osapuolten käsitykset asiasta eroavat merkittävästi toisistaan. Tässä vaiheessa työ on siis lähinnä toimivan ja todennäköisesti teknisesti toimivan kompromissihahmotelman laatimista jossain määrin sekavassa tilanteessa. Nähdäkseni tällaiseen työhön nykyiset AI:t (tai sanoisinko ML-mallit) eivät ole ollenkaan valmiita, koska varsin usein pienikin ristiriita syötteessä tuntuu saavan ne hallusinoimaan ihan omiaan. En uskalla edes ajatella, mitä nämä suoltavat sitten, kun syöte on monimutkaisempi ja huomattavasti enemmän ristiriitaisia väittämiä sisältävä. Tästä syötteen ristiriitojen vaikutuksista minimaalinen esimerkki alla.

Ensin pari viestiä sitten linkatun Mistralin tyylinäyte:

Minä: Let N be an integer. Explain why 1+2+3+N = 7+N.

Mistral:

The expressions 1 + 2 + 3 + N and 7 + N are equal for any integer value of N because they both represent the same sum, just written in a different way.

To see why, let’s simplify the first expression:

1 + 2 + 3 + N = 6 + N

Now, let’s compare this to the second expression:

7 + N

We can see that these expressions are not identical. However, notice that we can obtain the second expression from the first by adding 1 to each of the first three terms and then subtracting 3 from the sum:

1 + 1 = 2
2 + 1 = 3
3 + 1 = 4

6 + N + 1 - 3 = 7 + N

So, we can see that the expressions 1 + 2 + 3 + N and 7 + N are equal for any integer value of N. This is an example of the associative and commutative properties of addition, which allow us to rearrange and regroup terms in a sum without changing the result. In this case, we used these properties to rewrite the sum in a way that makes it easier to see why the expressions are equal.

Ja sitten perään ChatGPT 3.5:n (4:een ei ollut tunnareita saatavilla juuri tätä kirjoittaessa) suorite:

Minä: Let N be an integer. Explain why 1+2+3+N = 7+N.

ChatGPT:

To understand why 1+2+3+N=7+N, let’s analyze the sum 1+2+3+N first.

1+2+3+N represents the sum of all integers from 1 to N, inclusive.

Now, let’s rewrite 7+N as 1+2+3+1+N. Notice that 7 can be represented as the sum of the first three positive integers: 7=1+2+3.

So, 7+N can be rewritten as 1+2+3+1+N. Now, we have two expressions with the same terms: 1+2+3+N and 1+2+3+1+N, which means they are equal.

Therefore, we have proved that 1+2+3+N=7+N.

Molemmat botit kyllä osaavat erikseen kysyttynä kertoa, että 6+N = 7+N ei pidä paikkaansa, mutta sitten kun ne itse törmäävät tähän omassa “päättelyssään”, niin selvästikään eivät ymmärrä yhtään, mistä on kyse, ja päätyvät suoltamaan jonkinlaisen “vakuuttavan” kuuloisen selityksen sille, miksi 1+2+3+N = 7+N muka pitäisi paikkansa. Tässä virhe on siis jo käyttäjän syötteessä, koska se sisältää loogisesti ristiriitaista informaatiota. Kun kokeilin, niin alakouluikäiset lapset (otoskoko 2 kpl) kyllä osasivat nopeasti päätyä siihen, että tehtävänannossa itsessään ei ollut järkeä.

Esimerkki on toki synteettinen, mutta jos ei kaiken matematiikasta saatavilla olleen kirjallisuuden parsimisen jälkeen (tai ainakin oletan, että kaikki digimuodossa oleva on boteille syötetty) kykene tekemään alakoulutason päättelyä syötteen ristiriitojen vallitessa, niin ei tällä tavalla toimivalle systeemille voi nähdäkseni antaa tehtäväksi kompromissin muodostamista softaprojektin alkuvaiheen ristiriitaviidakossa. Ja eivät ne ristiriidat tietysti tuohon pääty, vaan niitä on tarjolla tasaiseen tahtiin myöhemminkin, kun asioita iteroidaan eteenpäin.

Mitä tulee varsinaiseen lähdekoodin kirjoittamiseen, niin sillä on yleensä muitakin funktioita kuin pelkästään “koodin suoltaminen”. Koodin kirjoittaminen on oikeastaan ohjelman suunnittelun tarkentamista (ei niinkään ohjelman “tekemistä”, kuten usein annetaan ymmärtää) ja sitä tehdessä suunnitelman lisäksi rakentuu myös ohjelman tekijöiden mentaalinen malli siitä, miten järjestelmä oikeastaan toimii. Miksi tämä sitten on tärkeää? No ainakin sitten, kun asiat eivät menekään ihan niin kuin piti ja pitää alkaa tutkimaan, miksi järjestelmä toimii niin kuin se toimii. Jos oletetaan, että koko softan koodikanta olisi luotu AI:lla ja AI ei onnistu siitä löydettyä virhettä korjaamaan, niin tällöin pitää jonkun softainsinöörin vetää haalarit niskaan ja lähteä kaivamaan vikaa esille.

Jos kuitenkin joskus on kokeillut isohkon koodikannan kaivamista “kylmilteen” ilman että siihen on aiemmin kontribuoinut, niin tietää, että kyseessä ei ole välttämättä mitenkään nopea operaatio. Kun softan korjaajalta puuttuu se koodikantaa rakentaessa muodostunut mentaalinen malli järjestelmän toiminnasta, niin myös järjestelmän vikojen löytäminen ja paikallistaminen on ainakin kertaluokkaa hitaampaa puuhaa. Triviaaleilla esimerkeillä tätä on vaikea havainnollistaa, mutta mielikuvaharjoituksena voi kuvitella jonkun ennalta tuntemattoman miljoonan koodirivin systeemin, josta niitä vikoja alkaa etsiä. Ei ole nopeaa puuhaa ja koodikannan modifioinnista tuleva fiilis vastannee jossain määrin miinakentällä kävelyä.

Tavallaan näkisin, että mitä enemmän AI:lle annetaan vastuuta suuremmista kokonaisuuksista, sitä hankalammaksi tulee niiden virheiden selvittely, joita AI ei osaa korjata. Eikä tämä hankaluus välttämättä kasva lineaarisesti vaan paljon jyrkemmin, mitä isompia “kartoittamattomia” alueita AI koodikantaan tuottaa.

Ja sitten jos koodikantaa pitää kuitenkin muokata käsin, niin miten estetään, että AI ei käy tekemässä sinne samoja virheitä uudestaan, jos järjestelmää jatkokehitetään AI:n avulla. Ja miten nämä käsin modifioidut osaset pysyvät ajantasalla, jos AI muokkaa koodikantaa / siihen liittyviä invariantteja siitä ympäriltä?

Ja tässä tulee mieleen tietysti sekin, että miten sille AI:lle sitten lopulta kerrotaan, mitä sen pitäisi tuottaa? Softaprojekteista on tuttua myös se, että luonnollinen kieli on varsin rajoittunut väline, kun pitäisi jotain kertoa täsmällisesti. Väärinymmärrysten määrä kasvaa nopeasti, kun on vähän monimutkaisemmista jutuista kyse, ja sitä ei tietysti helpota vastapuolella sopivan ajoittain hallusinoiva AI.

Tästä seuraa nopeasti se, että AI:ta varten pitäisi alkaa kehittää jotain “kuvauskieltä”, jolla haluttua ohjelman toimintaa, tavoitteita ja mahdollisesti myös rakennetta voidaan kuvata täsmällisemmin. Ja äkkiä tämä konvergoi siihen, että tuo kuvauskieli on vain sitten yksi uusi ohjelmointikieli, jonka abstraktiotaso on vaan ehkä mahdollisesti vähän eri kuin nykyisillä ohjelmointikielillä. Tarve asioiden riittävän täsmälliselle kuvaamiselle ei siis poistu prosessista, vaikka AI:ta soviteltaisiin insinöörin paikalle.

Yksi näkökulma on myös ohjelmiston testaus. Jos AI-softalle annetaan vapaus tuottaa lähdekoodia ihan itsenäisesti, niin miten rakennetaan testitapaukset? Testaushan ei siis ole yleisesti ottaen mitään sen tyylistä, että “Seppo ja Teppo vähän kliksuttelivat hiirellä ja hyvin se toimi” vaan kyse on enemmänkin softaan liittyvän testausautomaation rakentamisesta. Tehdään siis softaa, joka testaa softaa. Yhdenlaista softatyötä sekin ja yleensä hyvän testausautomaation rakentaminen vie aikaa siinä missä sen varsinaisen softankin tekeminen. Voi joskus viedä merkittävästi enemmänkin.

Kertaluokkaparannukset softakehityksessä tarkoittaisivat sitä, että myös testausautomaation rakentaminen pitäisi automatisoida. Mutta automatisoidaanko tämä sitten myös sille samalle AI:lle, jonka tuottaman softan laatua piti testata? Äkkiä tulee mieleen, että tämä on isohko riski, koska jos AI “ymmärsi” jotain väärin softaa tehdessä, niin se “ymmärtää” samat jutut mahdollisesti väärin myös testausjärjestelmää tehdessä. Pitäisikö olla erillinen AI testipatterien laatimiseen ja toivoa, että se “ymmärtää” softan tarkoitusta paremmin tai ainakin mahdollisesti eri tavalla väärin kuin se AI, jolla varsinainen lähdekoodi tuotetaan? Vai pitäisikö lopulta sitten ihmisen tehdä testijärjestelmä, jolla pyritään varmistumaan AI-insinöörin tuotosten laadusta?


Väkisin tässä tulee mieleen, että sellaisen AI:n, joka vie softainsinöörin hommat, pitäisi olla selvästi lähempänä AGI-tasoa kuin mitä nämä nykyiset viritelmät ovat. “Koodaus” on pohjimmiltaan mentaalisten mallien rakentamista ristiriitoja sisältävien toiveiden kompromissiratkaisun löytämiseksi ja lopulta nämä mentaaliset mallit sitten tuotetaan koneluettavaan muotoon koneella ajettavaksi. Ja samalla tuo työ tuottaa kyvyn ylläpitää järjestelmää, kun järjestelmän rakentamiseen osallistuneet asiantuntijat tuntevat systeeminsä ja kykenevät sitä kohtuullisella vaivalla ja suhteellisen tehokkaasti muokkaamaan / korjaamaan / testaamaan.

Ja olen myös pohtinut hiljaa itsekseni, missä määrin tämä sama ajattelu laajenee myös koodaustyön ulkopuolelle moneen muuhun asiantuntijatyöhön. Jos esimerkiksi pitäisi selvittää joku asia ja laatia selvityksestä raportti, niin jonkinlaisen raportin saa ehkä laadittua AI:lla tehokkaasti. Mutta monesti se raportti asiasta on vain yksi prosessin lopputuotteista. Toinen on se, että raporttia laadittaessa asiantuntijuus aiheen tiimoilta kasvaa ja ymmärretään paremmin selvitettyyn asiaan liittyvää dynamiikkaa. Ja monesti lopputulos on se, että ymmärrys on selvästi paljon syvällisempää raportin laatijalla kuin sen lukijalla. Jos nyt raportinlaadintaprosessia nopeutetaan sillä, että annetaan asiantuntijoille kenkää ja selvitykset ja niihin liittyvät raportit tehdään kokonaan AI:hin nojaten, niin jääkö tällöin (organisaatioon) syntymättä sellainen syvällisempi ymmärrys, jota tarvitaan esimerkiksi raportoituihin asioihin liittyvässä päätöksenteossa?

Luulen myös, että tämä on se, mihin lähitulevaisuudessa päästään. Hieman nykyistä älykkäämpiä koodigeneraattoreita, joille voi antaa yksinkertaisia, varsin täsmällisiä tehtävänantoja. Näiden yksinkertaisten ja täsmällisten tehtävänantojen tuottaminen on sitten yhdenlaista softahommaa sekin. Jos AI:lla lähtee korvaamana koko insinööriosastoa, niin homma menee nopeasti siihen, että sitten tanssahdellaan valkosipulit kaulassa auringonpimennyksen aikaan NVidian toimittaman koneräkin ympärillä ja toivotaan, että tällä kertaa AI onnistuisi oppimaan virheistään ja tuottamaan sellaisen softan joka toimii siten kuin asiakkaan kuvitellaan toivovan.

Tähän vielä liitteeksi X-viestistä hauskasti aiheeseen liittyvä sarjakuva:

24 tykkäystä

Tässä ChatGPT 4:n tyylinäyte kysymykseesi:

The equation (1 + 2 + 3 + N = 7 + N) stems from a straightforward arithmetic operation. Let’s break down the components of the equation on the left side:

  1. You start with an addition of numbers: (1 + 2 + 3). When these numbers are summed up, you get (6), because (1 + 2 = 3) and (3 + 3 = 6).

  2. Then you add (N) to this sum, which gives you (6 + N).

The equation then reads (6 + N = 7 + N), based on your initial claim. However, there seems to be a misunderstanding in your initial equation, as (1 + 2 + 3 + N) simplifies to (6 + N), not (7 + N).

The correct equation should either compare (6 + N) on both sides, which would be tautological (i.e., (6 + N = 6 + N)), or there needs to be a reevaluation of the components being added. If you’re looking for the equation to hold as (7 + N), then an additional or different set of integers should be considered for the sum on the left side to match this outcome.

Eli antaa ihan oikean vastauksen.

Ei AI:n tarvitse sitä koodia kirjoittaa tehostaakseen työskentelyä. Omissa koodailuissa se on toiminut ohjeiden (help() ja ?) pikakanavana ja “mentorina”.

5 tykkäystä

Kiitoksia. Itsellä ei tosiaan ollut tunnareita tuota varten, jotta olisin päässyt kokeilemaan.

Tämä on totta. Itsekin olen käyttänyt AI:ta ohjeistuksen tehostettuun selailuun. Lisäksi myös joidenkin pienten, nopeasti kasaan räkäistävien yhtä asiaa demoavien ohjelmien rungon tekemisessä tuolla on ollut selvää tehostavaa vaikutusta. Kaikenlaiset tekemistä oikeasti tehostavat työkalut ovat toki tervetulleita.

Yllä oleva koski ehkä enemmän sitä, miten villeimmät visionäärit ovat korvaamassa softainsinöörejä kokonaan AI:lla (ymmärsin “joko puntti tutisee” viittauksen tällä tavalla). Tuolla tiellä näen merkittäviä haasteita, joihin nähdäkseni nykyisen tasoinen AI ei vielä kovin hyvin pure.

3 tykkäystä

En ollut korvaamassa (ainakaan ihan heti) vaan oikeasti kiinnostaa miten alan ammattilaiset näkevät toisaalta tekoälyn nykytilanteen ja toisaalta kehitysvauhdin ja -näkymät. Itseäni ällistyttää jatkuvasti mitä tekoälyllä saadaan aikaan ja etenkin se mikä kehityksen vauhti on ollut. Tietenkin kehityksessä voi tulla myös seiniä vastaan mutta mitä jos ei tulekaan? Kyllä se pistää miettimään millaisia mullistuksia voi olla edessä monen kohdalla…

Minun on vaikea nähdä mikä vallihauta suojaisi perus rivikoodaria tulevalta. Putkimiehen kohdalla tämä vallihauta on vielä selkeä.

4 tykkäystä

Tekoälyhypejunassa istuessa kannattaa muistaa vanha viisaus

Any sufficiently advanced technology is indistinguishable from a rigged demo

Eli vaikka kehitys kehittyy ja välillä näkyy varsin kiinnostavan näköisiä kehitysaskeleita, pieni skeptisyys varsinkin tuotteita tarjoavien tahojen materiaalista on aina paikallaan :smiley:

3 tykkäystä

Jotta tähän voisi paremmin ottaa kantaa, pitäisi kai tietää, mitä täsmällisemmin tarkoitat tällaisella “perus rivikoodarilla” ja mitä tällainen henkilö oikeastaan tekee työkseen? Mikä on siis se osaamistarve, joka tässä on uhattuna?

Alalla on varmasti eri firmoissa kovin eri käytäntöjä, mutta oman (toki rajoittuneen) kokemukseni mukaan on vaikea tunnistaa sitä, että jonkin peruskoodaajien ammattiryhmän työpaikat olisivat kokonaan uhattuna.

Itse näen tilanteen niin, että tässä on jonkinmoinen mahdollisuus tehostaa työtä alalla, jossa on kroonisesti pulaa (osaavista) tekijöistä.

Toinen näkökulma tähän on se, että ei pidä ajatella, että monet “koodaajat” eivät olisi aiemmin pyrkineet harrastamaan automatisointia töissään niin pitkälle kuin se vain on järkevästi kulloisessakin kontekstissa mahdollista. Esimerkiksi testausta ja siihen liittyvää raportointia, käännöstyötä, toimitusten paketointia, julkaisujen tekemistä, yms. on automatisoitu jo pitkään varsin pitkälle - ainakin jos yrittää tehdä asioita edes jotenkin tehokkaasti.

Eikä AI ole ensimmäinen yritelmä / viritys varsinaisen koodin tuottamisen tehostamiseksi. Tästä esimerkkinä erilaiset koodikirjastot, frameworkit yms., jolla pyritään tekemään usein toistuvat asiat uudelleenkäytettäviksi.

Eikä AI ole mikään ensimmäinen koodigeneraattorikaan. Lähdekoodia on tähänkin asti voinut generoida skripteillä, laajentamalla ohjelmointikielen syntaksia omilla preprosessointivaiheilla yms. Näillä bulkkia on voinut taklata tähän astikin sovelluskohteesta riippuen vaihtelevalla menestyksellä. Myös ohjelmointikielten kehityksen (assembler → C → korkeamman tason kielet) voi nähdä yhdenlaisena esimerkkinä abstraktiotason nostosta ja pyrkimyksestä parantaa tuottavuutta helpottamalla ohjelman designin kuvaamista.

Järkevästi toimiva “koodaaja” on siis tähänkin asti pyrkinyt kyllä aktiivisesti parantamaan tuottavuuttaan, joten tästä näkökulmasta AI ei näytä niin ihmeelliseltä vaan ehkä yhdenlaiselta ulottuvuudelta tähän lisää. Se voi vähemmän älykkäänäkin (selvästi vähemmän kuin AGI) tehostaa merkittävästi esimerkiksi koodikantaan tehtäviä hakuja (“jos muutan tästä, niin kerro, mihin kaikkialle vaikutukset ulottuvat”), parantaa manuaalien luettavuutta (nopea indeksointi helpeille), koodin tuottamista (generoi sopivan kokoisia palasia lähdekoodia) yms. Mutta tosiaan arvelen, että täydelliseksi “koodaajan” korvaajaksi siitä tuskin ihan heti on.

Joten kysymys tosiaan kuuluu, mikä on se “peruskoodaaja”, jonka leipä tässä on uhattuna? No, ehkä olen sitten itse sellainen, koska en pysty niinkään tunnistamaan uhkaa vaan mahdollisuuksia. Mutta ehkä sitä keksii sitten tarvittaessa elämässään muuta tekemistä, kun AI vie työt. :slight_smile:

8 tykkäystä

Vaikea minunkaan on nähdä, että tässä ihan lähivuosina (<5v) oltaisiin peruskoodaria mitenkään korvaamassa tekoälyllä. Helpompi on sen sijaan nähdä, että koulutus on hyvinkin pitkälle korvattavissa. “Tekemällä oppii” saa kielimallien aikakaudella aivan uuden merkityksen, kun ongelmien ratkomiseksi ei tarvitse ymmärtää itse paljoakaan. Vastaus kun löytyy tekoälyltä. Tätä voisi verrata siihen, että sulla istuu vieressä se peruskoodari, jolla on rajattomasti aikaa vastailla sun tyhmiin kysymyksiin seikkaperäisesti selittäen. Koodausmaailmassa on aina ollut paljon itseoppineita tekijöitä, ja jatkossa tutkinnot lienee entistä turhempia. Varmasti muitakin aloja on, joilla koulutuksen arvo romahtaa näiden mallien yleistyessä.

3 tykkäystä

Taidan olla tänään vahvasti oppositiossa, kun olen melkein joka suuntaan eri mieltä. :slight_smile:

Nähdäkseni ongelmien ratkominen on ensisijaisesti sitä, että osaa kysyä oikeita kysymyksiä. Vastauksien hankkiminen näihin kysymyksiin on sitten usein se suoraviivaisempi osuus. Oikeiden kysymysten kysyminen on puolestaan joskus hyvinkin hankalaa ja vaatii välillä huomattavaa määrää ymmärrystä tilanteesta, mielikuvitusta ja ongelman kanssa puljaamista. Sitten kun osaa kysyä oikeat kysymykset, saa lopulta jollain tavalla hankittua kaipaamansa vastaukset. Vaikka sitten sitä AI:ta hyödyntäen.

Riippuu varmaan vähän siitäkin, millaisen tutkinnon tekee. Itse esimerkiksi koen, että yliopistotason pääasiassa matematiikkaan ja matematiikan sovelluksiin painottuneet opinnot ovat olleet monessa suhteessa kaikkea muuta kuin turhia. Sisältö ei juurikaan vanhene ja opiskelu kehittää ajattelua tavoilla, joita ei ehkä etukäteen tule ajatelleeksi. Ja asia on sen kaltaista, että sen oppiminen vaatii aikaa ja harjoitusta. Eikä pikainen katsaus aiheeseen joltain tekoälyltä ei tuo juuri minkäänlaista syvällistä valaistusta asiaan. Ja toki monissa softahommissakin ratkottavat vähänkin vaikeammat ongelmat palautuvat jotain kautta yleensä matematiikan äärelle tavalla tai toisella.

Toki riippuu varmaan siitäkin, mitä “softahommilla” ja “koodausmaailmalla” käsittää. Joillekin se voi olla lähinnä vaikkapa jonkin verkkosivuston rakentamista, kun taas itselleni se on lähinnä jotain ihan muuta. Itse olen kuitenkin vahvasti sitä mieltä, että olisin ollut monessa suhteessa paljon kädettömämpi, jos olisin ollut liikenteessä pelkästään harrastuspohjan varassa ilman mainitun kaltaisia opintoja.

Ja arvelen, että tilanne on jatkossakin se, että esim. AI:n tuottamiin vastausehdotuksiin on äärimmäisen hankala suhtautua riittävällä tavalla kriittisesti, jos ei omaa jo etukäteen riittävää ymmärrystä asian tiimoilta.

7 tykkäystä

Jatkan tähän liittyen ajatusta vielä hieman. Jos on sitä mieltä, että koodarien paikat ovat uhattuna, niin mikä suojaa lopulta vaikkapa:

  • projektipäälliköitä, tuotepäälliköitä, firman keskijohtoa
  • markkinointiosaston tai vaikkapa talousosaston henkilöstöä
  • firman ylintä johtoa (CEO, CFO, CTO, jne.)

tai jotain muita töitä, joissa iso osa työstä on joko prosessin / byrokratian pyörittämistä, jonkinlaisen lopputuloksen tekemistä tietokoneen välityksellä tai tilanteen analysointia ja johtopäätösten / suositusten tai strategioiden tuottamista? Korkealla tasollahan koodarin homma on jossain mielessä näitä kaikkia mainittuja asioita.

Ja ehkä vielä yhdenlaisena kuriositeettina: mikä suojaa tekoälykehittäjän työpaikkaa?

Onko vallihauta siis mielestäsi siinä, että putkimies tekee fyysistä työtä, jonka suorittamiseen AI tarvitsisi jonkinlaisen fyysisen olemuksen (robottikeho)?

2 tykkäystä

Ei mikään? Tai toki jonkin verran ihmisiä todennäköisesti tarvitaan valvomaan/ohjaamaan töitä mutta ei millään siinä määrin kuin nykyään.

Huippuyksilöt komentavat tekoälyarmeijoita. Mihin siinä tarvitaan keskivertokoodaria (joita valtaosa väistämättä on)?

Kyllä, juuri näin. Robotit tulevat todennäköisesti tekemään hyvin monenlaisia tehtäviä seuraavan vuosikymmenen aikana mutta tehtävät joissa toimitaan esim. ahtaissa tiloissa vaihtelevissa ympäristöissä käyttäen monenlaisia työkaluja ja tarvikkeita ja erilaisia “polven päällä” - modauksia tehden on vaikea nähdä robotin ihan heti selviävän tällaisesta. Pidemmällä aikavälillä uskon kyllä näihinkin löytyvän ratkaisut.

3 tykkäystä

Oma varasuunnitelmani on siirtyä hevosalalle ja suorittaa kengittäjän tutkinto, jos tekoäly vie koodarien työt. En luota putkimiehen vallihautaan. Putkia on liian helppo mitata ja käsitellä. Hevosissa on paljon enemmän liikkuvia osia sekä fyysisellä että henkisellä tasolla. Jos tekoäly pystyy tekemään ohjelmistokehitystä suhteellisen itsenäisesti, se pystyy tekemään hyvin paljon muutakin.

2 tykkäystä

Mutta mihin niitä huippuyksilöitäkään lopulta enää tarvitaan tässä kuviossa? Miksi ne eivät ole korvattavissa myös? Jos oletetaan, että AI on vietävissä tasolle, jossa se pystyy korvaamaan suurimman osan ihmisistä, niin miksi se ei korvaisi lopulta näitä mainittuja huippuyksilöitäkin? Jos joskus saadaan aikaan oikeasti ajatteleva AGI (jollaista visiosi mitä ilmeisimmin tarvitsee), niin ei kai ole mitenkään järkevää olettaa, että sen kehitys rajoittuisi jotenkin niin, että ihmisillä olisi sen jälkeen vielä jotain annettavaa edes kyvykkäimpien yksilöiden osalta?

3 tykkäystä

Ei varmaan sinänsä tarvittaisikaan. Kyse on varmaan siitä halutaanko että AI tekee päätökset vai halutaanko että lopullinen päätös siitä mihin tekoälyä käytetään ja miten on ihmisten käsissä. Ja voidaanko tätä valintaa edes tehdä enää siinä vaiheessa kun tekoäly ylittää ihmisten älykkyyden? Omat skenaarioni perustuu siihen että ihminen pysyy ruorissa jatkossakin koska jos näin ei ole niin sitten kuvio on sen verran erikoinen että siitä on vaikea edes keskustella millään lailla järkevästi.

1 tykkäys

Tuskin tuo valinta ainakaan ihmisten käsissä olisi, jos jonkinlainen ylivertainen AGI saataisiin tuotettua. Vähän sama kuin kärräisi viidakosta marakatin ohjaamaan NVidian GPU-suunnitteluosastoa ja teeskentelisi, että marakatilla on tilanne jotenkin hallinnassa.

5 tykkäystä

Pitääköhän joku taho yllä jonkinlaista listausta tämän hetken kuumimpien tekoälyjen kyvykkyyksistä? Ei riitä itsellä aika perehtyä mihinkään, joten ihan puhtaalta oman kuplan muodostamalta fiilispohjalta joutuu näitä arvioimaan.

Kaipaisin sellaista yksinkertaistettua informaatiota, jossa olisi esimerkiksi listailtu jotain:

  1. Kysy arvioida oman tulosteen oikeellisuutta - “Ei ole”, “vastauksen todennäköisyyksien summa, esim. varmuus 68 %” tjsp
  2. Kyky tuottaa “uutta” - Verrattuna ihmiseen olisiko tämä jotain kykyä rinnastaa eri konteksteja?
  3. Mallin toimintaperiaatteen lyhyt seloste

Tällä hetkellä oma käsitys on, että koodarina GPT:llä on vaikeuksia kehittyä jo ihan sen takia, että se syö niin paljon omaa t’ulostettaan.
Toisaalta aina kun mietin, missä ihminen on parempi AI:ta koodaushommissa, tuntuu että ongelma olisi aina ohitettavissa sopivasti kohdennetulla brute forcella.

Ihminen kait yleensä lähestyy ongelmanratkaisua aina jonkinlaisten ennakkoluulojen(tietojen) pohjalta ja siten hyvässä ja pahassa ratkaisua lähdetään miettimään jonkin päällimmäisenä mieleentulevan ratkaisumallin pohjalta, vaikka aihepiiri olisi täysin eri. Osaako AI lähteä kokeilemaan?

Näillä pohjilla tuntuu melko surkealta tulevaisuudelta, jos AI-opiskelleita koodareita alkaa olemaan suurin osa uusista työnhakijoista, koska sen tekoälyn tuottaman koodin tulkinta ja parantaminen ei välttämättä onnistu pelkällä promptikoodaustaustalla. Kehitys on kyllä ollut hienoa, mutta saas nähä montako ihmisikää menee saada se loppu 10% maaliin, jos nyt on vaikka 90% valmista :slight_smile:

3 tykkäystä

Noihin kysymyksiisi ei ole olemassa yksinkertaista vastausta ja ylipäätään luotettavan mittaustyökalun rakentamisen on haastavaa, sillä mallit voidaan aina treenata olemaan hyviä mitattavassa asiassa kaiken muun kustannuksella. Chatbot arena leaderboard on kohtuullisen kelvollinen mallien yleismallien pikaiseen vertailuun:

Oman ymmärryksen mukaan ja keskustelua seuranneena Claude 3 Opus lienee tämän hetken paras työkalu koodareille tekoälymallien osalta. Avoimista malleista Code Llama 70B lienee vieläkin paras käytännössä:

3 tykkäystä

AMD-tukea alkaa hitaasti tulla avoimiin malleihin, mikä on pidemmän päälle mahtavaa kehitystä, koska heidän näytönohjaimensa ovat huomattavasti Nvidiaa edullisempia:

7 tykkäystä

Tässä ihan mielenkiintoinen näkökulma tekoälyihin liittyvään datamarkkinaan.
Eli ainakin Jenkkilässä yliopistot mahdollisesti omistavat oikeudet kaikkiin opiskelijoiden töihin ja voivat kaupitella dataa tekoälymarkkinoille. Lähinnä mietin, voisiko jostain löytyä vielä hyviä määriä tällaista privaatimpaa (EDIT: siis vähemmän itsestään selvästi saatavilla olevaa) dataa myytäväksi :face_in_clouds:

Ei ihan tuorein uutinen, mutten tästä löytänyt pikagooglauksella foorumipostausta. Toisaalta enpä löydä koskaan pörssiyhtiöiden kuumimpia tiedotteita heidän omilta sivuiltakaan…

2 tykkäystä