Blogi / 7. tammikuuta 2024 21:00

Moniagentti tekoäly

AI generoitu kuva öljypumpusta

“Data on uusi öljy” Clive Humby sanoi jo vuonna 2006 [ Tech giants may be huge, but nothing matches big data] tarkoittaen miten dataa jalostamalla pystytään saamaan rahallista hyötyä. Sitaatti pitää vieläkin paikkaansa ja datan tärkeys ei ole häviämässä.

Teknologian kehittyminen on kuitenkin tuonut myös uuden vaihtoehdon datan hyödyntämiseen: datasta tuotettujen työkalujen soveltaminen. Kuten muovista työkalua käyttävä henkilö ei tarvitse omaa öljyä, omaa dataa ei tarvitse olla; pelkkä työkalu riittää tuottavuuden kasvuun.

Datalla jalostetut tekoälytyökalut ottivat isoja harppauksia 2017 self-attention pohjaisen arkkitehtuurin ansiosta [ Attention Is All You Need], jolla päästiin eroon vanhasta rekursiivisesta rakenteesta mahdollistaen suuremman datamäärän käytön. Nykyaikaisten tekoälyjen popularisointi alkoi kuvien generoinnista annetun tekstin perusteella syksyllä 2022 ja loppuvuodesta julkaistusta OpenAI:n ChatGPT chattipalvelusta [ Introducing ChatGPT].

Tässä blogikirjoituksessa keskityn vain tekstipohjaisiin tekoälyihin ja käytän näistä termiä LLM (large language model)

Agentti

LLM:n käyttö pelkkään juttelemiseen ei päästä sen koko osaamista valloilleen. Sillä on ymmärrys milloin tarvitsisi lisätietoa tai tietynlaista työkalua, mutta ilman mahdollisuutta toimia, sen pitää pärjätä ilman. Kun LLM saa näitä lisäominaisuuksia, sen autonomia kasvaa ja aletaan käyttämään termiä Agentti.

Agentilla ei vielä selkeää akateemista määritelmää, joten käytän MetaGPT:n Concepts | MetaGPT määritelmää:

Agentti = aivot + toimintakyky + havaintokyky + ajatus + muisti

  • Aivot: LLM joka toimii päätöksentekijänä

  • Ajatus: Aivot prosessoi tiedon ja tuottaa ajatuksen jonka perusteella tapahtuu toiminnan valinta

  • Toiminta: Agentilla on eri vaihtoehtoja miten toimia riippuen tilanteesta, esimerkiksi käyttää työkalua, kysyä apua ihmiseltä tai etsiä verkosta lisätietoa

  • Havaintokyky: Agentilla voi olla pääsy esimerkiksi ulkolämpömittariin tai yrityksen sisäisiin mittareihin, jonka avulla aivot saavat tiedon tarvittaessa

  • Muisti: Agentti tarvitsee muistin jotta se pystyisi vuorovaikutukseen ihmisen tai toisten agenttien kanssa. Esimerkiksi ChatGPT osaa ottaa edelliset viestit huomioon vastatessaan eli sillä on muisti.

Näiden lisäksi agentilla voi olla annettu rooli ja persoona, esimerkiksi tiimityöskentelyssä LLM voi olla testaajan roolissa ja opiskelun apuna persoonana voi olla opettaja.

AI generoitu kuva aivoista yhdistettynä laskimeen

generoitu kuva aivoista yhdistettynä laskimeen

Seuraavassa esimerkissa kysyn saman kysymyksen suoraan, sekä agentilta, jolle on annettu laskin työkaluksi

Sijoitukseni arvo on 1000 euroa ja se kasvaa kuusi prosenttia vuodessa. Mikä on sijoitukseni arvo 11 vuoden kuluttua?

Esimerkki 1: pelkkä LLM (OpenAI gpt 3.5)

Sijoituksesi arvo 11 vuoden kuluttua voidaan laskea käyttämällä seuraavaa kaavaa: Loppuarvo = Alkuarvo * (1 + Kasvuprosentti)^Aika Missä: Alkuarvo on alkuperäinen sijoituksesi arvo (1000 euroa) Kasvuprosentti on kasvuprosentti vuodessa (6% tai 0,06) Aika on sijoituksen pituus vuosina (11 vuotta) Sijoituksesi loppuarvo on siis: Loppuarvo = 1000 * (1 + 0,06)^11 Lasketaan tämä: Loppuarvo = 1000 * 1,06^11 Loppuarvo ≈ 1000 *1,806111 Loppuarvo ≈ 1806,11 Sijoituksesi arvo 11 vuoden kuluttua olisi noin 1806,11 euroa, kun kasvu on 6% vuodessa.

