Microsoft Fabric ja OpenAI

Mitä jos yhdistämme Microsoft Fabricin kyvyn hakea, käsitellä ja varastoida dataa OpenAI:n kielimalleihin?

Microsoft Fabric on Microsoftin toukokuussa 2023 julkaisema data-/analysointialusta. Alustan ajatuksena on tarjota yksi kattava työkalu datan käsittelyä, raportointia ja analysointia varten. Fabric yhdistää monia jo pitkään olemassa olleita Microsoftin datapalveluita yhdeksi uudeksi tuotteeksi. Fabric ei ole kuitenkaan pelkkä sateenvarjo vanhoille Azuren palveluille, vaan tarjoaa uusia ominaisuuksia kuten esimerkiksi yhtenäisen OneLake -ratkaisun tietojenvarastointia varten.

Fabric on vasta juuri siirtynyt Preview -vaiheesta yleisesti saataville. Tämä näkyy mm. siinä, että kaikki Fabricissa olevat tuotteet eivät vielä juttele toistensa kanssa sujuvasti. Tilanne on odotettavasti parantumassa, kunhan tuotteen maturiteetti kehittyy.

OpenAI on tunnettu tekoälyyn erikoistunut yritys. Yritys tuli kuuluisaksi DALL-E ohjelmistostaan, joka pystyy luomaan kuvia perustuen tekstikuvauksiin. Varsinainen suosio ja laaja julkisuus alkoi  kuitenkin vuonna 2022, kun OpenAI julkaisi GPT-3.5-kielimalliin (GPT =Generative Pre-trained Transformer)  perustuvan ChatGPT -työkalun.

Tammikuussa 2023 Microsoft teki merkittävän sijoituksen OpenAI:hin. Myöhemmin tänä vuonna Microsoft alkoi tarjoamaan OpenAI:n ohjelmistoja suoraan Azure pilvipalvelustaan. Azuren OpenAI kyvykkyydet ovat vielä alkuvaiheessa koko tarjoamaa ajatellen, mutta niiden avulla on jo nyt mahdollista tehdä toimivia prototyyppejä ja testata mihin palvelut pystyvät. Prototyypit ja PoC tyyppiset harjoitteet tarjoavat arvokasta tietoa siitä, että mihin tuotteet pystyvät jo nyt ja mitä niillä on mahdollista tehdä lähitulevaisuudessa.

Tästä pääsemmekin varsinaiseen aiheeseen. Mitä jos yhdistämme Fabricin kyvykkyydet hakea, käsitellä ja varastoida dataa OpenAI:n GPT kielimalleihin? Miten Fabricia hyödyntäen voisimme rakentaa esimerkiksi yrityksen sisäistä teksti- tai dokumenttipohjaista dataa hyödyntävän avustajachatin? Kokosin tähän blogiartikkeliin tiiviisti eri vaiheet tietojen hakemisesta ja tallentamisesta Fabriciin, lähettämiseen Open AI:lle ja syöttämiseen GPT-mallille.

Tietojen noutaminen ja tallentaminen Microsoft Fabriciin

Tietojen hakeminen on mahdollista tehdä Fabricissa usealla eri tavalla. Fabric tarjoaa low-/nocode ratkaisuna Pipeline Copy aktiviteettia ja Dataflow Gen 2 ominaisuutta, joiden avulla tietojen haku onnistuu ilman koodin kirjoittamista. Lisäksi työkalupakista löytyy Spark pohjaiset Notebookit, mikäli low-/nocode työkalut eivät riitä. Low- ja nocode ratkaisut tarjoavat valmiita ratkaisuja kytkeytyä esimerkiksi yrityksen SQL Server tietokantaan tai Salesforce järjestelmään. Valmiit ratkaisut nopeuttavat kehitystä ja näin ollen laskevat kehityskustannuksia. 

Tallennuspuolella Fabric tarjoaa myöskin useita eri vaihtoehtoja. Löytyy tietokantatyylistä Datawarehousea, abstraktimpaa Lakehousea ja jopa PowerBI:n oma Datamart on löytänyt tiensä Fabricin puolelle. Sopivan tallennusratkaisun valintaan voi käyttää Microsoftin tarjoamaa opasta. Itse suosittelen kuitenkin pysymään Lakehousen puolella, koska se tarjoaa kattavimmat ominaisuudet datan käsittelyyn. Mikäli SQL on ydinosaamistasi, niin silloin myös Datewarehouse voi olla käyttökelpoinen vaihtoehto.

Tietojen lähettäminen OpenAI:lle

Tämän artikkelin kirjoitushetkellä marraskuussa 2023 Azure OpenAI Studio ei vielä pysty käyttämään suoraan Fabricin tarjoamia tietovarastoja datalähteenä, vaan data pitää kuljettaa johonkin OpenAI:n ulottuville. Mielestäni helpoin tapa tehdä tämä on lähettää tiedot esimerkiksi Notebookin avulla Fabricista Azure Blob Storageen. Blob Storage on halpa ja helppokäyttöinen tietovarasto datalle ja se on mahdollista kytkeä suoraan OpenAI Studioon.

