Demostatuotantoon:mitätekoälychatbotinrakentaminenoikeastivaatii
Rakennan työkseni tekoälychatbotteja: keskusteluavustajia ja liidilomakkeita, joita yritykset upottavat omille sivuilleen ja jotka vastaavat kävijöiden kysymyksiin yrityksen omasta sisällöstä. Työ ulottuu läpi koko ketjun, tiedonhausta ja mallin integroinnista aina valmiiseen käyttöliittymään, ulkoisen kehitystiimin kanssa. Isoin oppi tähän mennessä on se, kuinka valtava ero on botilla joka näyttää demossa hyvältä ja botilla johon oikea yritys voi luottaa päivästä toiseen.
Chatbotin demoaminen on helppoa, tuotantoon vieminen ei
Kielimallin kytkeminen chat-ikkunaan on illan homma, ja lopputulos kuulostaa jopa vaikuttavalta. Vaikeus alkaa vasta kun oikeat käyttäjät kysyvät oikeita kysymyksiä: eilen muuttuneesta tuotteesta, tavalla jota et osannut ennakoida, ja odottavat vastausta joka on oikeasti totta. Demon riittää toimia kerran. Tuotantobotin on osuttava oikeaan, tai myönnettävä rehellisesti ettei tiedä, tuhansia kertoja päivässä, jonkun toisen yrityksen nimissä.
Tiedonhaku on se varsinainen tuote
Itse malli on nykyään bulkkia. Botin arvon ratkaisee se, mitä sille syötetään. Tekniikan nimi on RAG eli retrieval-augmented generation: sen sijaan että toivoisi mallin muistavan asiakkaan liiketoiminnan, sille rakennetaan haku asiakkaan omaan sisältöön. Sivut ja dokumentit crawlataan, pilkotaan paloihin, jokainen pala muutetaan embeddingiksi ja tallennetaan vektorikantaan. Kun kysymys tulee, haetaan merkitykseltään lähimmät palat ja annetaan ne mallille taustatiedoksi. Suurin osa insinöörityöstä, ja suurin osa laadusta, on juuri siinä haussa, ei promptissa.
Ankkurointi, jotta malli lakkaa arvailemasta
Ilman ohjausta kielimalli keksii mielellään itsevarman mutta väärän vastauksen. Koko haun idea on pitää se kiinni oikeassa materiaalissa, ja loput on mallin ohjeistamista: nojaa annettuun tietoon, myönnä kun et tiedä, pysy aiheessa. Sen käytöksen saaminen tasaiseksi on oma käsityönsä, oli kysymys sitten epämääräinen, hankala tai sellainen johon sisällössä ei ole vastausta. Se on jatkuvaa hienosäätöä: muuta jotain, aja läpi joukko oikeita kysymyksiä, katso mikä parani, toista.
Se tylsä 80 %, josta kukaan ei puhu
Demo on se malli. Tuote on kaikki sen ympärillä. Käytännössä suurin osa työstä on niitä osia, joista kukaan ei postaa kuvakaappauksia:
- Sivuston crawlaus, joka kestää tosimaailman sotkun: PDF:t, sekavan HTML:n ja sivustot jotka muuttuvat kesken kaiken.
- Haun pitäminen ajan tasalla kun asiakas päivittää sisältöään, ilman että kaikki lasketaan uusiksi joka yö.
- Taustatyöt ja jonot, jottei hidas crawl tai iso päivitys koskaan jäädytä käynnissä olevaa keskustelua.
- Mallin huonojen hetkien hoitaminen: aikakatkaisut, rajoitukset ja liian pitkät syötteet käännetään siistiksi vastaukseksi eikä kaatumiseksi.
- Hinta ja vasteaika, koska jokainen vastaus on maksullinen API-kutsu eikä kukaan jaksa odottaa.
Mikään näistä ei näy demossa. Silti juuri nämä ratkaisevat, pitääkö asiakas botin päällä vai ei.
Full-stackia, koska työ ei lopu malliin
Tästä syystä pidän tätä full-stack-työnä enkä 'tekoäly'-työnä. Haku on data-ongelma. Sen tarjoilu luotettavasti on backend-ongelma. Se, että asiakas voi itse säätää bottiaan ja lukea oikeita keskusteluja, on frontend-ongelma. Ja widgetin upottaminen niin että se latautuu nopeasti vieraalla sivustolla rikkomatta sen ulkoasua, on samaa käsityötä jonka opin vuosien asiakastöissä. Malli on vain yksi osa. Sen muuttaminen joksikin johon ihmiset luottavat on se varsinainen homma.
Kiinnostavin kärki juuri nyt ei ole fiksumpi malli vaan sen ympärillä oleva insinöörityö: haku joka pysyy tarkkana, järjestelmä joka pysyy pystyssä ja käyttöliittymä joka saa kaiken tuntumaan yksinkertaiselta. Sitä minä pääsen rakentamaan, ja siinä se oikea työ on.