Esimerkki 2: LLM (OpenAI gpt 3.5) agentti laskimella

Ajatus: Käytän laskinta laskeakseni sijoituksen arvon 11 vuoden kuluttua. Käytän kaavaa A = P * (1 + r)^n, missä A on sijoituksen tuleva arvo, P on alkuperäinen sijoitus, r on korkoprosentti ja n on vuosien määrä. Toiminta: Laskin Syy toiminnalle: Valitsin tämän vaihtoehdon, koska laskin pystyy laskemaan sijoituksen arvon tulevaisuudessa. Toiminnan syöte: 1000 * (1 + 0.06)^11 Havainto: 1898.298558335426

Toiminta: Vastaus ihmiselle Syy toiminnalle: Valitsin tämän vaihtoehdon, koska voin antaa sinulle suoran vastauksen sijoituksesi arvosta 11 vuoden kuluttua. Pitkä vastaus: Sijoituksesi arvo 11 vuoden kuluttua on 1898.30 euroa. Lyhyt vastaus: 1898.30 euroa.

Ensimmäisessä esimerkissä ajatusprosessi on oikea, mutta “päässälasku” ei suju oikein. Yhtäkuin merkki vaihtuu approksimaatioon eli malli kuitenkin tietää ettei pysty antamaan tarkkaa vastausta.

Jälkimmäisessä agenttipohjaisessa ratkaisussa LLM osaa käyttää annettua työkalua. Paremmin dokumentoitu ajatusvirta auttaa myös löytämään mahdollisia virheitä prosessissa helpommin. Lopullisessa applikaatiossa pystytään antamaan vain lopullinen vastaus ja jätetään muut ajatukset lokitiedostoon.

Ajatusprosessi on hyvin ihmisenkaltainen: ensin mietitään kaava, jolla lasku toteutuu, todetaan että laskinta tarvitaan ja toteutetaan lasku. Ilman agenttia tulos oli hatusta temmattu, vaikkakin oikeaa kokoluokkaa.

Moniagentti

Yksittäinen ihminen tekee välillä virheitä tai unohtaa ottaa pienen asian huomioon liian isossa kokonaisuudessa. Kompleksit ongelmat tarvitsevat tiimin; myös AI agenteilla.

Jokaisella tiimin jäsenellä on oma vastuualue ja yhdistämällä voimat päästään parempaan lopputulokseen. Esimerkiksi ChatDev ChatDev työkalussa ohjelmistokehityksessä rooleina voivat olla toimitusjohtaja, tuotepäällikkö, teknologiapäällikkö, ohjelmoija, arvioija, testaaja ja graafinen suunnittelija.

Erilaisuus on rikkaus myös tekoälyillä ja antamalla eri agenteille erilaisen persoonan saadaan usampi näkökulma ongelman ratkaisemiseen. Ihannetilanteessa käytetään myös eri valmistajien LLM tuotteita.

Myös ihminen voi olla osa tiimiä. Laittamalla ihminen asiantuntijan tai konsultin rooliin pystytään vaikuttamaan tiimin työskentelyyn; häneltä kysytään apua tarvittaessa.

Moniagentteja rakennettaessa pitää ottaa huomioon:

  • Agentit: Minkälaiset agentit osallistuvat toimintaan.

  • Organisaation käyttämät ohjeet: Määritetyt tavat miten ja missä järjestyksessä asiat tapahtuvat; esimerkiksi ohjelmoinnin etiketit.

  • Kommunikointi : Agenttien välinen tapa kommunikoida, yksinkertaisimmillaan jokainen agentti lähettää viestin seuraavalle.

  • Ekonomia: Kuinka resurssit jaetaan ja miten tehtävät priorisoidaan

Esimerkkeinä käytetään yleensä pienen pelin kuten matopelin koodaamista, mikä on tarpeeksi monimutkainen tehdä ja helppo testata. Näissä kuitenkin tekstiä tulee liikaa, joten esimerkiksi esitän Korvatunturin keskustelun lahjan suunnittelemisesta minulle.

AI generoitu kuva Joulupukista

AI generoitu kuva Joulupukista

Käyttäjä: Rakas pukki

