Haluatko rakentaa digitaalisen palvelun, joka hyödyntää generatiivista tekoälyä? Listasimme vinkit

Miten voit rakentaa generatiivista tekoälyä hyödyntäviä palveluita juuri nyt? Tässä artikkelissa jaamme siihen konkreettisia vinkkejä.

Huom. Tätä blogia ei kirjoitettu tekoälyn avulla (kuvituskuvassa se saattoi tosin auttaa).

Generatiivisen tekoälyn teknologiat kehittyvät juuri nyt todella nopeassa tahdissa. On vaikea pysyä kärryillä siitä, mikä teknologia olisi hyödyllisin mihinkin liiketoimintatarpeeseen. Lisäksi generatiivisen tekoälyn teknologioita hyödynnettäessä on huomioitava muun muassa yksityisyyteen ja tietoturvaan liittyviä seikkoja. Tässä blogikirjoituksessa jaamme konkreettisia ja juuri nyt ajankohtaisia vinkkejä siihen, miten voit rakentaa generatiivista tekoälyä hyödyntäviä palveluita.

Tietosuoja: OpenAI vs. Azure OpenAI

OpenAI:n palveluita kuten ChatGPT:tä, tai OpenAI:n API-rajapintoja käytettäessä, tietosuoja- ja GDPR-kysymykset saattavat osoittautua hankaliksi. Vaikka OpenAI ei API-rajapintoja käytettäessä harjoita mallejaan tiedoillasi, jollet sitä erikseen salli, niin OpenAI varaa kuitenkin kaikissa tapauksissa oikeuden tarvittaessa tarkastella tietojasi. OpenAI säilyttää aina kaikki tiedot 30:n päivän ajan. Tiedot säilytetään väärinkäyttöepäilysten- ja virhetilanteiden- monitorointia varten. Tiedon tallentamista ja mahdollista monitorointia ei voi kytkeä pois päältä. Se tarkoittaa, että OpenAI:n valitut työntekijät pääsevät tarvittaessa käsiksi mahdollisesti luottamuksellisiin tietoihisi. Usein yritykset käsittelevät arkaluontoisia tietoja, kuten immateriaaliomaisuutta tai strategisia suunnitelmia, eivätkä halua tai edes lain mukaan saa luovuttaa tietojaan muille osapuolille.

Azure OpenAI:ssa voit pyytää luvan tietojen valvonnan ja tietojen tallennuksen kytkemiseen kokonaan pois päältä.

Presales Architect

Sebastian Hemmilä

Onneksi, koska Microsoft on OpenAI:n suuromistaja, asiaan on olemassa ratkaisu: Yksityisen Azure OpenAI -ympäristön pystyttäminen Microsoftin Azure pilvipalveluun. Azure OpenAI tarjoaa tärkeimmiltä osin lähes vastaavat palvelut kuin OpenAI, mutta yrityksen näkökulmasta myös paljon lisää. Tietosuojan osalta tärkein ero OpenAI:n ja Azure OpenAI:n välillä on, että Azure OpenAI:ssa voit pyytää luvan tietojen valvonnan ja tietojen tallennuksen kytkemiseen kokonaan pois päältä. Kun valvonta ja tallennus on kytketty pois päältä, Azure OpenAI ei lainkaan tallenna esimerkiksi kielimalleihin antamiasi syötteitä (eng. prompt), eivätkä Azure-työntekijät pääse tarkastelemaan tekoälymalleihin syöttämiäsi tietoja. Azure OpenAI:n avulla voit myös itse esimerkiksi määrittää maantieteellisen alueen, jossa tietojasi käsitellään. Siten saat lisävarmuutta, että tietojasi käsitellään EU:n GDPR lainsäädännön mukaisesti.

Haluaisitko hyödyntää esimerkiksi suuria kielimalleja (eng. Large Language Model, LLM, esim. GPT-mallit), mutta haluat silti pyörittää ohjelmistoja omilla palvelimilla, esimerkiksi paremman tietoturvan varmistamiseksi tai kuluissa säästämiseksi? Siinä tapauksessa voit hyödyntää jotain avoimen lähdekoodin kielimallia ja esimerkiksi hienosäätää (eng. fine-tune), eli opettaa tekoälymallia enemmän tarpeitasi vastaavaksi.

Kannattaa kuitenkin muistaa, että monia tunnettuja avoimen lähdekoodin suuria kielimalleja, kuten Metan Llamaa ja Llama-pohjaisia ​​malleja, kuten Alpacaa saa käyttää vain ei-kaupallisiin tarkoituksiin. Kaupallisiin tarkoituksiin sallittuja avoimen lähdekoodin suuria kielimalleja ovat esimerkiksi Cerebras, Bloom ja Dolly. Avoimen lähdekoodin kielimalleilla et saavuta aivan yhtä laadukasta lopputulosta kuin suljetuilla kaupallisilla malleilla, mutta kehitys on ollut erittäin merkittävää ja nopeaa myös sillä saralla.

