Utviklerteam som forsøker å få en robot til å oppføre seg som den skal, foto

Resultater fra AI-hackathon for utviklerne i Oslo Origo

– Kraftige, men upålitelige verktøy

Origo-utviklerne har hatt et todagers hackathon med fokus på AI og verktøyene som er i vinden. Resultatet ble alt fra søte tegnearkgeneratorer og en lydsøkende knivrobot, til oversettere og chatboter som har potensial til å gi rask innbyggerverdi.

Et hackathon er en ypperlig sosial og faglig treningsarena for å teste ut ny teknologi. Vi ønsket å teste ut alt fra nye store språkmodeller (a la ChatGPT) og diffusjonsmodeller (f.eks Dall-E) til mer tradisjonelle maskinlæringsverktøy for bilde- og tekstforståelse.

Demo-timen på slutten av dag to bød på mye latter, en dose sjokk og panneklask, og tidvis høy wow-faktor. Det ble laget og vist frem mye konkret, men det er rimelig å si at mye ikke er helt produksjonsklart. Noe bør vel strengt talt aldri se dagens lys. Men andre ting gir en viss grunn til teknologioptimisme. Listen nedenfor er i tilfeldig rekkefølge. Målet var læring, ikke kåring.

forsiden til appløsningen snapmeal med mye generert tekst, skjermbilde
ChatGPT stod faktisk for mye av koden og det meste av teksten i appen SnapMeal. Probably not coming soon to an app store near you.
åpent kjøleskap med mye ulike drikkevarer, foto
Vi er de første til å innrømme at det nok skal mere enn kunstig intelligens til for å gjøre gull av dette gastronomisk relativt krevende utgangspunktet
oppskrift på fritert brusbiff, skjermbilde
Vi tør garantere at du ikke har smakt denne kulinariske nøtta som Michelin-kokker verden over har brukt årevis på å forsøke å få til

Fra barnetegninger til drapsrobot

Autogenerering av bilder av lokaler i Booking-løsningen, basert på tekster. Læring: Vanskelig å få prioritert de riktige ordene. Viktig å bruke prompt til å sette riktig tema. Disneytegninger funka bare sånn passe. Dall-E 2.

Automatisk saksbehandler til booking-løsningen. Har de rett på gratis lån, eller lån til kostpris? Chatgpt-3.5 matet med de relevante reglene og forskriftene. Viste seg å være litt labil som saksbehandler, men ikke heelt på jordet alltid.

Bevegelses- (gesture-) basert tilgang til Oslonøkkelen. Azure for generering av lyd. Google Mediapipe for gesture-gjenkjenning. Fungerte forbausende bra. Imponerende at det kan kjøre på en mobil.

Frigjøring av tid for småbarnsforeldre. App som genererer fargeleggingsark til barn. Dall-E 2.

I samme gata som fargeleggingsark: En puslespillgenerator, hvor motivet er generet med Dall-E.

Oversetter til skjemaløsningen. Azure AI translator for alle språkene, krydret med ChatGPT for å få sjørøverspråk.

Uetisk doktor-bot som diagnostiserte folk basert på et bilde av personen. Ble litt amputert (no pun intended) av at Microsoft har gjort tilgangen til Face-API-et søknadsbasert.

Simultanoversetter av chat mellom to som snakker (skriver, men kan forsåvidt utvides til snakker ved å legge på en speech to text og omvendt) ulike språk. Fungerte i grunn svært godt. Azure AI Translator.

Barnehagebot på sterioder. ChatGPT har jo elendig kunnskap om barnehage i Oslo, men med litt avanserte støttehjul fikk teamet til en svært lovende løsning. Brukte Langchain for å embedde ny info i og kjøre avanserte spørringer til ChatGPT. Her lastet de inn alle barnehagesider på www.oslo.kommune.no med sitemaploader, konverterte dem med FAISS for å kunne kjøre effektive søk på dem. Pakket så løsningen pent inn i Streamlit for å ha et brukergrensesnitt.

Språkhjelpen. Startet som en ide om å gjøre tungt kommunalt språk enklere med bruk av personas. Ble en øvelse i prompt engineering. Den var dårlig på å resonnere hva som er viktig for en gitt persona. Måtte være mye mer eksplisitt. Fikk en del syke resultater. Prompt engineering er virkelig en egen vitenskap. Klassifisering av tekster funker ganske bra. ChatGPT 3.5