Toivoisin tänä vuonna jotain käytännöllistä ja suomalaista. Tykkään punaisesta ja puusta.

-Tuukka

Joulupukki: Toiminta: puhu Tontulle Ajatus: Keskustelen tontun kanssa ja kysyn hänen mielipidettään Tuukan toiveesta Toiminnan syöte: Mitä mieltä olet Tuukan toiveesta?

Tonttu: Toiminta: vastaa joulupukille Ajatus: Haluan kuulla lisää Tuukan toiveesta ennen kuin teen päätöksen Toiminnan syöte: Mikä oli Tuukan toive?

Joulupukki: Toiminta: puhu Tontulle Ajatus: Kysyn uudelleen Tuukan toivetta Toiminnan syöte: Tuukan toive oli jotain käytännöllistä ja suomalaista. Hän tykkää punaisesta ja puusta.

Tonttu: Toiminta: oma sisäinen mietintä Ajatus: Mikä olisi käytännöllinen ja suomalainen lahja, joka liittyy punaiseen ja puuhun? Voisin ehkä ehdottaa Tuukalle punaista puista käsityötä, kuten puista leikattua koristetta tai punaista puista kynttilänjalkaa. Tai ehkä hänelle voisi antaa punaisen puuvillapaidan tai punaisen villahuivin, jotka ovat molemmat suomalaisia käsitöitä.

Tonttu: Toiminta: vastaa joulupukille Ajatus: Vastaan joulupukin kysymykseen Toiminnan syöte: Mitä jos antaisimme Tuukalle punaisen puusta tehdyn koristeen tai kynttilänjalan? Ne olisivat sekä käytännöllisiä että suomalaisia.

Joulupukki: Toiminta: puhu etsivätontulle Ajatus: Kysyn etsivätontulta, onko Tuukka ollut kiltti tänä vuonna Toiminnan syöte: Onko Tuukka ollut kiltti tänä vuonna?

Etsivätonttu: Toiminta: katso muistiosta Ajatus: Tarkistan, onko Tuukka ollut kiltti tänä vuonna Toiminnan syöte: Tuukka Havainto: kiltti

Etsivätonttu: Toiminta: puhu joulupukille Ajatus: Vastata joulupukin kysymykseen Tuukasta Toiminnan syöte: Kyllä, Tuukka on ollut kiltti tänä vuonna. Hän on auttanut muita, ollut kohtelias ja tehnyt hyviä tekoja.

Joulupukki: Toiminta: lukitse lopputulos Ajatus: Olemme keskustelleet tonttujen kanssa ja päätyneet lopputulokseen Toiminnan syöte: Punainen puinen kynttilänjalka

Joulupukki osaa keskustella tonttujen kanssa ja lopettaa keskustelun kun lopputulokseen on päästy. Onneksi etsivätontun mielestä olen tehnyt hyviä tekoja ja ansainnut lahjan

Yhteenveto

Agentin voi kuvitella tekoälynä, jonka ajattelutapaa on pyritty muuttamaan ihmismäisemmäksi ja näin myös meille ymmärrettävämmäksi. Seuraava askel on tehdä koko tiimi, aivan kuten olemme itse tottuneet työskentelemään. Vaikka yksinkertaisin ratkaisu on yleensä paras, LLM:t ovat niin monimutkaisia että lisätyö agenttien määrittämiseen rajoittaa niiden toimintaa oikeaan suuntaan.

Tietenkin on myös huonoja puolia. Enemmän tekstiä tarkoittaa enemmän kuluja ja hitaampaa prosessia. Ja kuten ihmisellä, mitä enemmän on oikeuksia, sitä enemmän vastuuta ja sitä isompia virheitä on mahdollista tehdä. Kriittinen pitää olla mitä työkaluja ja oikeuksia tarvitaan.

Moniagentti ratkaisu on oikea vaihtoehto kun halutaan paras mahdollinen vastaus ja lisätä läpinäkyvyyttä.

Toivottavasti saan kynttilänjalkani.

 

Kuvat on generoitu Playgroundin Playground v2 - a new open text to image model mallilla.

"Tiedon todellinen rakastaja tavoittelee luonnollisesti totuutta"

Faktaa

Taitopilvi Oy

2786133-7

Perustettu 2016

28 työntekijää

Yhteydet

info@taitopilvi.fi

+358 10 339 7130

Verkkolaskut, OVT: 003727861337

Operaattori, APIX: 003723327487