Avoimen lähdekoodin tekoälymallien helppo skaalautuva käyttöönotto

Generatiivisen tekoälyn ekosysteemi on pullollaan erilaisia ​​avoimen lähdekoodin malleja. Suurten kielimallien mallien lisäksi löytyy esimerkiksi tekstistä kuvaksi -malleja, kuten Stable Diffusion, tekstistä videoksi -malleja, tekstistä ääneksi -malleja sekä paljon muita eri tyyppisiä malleja ja lisäksi lähes loputon määrä niiden eri variaatioita. Suurin osa avoimen lähdekoodin malleista on löydettävissä Hugging Face -nimisestä palvelusta.

Hugging Face on tietynlainen avoimen lähdekoodin tekoälyn ekosysteemin keskus. Monien muiden asioiden lisäksi se pitää yllä eräänlaista ​​avoimen lähdekoodin tekoälymallien “GitHubia”. Tämän artikkelin kirjoittamishetkellä Hugging Facesta löytyy 220 430 kappaletta eri avoimen lähdekoodin tekoälymalleja. Hugging Facesta löytyviä malleja voi testata helposti Hugging Facen verkkosivuilla ja API rajapinnassa.

Entä jos löydät Hugging Facesta tekoälymallin, jota haluaisit hyödyntää yrityksesi uudessa sovelluksessa? Tekoälymallin käyttöönotto skaalautuvasti ohjelmalliseen käyttöön voi olla työlästä. Toisaalta esimerkiksi Googlen Model Garden tarjoaa tällä hetkellä joitain kymmeniä avoimen lähdekoodin malleja, joita voi Google Vertex AI:n avulla ajaa ohjelmallisen käytön tarpeita vastaavasti, mutta valikoima on hädin tuskin murto-osa Hugging Facen vastaavasta.

Amazonin pilvipalvelusta, AWS:stä, löytyy onneksi asiaan ratkaisu. AWS on kehittänyt yhteistyössä Hugging Facen kanssa integraation Hugging Facesta löytyvien mallien helppoa käyttöönottoa varten. AWS:n SageMaker tekoälyalustalla avulla voit helposti harjoittaa, hienosäätää ja ajaa mitä tahansa avoimen lähdekoodin mallia lähes loputtomasta Hugging Facen -valikoimasta. Käytössäsi on siis siten koko avoimen lähdekoodin tekoälymalleja tuottavan yhteisön kaikki mallit hyvin suoraviivaisella tavalla.

Laskentatehoon liittyvien kustannusten puolittaminen kielivalinnalla

Tiesitkö, että vaihtamalla kielen, jolla palvelun rajapintaa käytetään, voit puolittaa kustannukset kaupallisen suljetun suuren kielimallin (esim. GPT-4) ohjelmallisesta käytöstä? Syöttämäsi promptit ja tekoälyn vastaukset (eng. completion) koostuvat ns. tokeneista. Esimerkiksi englanninkielisessä GPT-3:ssa yhdessä tokenissa on yleensä noin 4 merkkiä. Alla on Open AI:n tokenizer työkalulla tehty testi, englanniksi ja suomeksi annettujen promptien kirjain- ja token-lukumääristä:

  • "Hello world!" englanniksi: 3 tokenia, 12 kirjainta

  • "Hei maailma!" suomeksi: 6 tokenia, 12 kirjainta

OpenAI:n kielimallien API-rajapintojen hinnoittelu perustuu tokenien määrään. OpenAI:n rajapinnan käyttökustannukset olisivat kaksinkertaiset, jos yllä oleva esimerkki "Hello World! vs. Hei maailma!" pitäisi aina syötteiden token-määrien osalta paikkansa. Suomenkielellä käytettynä tokeneita olisi siis silloin kaksinkertainen määrä englanninkieliseen verrattuna. Tokenin pituus ja siten myös niiden määrä, riippuu kuitenkin monesta tekijästä. Ylläoleva esimerkki antaa silti suuntaa suomen- ja englanninkielisten syötteiden token-määrien eroista. Voit myös tehdä itse vertailuja esimerkiksi OpenAI:n Tokenizer -työkalulla saadaksesi tarkemman arvion.

Valitun kielen merkitys korostuu jos käytät suuria kielimalleja ohjelmallisesti. Jos käytät esim. ChatGPT:tä vain graafisen käyttöliittymän kautta, kielivalinnalla ei ole juuri merkitystä. Toisaalta myös graafista käyttöliittymää käytettäessä voit antaa huomattavasti suurempia syötteitä, jos annat promptin englanniksi etkä suomeksi. Jos pyörität kielimalleja omilla palvelimilla ja suorituskyky on seikka, joka pitää huomioida, on hyvä olla tietoinen siitä, että kielimallin käyttäminen voi olla paljon tehokkaampaa englanniksi kuin suomeksi.

Fine-tuning vs. Semanttinen haku

