torstai 6. maaliskuuta 2025

Elektronista sykettä: tran - trance - trans - transis - transistori

 

Tutkimusmatkani tekoälyn maailmaan jatkuu. Viime kirjoituksen jälkeen päädyin pohtimaan omaa suhdettani tietotekniikkaan. En ota tekniikan ekosysteemejä mitenkään itsestään selvinä ilmiöinä (haluaisin käyttää etuliitteen eko sijaan sanaa teko, tekosysteemi). Samalla lukijani varmaan ihmettelvät, mitä tällä on tekemistä musiikin, kuvataiteen tai kulttuurin kanssa. No, onhan tällä. Elektroninen musiikki sykkii transistoreiden huumetta, kuvataiteilijat maalailevat virtuaaliselle kanvakselle tekoälyttömiä kuvia ja niin edelleen. 

 

 

 

 

Tätä, edellistä ja seuraavaa juttua kuunnellessa kuuntelen elektronista musiikkia. Kuittaan aina väliin hengähdystauoksi niistä jotain. Parhaillaan iPad puskee GusGus yhtyeen vuonna 1997 julkaiseman Polydistortion tekeleen äänimaisemaa. Elektronisen musiikin levynkanseni taide tulvii yleensä myös elektronista kuvastoa, tai jotain inhimillistä, pehmeää, matkalla kohti elektronista taivaanrantaa. (Thanks @_srz)

Olen siitä omituinen otus, että ohjelmoiminen ja koodaaminen ei niinkään ole minua kauheasti kiinnostanut. Sen sijaan pinnan alla oleva ”rauta” ja asioiden kääntyminen konekielelle jotenkin saa minussa aikaiseksi elonkipinää.  No, olenhan myös kiinnostunut kasvitieteestä ja tämän tieteenalan varsin kummallisista sivuvirroista, joten mitä ilmeisimmin jossain kohtaa äidinmaitoa on tapahtunut jotain perin outoa eikä musiikkimakunikaan kovin usein kohtaa valtavirtaa.

Joten kysynkin ensimmäisenä teko-eko käsitteiden ihmettelyn hengessä, miksi prosessoriin liitetään käsite neuro-, miksi se on neuroprosessori? Onko sen sisälle tullut jotain uutta ihmisen tai elävien olentojen neuroneihin, neurologiaan liittyvää? Taustalla hämmästelen sitä, että onko meillä jokin implisiittinen halu liittää teknologia orgaaniseen maailmaan? Olemmeko jo hybridejä humanoideja sähköis-orgaanisessa maailmassa.

Ihan tavallinen prosessori on Wikipedian mukaan: 

”Suoritin tai prosessori (engl. Central Processing Unit eli CPU) on tietokoneen osa, joka suorittaa tietokoneohjelman sisältämiä konekielisiä käskyjä. Se on tietokoneen keskeisimpiä osia. Nykyisissä suorittimissa kaikki osat on pakattu yhdelle mikropiirille, joten ne ovat mikroprosessoreita (MPU).”

Prosessori oli alun perin kaasutäytteinen transistoriputki, ja sen jälkeen pelkkä fyysinen transistori, joka asennettiin elektroniikkaa sisältävän emolevyn päälle. Transistori ohjasi käskyn (ohjelma) mukaan sähkövirtaa. Tämän kyljessä piti olla jotain, joka säätelee asiaa, siis emolevyllä on eräänlainen tahdistaja eli ”kello”, joka säätee nopeutta. Tarvittiin myös diodit, jotka toimittivat sähköä vain yhteen haluttuun suuntaan. Käytännössä homma toimii siten, että transistorin kahden liittimen välisellä jännitteellä voidaan kontrolloida kahden muun liittimen läpi kulkevaa virtaa. 