Tietojen syöttäminen GPT-mallille

Azure OpenAI Studion avulla pystymme syöttämään teksti-, pdf-, Powerpoint- ja Word -tiedostoja GPT-kielimallille. Tiedostot eivät saa olla liian isoja (pitkiä) ja niissä olevan tekstin tulee sisältää riittävästi kontekstia. Esimerkiksi luettelomainen teksti ei sovellu kielimallille, koska malli ei ymmärrä mistä luettelossa on kysymys. Kuvaavat tekstit, kuten käyttöohjeet ja määrittelydokumentit ovat parempaa dataa kielimallille. Fabricin puolella kannattaa lisätä kontekstia tekstidatan ympärille riittävästi, jotta datasta saadaan kielimallille soveltuvaa.

Otetaan yksinkertainen esimerkki konevalmistajan teksti- tai dokumenttipohjaisesta datasta. Mikäli data sisältää luetteloina varaosia ja varaosien numeroita:

  • Telalaakeri, 1234, hylly 3 taso 2
  • Hihnakiristin 5678, hylly 9 taso 1

Kannattaa aineistoon lisätä lisätietoja datasta:

  • Varaosan nimi: Telalaakeri, Varaston hyllysijainti: hylly 3, Varaston hyllysijainnin taso: 2, Varaosan sarjanumero: 1234
  • Varaosan nimi: Hihnakiristin, Varaston hyllysijainti: hylly 9, Varaston hyllysijainnin taso: 1, Varaosan sarjanumero: 5678

Lisätietojen avulla kielimallin on helpompi tulkita dataa ja löytää siitä hakijaa kiinnostavia kohteita. Tässä esimerkissä käyttäjä voisi kysyä chatissa: ”Mikä varaosa on sarjanumerolla 1234?”  GPT-malli pystyisi hakemaan tiedon ja vastaamaan chatissa käyttäjälle: ”Varaosanumero 1234 on Telalaakerilla, joka sijaitsee varaston hyllyllä numero 3, tasolla 2.”

Organisaation omaa dataa hyödyntävä "avustajachat".

Tietomallin opettamisen jälkeen Azure OpenAI Studio tarjoaa valmiin työkalun ratkaisun julkaisemiseksi chat sivuna (www-sovellus). Lopputulosta on myös mahdollista testata suoraan Azure OpenAI Studion sisällä ennen julkaisua ja mallia pystyy tarvittaessa hienosäätämään esimerkiksi GPT parametrien osalta.

Tämä on yksi tapa rakentaa erilaisia organisaation sisäisiä ”avustaja chateja” tai apupilotteja / copiloteja. Microsoft on Copilotin eli AI-avustajan tuomassa läpileikkaavasti kaikkiin tuotteisiinsa. Nähtäväksi jää, tuleeko copilot -termi asettumaan sanavarastoomme yhtä sujuvasti kuin excel tai teams.

Rohkeasti kokeilemaan

Fabricin kytkeminen Azure OpenAI Studioon ei ole vielä täysin mutkatonta. Tiedot eivät liiku Azure OpenAI:n ja Fabricin välillä, tai edes Fabricin sisällä täysin kitkattomasti. Nocode-työkalujen lisäksi apuun joutuu melko nopeasti ottamaan jonkin ohjelmointikielen (Python, Scala tai R). Fabricin työkalut kehittyvät kuitenkin huimaa vauhtia, joten odotettavissa on, että myös näiden järjestelmien välinen integraatio tulee jatkossa helpottumaan.

Tämän kokoluokan sovelluksen tekeminen ei ole kuitenkaan enää viikkojen asia nykyisilläkään työkaluilla, vaan puhutaan enemmänkin päivien työstä. Tästä syystä rohkaisenkin nyt pohtimaan, millaisia kokeiluja voisi lähteä tekemään ja oppimaan miten omaa dataa voisi vielä paremmin hyödyntää. Yhä parempia teknologiaratkaisuja tähän on nyt saatavilla.

Adafy on näkemyksellinen ohjelmistokumppani, jonka Microsoft-teknologiaosaaminen on tunnustetusti Suomen huipputasoa.

Kategoriat

Kiirehtiä vai odottaa? Tekoälyä puskee IT-maailmassa tällä hetkellä jokaisesta mahdollisesta kanavasta ja asian sivuuttaminen tuntuu...
Millainen homma? Ohjelmistokehittäjän tehtävässä menestyminen edellyttää kokemusta ohjelmistokehityksestä ja Azure-ympäristössä työskentelystä sekä osaamista ja kokemusta...
Adafyn kasvua tukemaan Helmikuun alussa toivotimme tervetulleeksi uuden adafyläisen. Tommi Flink aloitti meillä Chief Revenue...

Varaa tapaaminen ja ilmainen tarvekartoitus

Jätä yhteystietosi, niin soitamme sinulle ja sovitaan tehokas tapaaminen

Kenttä on validointitarkoituksiin ja tulee jättää koskemattomaksi.
Satu Kuusinen, toimitusjohtaja
Mikael Koskinen, teknologiajohtaja