Olet jo ehkä kuullut tekoälymallien hienosäätö (eng. fine-tune) mahdollisuudesta. Hienosäädön avulla voit opettaa tekoälymalleille uusia asioita pysyvästi. Viittaamme tässä kontekstissa kielimallien hienosäätöön. Hienosäätö on hyvä vaihtoehto, jos haluat opettaa kielimallille uusia tapoja toimia. Esimerkiksi kuinka kirjoitetaan sähköposti tiettyyn tapaan, tai miten kirjoitetaan jonkin tyylisuunnan fiktiota. Hienosäätö ei ole hyvä ratkaisu, jos kielimallin pitäisi kyetä nopeasti vastaamaan faktuaalisesti oikein johonkin uuteen kontekstiin liittyviin kysymyksiin. Hienosäätö on erittäin hidasta, työlästä ja kallista. Lisäksi kielimallit ovat lähtokohtaisesti taipuvaisia niin sanotusti hallusinoimaan (eng. hallucinate) faktoja.

Mutta entä jos haluat sovelluksesi pystyvän vastaamaan nopeasti ja tarkasti kysymyksiin suhteellisen suurista konteksteista, esimerkiksi PDF-tiedostosta, jossa on 250 sivua? 250 sivua on aivan liian suuri konteksti promptina annettavaksi. Kielimalli ei pysty vastaanottamaan eikä käsittelemään sitä yhtenä kokonaisuutena. Ratkaisu on rakentaa sovellus, joka hyödyntää vektorivarastoa ja tekstin sulaututuksia (eng. embeddings). Löydät jo nyt esimerkiksi GitHubista useita tämän tyyppisiä avoimen lähdekoodin projekteja. Niiden avulla pääset alkuun sovelluksen rakentamisessa.

Tämän tyyppinen, semanttista hakua hyödyntävä sovellus tallentaa antamasi tekstikontekstin ensin vektorivarastoon liukulukuvektoreina. Tallennus ja muunnos kestää vain joitakin sekunteja. Tekstin muuntaminen liukulukuvektoreiksi mahdollistaa sen, että sovellus kykenee määrittelemään, liittyvätkö kaksi tekstinpalaa semanttisesti toisiinsa tai ovatko ne muutoin samankaltaisia. Se tunnistaa tehokkaasti syöttämäsi tekstikontekstin tarkoituksen ja termien kontekstuaalisen merkityksen.

Kun kysyt kysymyksiä syöttämääsi teksti kontekstiin liittyen, esimerkiksi siihen 250-sivuisen PDF-tiedoston sisältöön, järjestelmä muuntaa tekstin sulautus työkalun avulla myös kysymyksen liukulukuvektoriksi. Seuraavaksi sovellus vertaa kysymyksesi vektoreita alkuperäisen tekstin vektorivarastoon ja löytää kaikki asiaan liittyvät tekstijonot. Lopuksi sovellus yhdistää tekstitulokset alkuperäiseen kysymykseesi ja antaa tekstit kielimallille promptina sopivan ohjeistuksen kera. Lopputuloksena on helppolukuinen vastaus asianmukaisine tietoineen alkuperäiseen kysymykseesi.

Ratkaisu voidaan rakentaa omille palvelimille esimerkiksi avoimen lähdekoodin kielimallilla ja paikallisella vektorivarastolla tai se voi käyttää kolmannen osapuolen kielimalli API:a ja pilvessä olevaa vektoritietokantaa. Tällä logiikalla toimivat esimerkiksi "keskustele PDF-tiedostosi kanssa" -sovellukset, joita olet saattanut viime aikoina nähdä verkossa.

Pohditaanko generatiivisen tekoälyn mahdollisuuksia yhdessä?

Generatiivinen tekoäly on tehokas työkalu. Sen avulla yritykset voivat säästää aikaa ja resursseja uusilla ja odottamattomilla tavoilla. Tässä artikkelissa teimme vasta pintaraapaisun eri generatiivisen tekoälyn teknologioiden tarjoamiin mahdollisuuksiin. Ole yhteydessä, jos haluat kuulla lisää tekoälyn mahdollisuuksista tai keskustella syvällisemmin siitä, miten yrityksesi voisi hyödyntää generatiivista tekoälyä digitaalisissa palveluissa.

Sebastian Hemmilä
Presales Architect

Sebastian on liiketoimintaorientoitunut fullstack-osaaja.

Mielipide & näkemys

Mielipide & näkemys

Generatiivinen AI
Miten hyödyntää generatiivista tekoälyä yritysmaailmassa? Asiantuntija listaa neljä tärkeää oppia
Generatiivinen AI
Mullistavatko koodausavustajat ohjelmistokehityksen?
Generatiivinen AI
Tekoäly – revoluutio vai evoluutio?
Näkemys
Tuokaa suunnittelupöytään “wicked problem” valmiiksi määritellyn tarpeen sijaan
Yhteys

Kiinnostuitko? Ota yhteyttä