Sitten sotien jälkeen 1950-60 -luvulla kaikki alkoi kehittyä, kun elektroniikkaa opittiin pakkaamaan koko ajan enemmän pienempään tilaan. Nyt meillä on erilaisia transistoreita, erilaisia diodeja ja vaikka mitä, ja melkein kaikki samassa mikroprosessorissa, mitä ei enää silmin voi edes tutkia. Nykyisin lukemattomista transistoreista rakentuu mikropiiri. Ja näitä transsuja voi samalla mikropiirillä olla jopa useampi miljardi kappaletta. On myös havaittu niinkin kummallisia asioita, että transistorien määrä mikropiirissä Mooren lain mukaan kasvaa tasaisin väliajoin. Komponenttien koolle teoreettisena rajana on pidetty atomien kokoluokkaa, mutta kvantti-ilmiöiden mukanaan tuomat haasteet alkavat jo 5–7 nanometrin kokoluokassa.

Löydän Transistor nimisen bändin, ja laitan kuunteluun Resting in the Shade of the Family Tree nimisen 2012 julkaistun pitkäsoiton. Kuullostaa raikkaalle, ei lainkaan elektroniselle musiikille, jopa välistä hyvinkin raskaalla rock otteella leivotulle musiikille. Laulajan ääni tulee kivasti lähelle. Kannattaa tutustua. Palaan tietotekniikkaan.

Koska mikropiirit pienentyvät koko ajan kasvaa myös valmistuksen haasteet, mikä taas aiheuttaa  sen, että niiden hinta tulee eksponentiaalisesti kasvamaan, ja tällöin valmistuskustannukset kaksinkertaistuvat yllättäen melko tarkasti joka neljäs vuosi. Tämä tietysti aiheuttaa käänteisen efektin Mooren laille, ja koska kilpailu on kovaa saattaa tämä johtaa siihen, että monopoliaseman markkinoilla saava yritys pystyy määrittämään tähtitieteellisen hinnan komponentille.[i] Tähän mennessä piirivalmistus on kuluttajien onneksi pysynyt useammalla yrityksellä, mutta viimeaikainen Nvidian kehitys on alkanut tuoda tätä asiaa vahvemmaksi.

 

 
 
 

Jos haluat lukea enemmän transistoreiden historiasta, niin Wikipedian transistori luku on hyvin tiivistettyä tietoa ja samalla poliittisella (sota)kentällä olevien harvinaisten alkuaineiden tarpeen ja sotien syy-suhde syy käy hyvin ilmi. Ennen sanottiin, että ei Suomesta kukaan suurvalta ole kiinnostunut, kun täällä ei ole rikkauksia, mutta nyt tilanne alkaa olla toinen.

 https://fi.wikipedia.org/wiki/Transistori

Tästä on kuitenkin matkaa neuroprosessoriin, joten jatkan seuraavassa kirjoituksessa siitä  miten mikropiiri toimii: miten miljardit portit ja sähkösykäykset tuottavat tietoa?

 

Jotain lähteitä:

Crab, Simon. 120 years of electronic music.  https://120years.net/

Gus Gus. 1997. Polydistortion. https://www.discogs.com/master/19830-Gus-Gus-Polydistortion?srsltid=AfmBOoonTiA-4_WK0TOzNmk75QTSQ-bDcaHmdWifkdSXmaDUXdUurWBw

Linna, Kaisa. 2021. Digitaalinen taide verrattuna perinteiseen taiteeseen kuvituksessa. http://www.theseus.fi/handle/10024/510892

Mooren laki. https://www.zdnet.com/article/moores-second-law-and-software/

Tapio, Kosti. Itsejärjestäytyvä DNA-kultananopartikkeli-rakenne Yhden Elektronin Transistorina. 2012. https://jyx.jyu.fi/jyx/Record/jyx_123456789_40000

Transistor. 2012. Resting in the Shade of the Family Tree  https://www.discogs.com/release/3423330-Transistor-Resting-In-The-Shade-Of-The-Family-Tree

 

 

 


Boolen algebra ja transistorit, niin tiedonhankinnan kuin teknologian ytimessä.
 

 

enter image description here

enter image description here

enter image description here


enter image description here

 

 

torstai 13. helmikuuta 2025

RAG tekoälytekniikka ja tiedonhaku

 