SnapMeal analyserer bilder av kjøleskapet ditt og gir forslag til lekre retter som kan lages basert på ingrediensene den finner der. Bruker Azure AI Vision for bildegjenkjenning og ChatGPT for å generere oppskriftene. Både navn, logo, tekster og (delvis) kode er skrevet av ChatGPT. Dagens kanskje mest absurde resultater. Fritert brusbiff, anyone?

Robotvenn. (Eller drapsrobot om du vil.). Tale til tekst og omvendt. Lytter og svarer (bruker Chat GPT). Kan tolke beskjeder og kjøre på kommando. Var ment å kunne lytte til lys (fire mikrofoner) og beregne hvor lyd kom fra. Kan danse og true folk med kniv. Litt krevende å umiddelbart se innbyggerverdien. 

Keyman. Et mageplask av et forsøk på å lage en Alexa eller Google Assistant. Men gøy demo. Målet var å laget noe som var “Fett, fysisk og vanskelig”.

søknadsskjema med tekster oversatt til italiensk, skjermbilde
Oversetting av ulike skjema fungerte forbausende bra ut av boksen. Men det er på tide at italienerne får beboerparkering.
dialog fra barnehagechatbot, skjermbilde
En av dagens mer avanserte tekniske løsninger var blodtrimming av ChatGPT med fersk info fra kommunens egne nettsider. Dette fungerte også godt.
fargeleggingsark på pult, foto
Det enkle er ofte det beste. Dall-E-genererte fargeleggingsark ble en hit hos barna til utvikleren. Men det var ikke like lett å få den til å gå tilbake og generere samme bilde på nytt...

KI / AI er både gammelt og nytt

For en etat som jobber temmelig bredt med utvikling av digitale innbyggertjenester og bakenforliggende verktøy er det avgjørende å holde seg oppdatert. Fagfeltet kunstig intelligens har mildest talt fått et solid oppmerksomhetsløft etter at OpenAI slapp språkmodellen ChatGPT til verden på slutten av 2022.

Kunstig intelligens er en sekkebetegnelse for mange verktøy og konsepter. (Vi bruker det engelske AI- og det norske KI-begrepet litt om hverandre.) Ulike verktøy for maskinlæring har vi brukt i mange tiår, til alt fra stemmegjenkjenning til mønstergjenkjenning og bildeanalyse. I den siste tiden er det de store generative modellene for både tekst og bilder som har stjålet showet. Dette bygger nye forventninger både hos innbyggere og trigger mye eksperimentering i kommunen.

Person på scene utfører bevegelser som gjenkjennes av kamera, foto
En av utviklerne i Team Oslonøkkelen demonstrerer imponerende maskinlæringsalgoritmer for bevegelsesgjenkjenning. Foto: Erlend Schei
datapunkter fra bevegelsesgjenkjenning av person, skjermbilde
Modellen trenes til å kjenne igjen mange ulike kroppsbevegelser basert på forenklede strekmodeller av personer

Fra kjennskap til erfaring

En enkel firestegsmodell for hvilket kunnskapsnivå de ulike rollene hos oss i Origo bør ha for ulike teknologier kan være å vurdere oss på en skala kjennskap til kunnskap, erfaring og til slutt ekspertise.

Et slikt hackathon lar deltagerne bevege seg kollektivt fra kjennskap til en plass mellom kunnskap og lett erfaring. Og ikke minst gir den oss et grunnlag for å se hvilke områder vi potensielt bør dykke enda dypere i for å potensielt benytte i digitale innbyggertjenester.

liste over rom i utleielokale med bilder i stripete genser-tema, skjermbilde
Stripete genser-tema var muligens ikke en vinner for å bruke en diffusjonsmodell til å illustrere et lokale basert på litt få stikkord
liste over rom i utleielokale med bilder i peppa gris-tema, skjermbilde
Peppa Gris, derimot, er vel bare å putte rett i produksjon. Neida.
liste over rom i utleielokale i med bilder i kullstifttema, skjermbilde
Om vi skal oppsummere, så kan det hende at det fremdeles er mest hensiktsmessig å faktisk ta bilder av lokalene du kan leie gjennom booking-løsningen til kommunen

Rammene for AI-hackathonet