Kielimallien hallusinoimisen ominaisuutta voidaan huomattavasti säätää ja tarkentaa kohti todellisempaa, jopa faktuaalista tietoa. Tämä onnistuu RAG-ohjelman (Retrieval Augmented Generation) avulla.  Valjastettaessa RAG-ohjelma LMM-kielimallin rinnalle avuksi tapahtuu tiedonhaun tuloksissa iso askel kohti luotettavampaa tiedonlouhintaa. Prosessissa kielimalli hakee ensin RAG tiedonhakujärjestelmän kautta vastausta esitettyyn kysymykseen ja vasta näiden tulosten pohjalta tekoäly alkaa tuottamaan kielellistä vastausta. RAG ikään kuin seuloo tiedot kielimallille. Samalla tekoälypalvelu voi tuottaa näkyville lähteet, joihin sen antamat vastaukset perustuvat.  

Oleellista tässä toimintamallissa on se, että tällöin tekoäly ei hallusinoi eli olemme tällöin vapaan verkon ja avointen tietolähteiden ja kielimallin lisäksi hakukoneen kykyjen risteyksessä, emme pelkästään kielimallin varassa. Ja asia vain tarkentuu, jos olemme rajallisemman, esimerkiksi jonkun yrityksen oman datavaraston äärellä. RAG ohjelman ja hallusinoimisen ulottuvuudet on kuitenkin hyvin kompleksinen ilmiö. Aaron Tay avaa RAG ohjelmien tuotosten ja faktuaalisuuden suhdetta omassa blogissaan, mistä käy hyvin ilmi, että asia vaatii paljon lisätutkimusta (Tay 2024).

Akateemisessa maailmassa tämänkaltaisen sovelluksen käyttöönotto suljettujen lisensoitujen e-aineistojen ja kirjastomaailman oman metadatan äärellä voisi olla hyvinkin käyttäjäystävällistä ja toimivaa. Olisihan se hienoa saada tarkkoja vastauksia ja kielellisesti laadukasta kommunikointia koneen kanssa. (Mutta, aina se mutta (!)). Tämäkään ei poista sitä, että tekoälylle asetetun kehotteen (prompt) tulee olla mahdollisimman pätevä. Eli samat tiedonhaun semanttiset lainalaisuudet vaikuttavat yhä taustalla. Myöskään RAG ei toistaiseksi takaa faktuaalisuutta (Tay 2024).

Perinteinen kirjastotietokantojen hakuprosessi etenee semanttisen vastaavuuden perusteella eli haluttua tietoa louhitaan samanlaisten nollia ja ykkösiä sisältävän merkkijonon vastaavuuden vertaamiseen perustuen. Tätä voidaan laajentaa tai supistaa tiettyjen erityismerkkien avulla (jokerimerkki, läheisyysindikaattorit jne.) ja sitten myös yhdistellä Boolen operaattoreiden avulla näitä haettavia merkkijonoja. 

 

Mitä on RAG – miten se toimii?

Retrieval-augmented generation (RAG) on Koneoppimisen alle dokumenttien hakemiseen luokiteltu systeemi. LMM malleissa on yleisenä ongelmana niiden omien sisäisten tietokantojen koko ja niiden sisältämien erilaisen informaation laajuus. Mikäli kuitenkin halutaan keskittyä tarkemmin suppeampaan osaamisalueeseen tarvitaan jonkinlainen apusysteemi.

Meta esitteli vuonna 2020 ratkaisuksi RAG-metodin (Meta RAG blog 3). Metan mallissa vektorimallinen tietokanta valjastetaan esitellyn systeemin avuksi, ja RAG hakee kyselyä (kehote, prompt) vastaavia dokumentteja ja tarjoilee ne RAG systeemille/mallille, joka suodattaa ja asettaa ne LMM mallille saataville. Näin LMM kielimalli voi vertailla näitä tuloksia RAG:n tarjoilemiin dokumentteihin ja korjata vastauksia. (Meta, 2020.)

Metan esittelemän uuden mallin ero muihin malleihin on RAG:n kyky käyttää syötettyä kyselyä relevanttien dokumenttien hakemiseen. Malli on perusolemukseltaan sequence2sequence tyyppinen eli se ottaa yhden sekvenssin sisäänsä ja tulostaa ulos toisen vastaavan. (Pulli, 2024.)

Esimerkiksi kysymys: ”Mikä on maailman suurin lentokone”, jolloin vektorihaun prosessin samankaltaisuushaku nostaa (mahdollisesti) ylös/esiin dokumentteja aiheesta ”lentokonetekniikka” ja vaikka ”lentokoneenrakentaminen” ja ”ilmailunhistoria”. Nämä esiin nostetut syötetään RAG:iin, jonka käytössä on oma (parametrinen muisti, siis mallien parametrien tietoihin tallennettu tieto) ja vain sen omassa tietomuistissa oleva tieto (parametriton muisti). Nämä täydentävät toisiaan vuorovaikutteisesti. RAG on siis jonkinlainen fuusiomoottori, joka mahdollistaa dokumenttien tiedon integraation, prosessissa RAG:lla on eräänlainen metodi tuottaa eräänlaisia ennustuspisteitä informaation vahvuudelle ja virheilmoitukset syötetään takaisin hakumekanismiin. Lopputuloksena on koko prosessin huima nopeutuminen.(Meta, 2020; Pulli, 2024.)

RAG:n ja LMM taustalla oleva vektorihaku perustuu merkkijonojen semanttiseen merkitysten vertaavuuksien pohjalta tapahtuvaan vertailevaan etsimiseen. Prosessi on laajennettu matemaattisella mallintamisella vektorihaku malliseksi. Vektorihaussa koneoppimisen opetetut algoritmit kykenevät tunnistamaan semanttista vastaavuutta laajemmin merkkijonojen, tekstien ja merkkien korrelaatioita, jolloin objektit saavat vektoriesityksen. Syntyneitä vektoreista käytetään käsitettä upottamismalli (text embedding). Tässä mallin prosessissa yhtälaiset tai merkitykseltään lähellä toisiaan olevat semanttiset merkkijonot ovat matematiikan euklidisessa vektoriavaruudessa vektoriena toisiaan lähempänä.

Reinikaisen (2023) mukaan prosessi toimii karkeasti yksinkertaistettuna näin:

Ensin ohjelma muodostaa saatavilla olevasta informaatiosta vektoreita (pidempiä merkkijonoja), jonka jälkeen vektorihaku etenee suoraviivaisesti:

1. Tekstinpätkä, jolla semanttinen haku halutaan toteuttaa, muutetaan vektoriksi.

2. Saatua vektoria vertaillaan aiemmin muodostettuihin vektoreihin kosinietäisyyden avulla.

3. Samankaltaisimmat vektorit etsitään ja niitä vastaavat tekstit palautetaan hakutuloksina.

Näiden vektorien samankaltaisuutta voidaan mitata useilla eri mittareilla, joista yleisin on nimeltään kosinietäisyys. Siinä vektorit hahmotetaan moniulotteisen avaruuden janoina, joiden välinen kulma voidaan laskea. Kulman kosinin suuruus kuvaa vektorien samankaltaisuutta (Reinikainen 2023).

Jos vertailtavia vektoreita on paljon, hakua voidaan nopeuttaa käyttämällä lähimmän naapurin algoritmeja, jotka löytävät samankaltaisia vektoreita ilman, että joka ikistä kosinietäisyyttä tarvitsee laskea erikseen. Useissa vektorihakuun suunnitteluissa valmiissa vektoritietokannoissa on tällainen toiminnallisuus sisäänrakennettuna (Reinikainen 2023). 

Heuristisena mallina, muistin virkistämiseksi: muistele koulun matematiikan tunteja ja X-Y akselista vektoria. Piirrä mielessäsi kaksi origosta lähtevää janaa, ja pohdi näiden etäisyyttä toisiinsa. Sitä tässä vertaillaan.

Reinikainen (2023) esittää, että prosessi etenee siten, että halutun informaation sisältävät tekstit muunnetaan vektoreiksi ja tallennetaan vektorivarastoon. Käyttäjän esittäessä kielimallille kysymyksen (kehote, prompt), eli kysymys muutetaan vektoriksi ja vektorihaun tulokset sisällytetään tai siirretään kielimallin kehotteeseen.