I stort var det fritt frem for utviklerne (pluss noen designere) til å jobbe med hva de ville innenfor sjangeren. Det var dog lagt opp til koding og en teknisk tilnærming til hva som skal til på baksiden. I forberedelsene til todagersopplegget hadde vi bygget noen kodeeksempler for å raskt få folk i gang, og vi hadde forberedt tilganger til Microsoft sine Cognitive Services, inkludert Open AI.

  • Et enkelt node.js-script som brukte Vision til å analysere et bilde og servere strukturert og tekstlig informasjon om motivet
  • En liten Python-app som brukte værmeldinga fra Yr som input til Dall-E for å generere et passende bilde.
  • En node.js-app for transkribering av lyd
  • En ChatGPT-lignende app i Kotlin og Javascript

Eksemplene laget vi for å få folk raskt i gang. De fleste AI-API-ene til Microsoft følger lignende mønstre, så det er lett å justere og bygge videre. Det er viktigere for oss å få utforsket og knadd på modellene enn å få diplom i oppsett av tilganger. Vi kunne like gjerne brukt tilsvarende tjenester fra eksempelvis Google eller Amazon.

Utvikler live-koder og viser hvordan eksempelkode til Hackathon brukes, foto.jpg
Vi hadde forberedt fire ulike kode-eksempler for å få folk raskt i gang. Foto: Håkon Lexberg

 

Dikt og forbannet løgn

Konklusjonen fra et slikt hackathon er vanskelig å gjøre håndfast. Inntrykket etter demo-seansen, hvor alle gruppene/deltagerne holdt en liten og svært uformell show & tell, var at det er utrolig fascinerende hvor kraftige verktøyene har blitt, og hvor tilgjengelige de er.

Et nøkkelfunn for egen del, er hvor vanvittig lite sannferdige språkmodellene er. Det skal nevnes at vi stort sett brukte chatgpt-turbo-3.5. Dette er den samme modellen folk flest har sett på chatgpt.openai.com. Språket som genereres er superimponerende. Den har alltid et svar. 

Her ligger også problemet. Modellen er i grunn bare trent til å forstå semantikken i det vi spør om, og generere en god tekst. Har den ikke svaret, så finner den på noe som gir nettopp det – en god tekst. Selv om innholdet er rent oppspinn. Dette er definitivt ikke en søkemotor. Men den svarer så troverdig og godt at det er lett å gå i fella.

Som oversetter og tekstanalytiker er den derimot helt rå.

tekst inn og tekst ut fra en spørring til chatgpt, skjermbilde
Noen resultater fra input til ChatGPT 3.5 var intet mindre enn morbide, og temmelig uforklarlige
to chatvinduer side om side med ulike språk, skjermbilde
Heldigvis var det mange tjenester som fungerte ganske godt. Her fra Azure AI Translator som simultanoversatte en chat-samtale.

Hva kan vi bruke dette til?

Om vi klarer å “temme” språkmodellene slik at de beholder de fantastiske egenskapene, men slutter å juge, så er dette gull. Modellen juger strengt talt ikke, dens jobb er å forstå vår intensjon, og generere en god tekst. Og på kjøpet får vi en fantastisk oversetter, som allerede forstår svært mange språk i verden, imponerende godt.

En pålitelig oversettertjeneste vil være et fantastisk verktøy i en kommune med en stor andel innbyggere med ikke-norsk som hovedspråk.

Illustrasjonene vi får ut fra diffusjonsmodellene (bildegeneratorene, Dall-E) som ikke koster en liten bondegård, har nok litt igjen før det har tydelig nytte i innbyggertjenestene. Men utviklingen er enorm, og det er ikke lenge før vi eksempelvis kan generere illustrasjoner og opplæringsvideoer på null tid.

Pluss at det kommer en masse muligheter vi ikke har vært kreative nok til å tenke oss ennå! AI er eksempelvis grunnlaget for mye av lavkodesatsingene til de store leverandørene. Dette vil føre til en skog av nye løsninger, på godt og vondt.

Det er iallfall plausibelt å påstå dagen i dag er den minst digitale dagen i resten av ditt liv. Og at et hackathon er en nydelig måte å kombinere teambygging og teknologiutforsking.

  • Om forfatteren
    Erlend Schei

    Kultur, kommunikasjon og HR

    Kulturutvikler i Oslo Origo sin avdeling for kultur, kommunikasjon og HR. Programmering, employer branding, organisasjonsbygging og internkultur. Bakgrunn fra blant annet FINN.no og Bouvet.

    cvbilde mus