Tässä lähestymistavassa on oletuksena se, että kysymys ja siihen vastaamisen kannalta relevantti materiaali ovat keskenään semanttisesti samankaltaisia ja että vektorisoinnin hoitava tekoäly kykenee tunnistamaan tämän samankaltaisuuden. Jos etäisyys kasvaa liian mittavaksi, alkaa laatu heiketä, jolloin toimivaan ratkaisuun tarvitaan hiukan lisää toimenpiteitä. Tässäkin on yhä tietoa etsivän semanttisella kyvykkyydellä merkitystä.

Huomioitavia seikkoja: vektorihaku heikkenee laajoissa tietomassoissa, joten pilko aineistoja pienemmiksi. Tämän saattaa huomata esim. DeepL tai MOT kielenkääntäjää käytettäessä. Jolloin pitkä teksti heikkenee laadullisesti verrattuna lyhyempien lauseiden ja tekstin osien kääntämiseen.    

Hakukysymysten tarkka muotoilu ja mahdolliset lisäaineistot parantavat lopputulosta.

Kehotteita kannattaa yrittää itse etukäteen optimoida.

Hakutulosten järjestelyn kautta voidaan edetä kohti parempaa eli jos relevantteja hakutuloksia on runsaasti, joskus kaikista paras hakuosuma voi jäädä pois hakutuloksista.

Ongelmaa voidaan korjata käyttämällä erillistä reranker-kielimallia (uudelleen järjestelymalli) hakutulosten järjestämiseen ja priorisointiin sekä myös erilaisia tekstin upottamisen. Kilpailevia RAG-ohjelmia on useita ja tekoälyn kehitystyö on tällä sektorilla melko kiihkeää. Toisinsanoen vektorihaun ja kielimallin yhteistoiminnallista suhteiden käsittelyä ja järjestelyä on mahdollista tehostaa ja lopputuloksena on parempi käyttäjäkokemus sekä hakutulosten optimoituminen. (Desetty 2023; Reinikainen 2023; Toivanen 2024.)

Asiasta ja asian sudenkuopista lisää seuraavassa kirjoituksessa. 

Tätä kirjoittaessa kuuntelin Masharik nimistä slovenialaista yhteyettä. @masharik

https://www.youtube.com/watch?v=nhuXmF3grTE

 

Lähteet:

Desetty, Ravi Theja. (2023).  Boosting RAG: Picking the Best Embedding & Reranker models. https://www.llamaindex.ai/blog/boosting-rag-picking-the-best-embedding-reranker-models-42d079022e83

Meta AI blog. (2020). Retrieval Augmented Generation: Streamlining the creation of intelligent natural language processing models. https://ai.meta.com/blog/retrieval-augmented-generation-streamlining-the-creation-of-intelligent-natural-language-processing-models/

Pulli, Samu (2024).  Suuret kielimallit pelinkehityksessä. https://www.theseus.fi/bitstream/handle/10024/860403/Pulli_Samu.pdf;jsessionid=D30496A5F15D21877A78F970CBAD0648?sequence=3

Reinikainen, Samuli. (2023). Kurkistus hypetetyn tekoälytermin konepellin alle – Miten RAG toimii ja mitä sen hyödyntäminen vaatii? https://www.itewiki.fi/p/kurkistus-hypetetyn-tekoalytermin-konepellin-alle-miten-rag-toimii-ja-mita-sen-hyodyntaminen-vaatii

Tay, Aaron. (2024). When is a Hallucination Not a Hallucination? The Role of Implicit Knowledge in RAG. http://musingsaboutlibrarianship.blogspot.com/

Toivanen, Rasmus. (2024).  Evaluating Embedding & Reranker Models For Finnish. https://www.recordlydata.com/blog/evaluating-embedding-and-reranker-models-for-finnish

 

Lisälukemista euklidisten avaruuksien metriseen rakenteeseen liittyen:

Harso, M: Klemetti,J; Luosto, K. & Railo, J. (2013, 2017) Kerkko Luoston Geometria aiheisen luennon muistiinpanot. https://homepages.tuni.fi/kerkko.luosto/kurssit/geometria/situs.pdf