Blogg - AI och ML - different but same same

AI och maskininlärning

- different but same, same

Av Charlotta Carlsson 2021-01-04


Jag har en ung bekant, J, som just blivit klar med sin "Data Scientist"-examen vid ett stort universitet i Kalifornien. Han har framtiden för sig: Kunskapen om hur data kan analyseras och användas är nämligen grundbulten inom det exploderande teknikområdet AI, Artificiell Intelligens. 


Men AI är inte bara för sådana som J. För alla oss som jobbar med IT och digitalisering är det nödvändigt att greppa vad AI handlar om eftersom det snart nog kommer in i alla branscher. Inte minst om du som jag arbetar i ledande roller inom IT behöver du kunna tillräckligt om AI för att bedöma business cases, kravställa systemlösningar, styra AI-projekt i förhållande till verksamhetsmål och på ett initierat sätt coacha de personer som ska utveckla AI-lösningarna.


Sagt och gjort! Nyligen gick jag kursen ”Leading AI projects” hos Chalmers Professional Education. Det var en mycket givande överflygning av AI-området, med både forskningsfront och massor av exempel från verkligheten bland deltagarna. Jag som tycker om att lära mig nya saker blev glad över att jag begrep det mesta. AI är inte trolleri utan bara ett annat sätt att programmera.


Min största behållning med kursen var insikten att det som ger framgång i AI-projekt är precis samma saker som alltid i IT-utveckling.  Jag återkommer strax till detta.


Den gren av AI som står för de allra flesta kommersiella tillämpningar hittills heter maskininlärning (ML). ML är så vanligt att du antagligen använder det varje dag utan att veta om det.


Detta är ML, med min grova förenkling:

  • Tillgång till ett befintligt dataset som antas vara användbart för ändamålet
  • Datasetet utgör input som kan ge en viss output om det passerar en ML-applikation.
  • Utveckling av ML-applikationen börjar med att "data scientister" analyserar det befintliga datasetet och räknar ut en funktion (hypotes) som kan kalkylera output från nya inputvärden. Denna funktion kallas modell.
  • Modellen tränas dvs förbättras med fler inputdata och utvärderas och justeras efter hand. När man är nöjd med resultatet kan modellen sättas i produktion. Kriteriet för att vara nöjd kan vara att modellen gör så få felbedömningar som möjligt i jämförelse vad en människa skulle ha gjort.
  • Syftet med att ha en dator istället för en människa till uppgiften är att datorn kan göra mycket mer på kort tid. Inte att den tänker bättre. Den artificiella ”intelligensen” försöker efterlikna den mänskliga men det klarar den bara inom väldigt begränsade områden än så länge. 
  • I produktion är det viktigt att ha en stabil "data pipeline" som betyder ungefär det sätt på vilket man skickar in nya data till applikationen. 


En vanlig tillämpning är bildanalys. Ett typexempel är att datorn kan kategorisera om en bild föreställer en katt eller en hund, utifrån hur den har ”lärt sig” typiska karakteristika i tidigare bilder på katter och hundar. Skulle du införa ytterligare en kategori "räv" blir det genast svårare.  Applikationerna och modellerna kan vara mer eller mindre komplexa. "Data scientisterna" behöver veta vad de gör... Tänk på självkörande bilar till exempel.


En praktisk tillämpning inom vården är att datorn kan tolka röntgenbilder för att identifiera tumörer istället för att använda dyrbar läkartid till detta. Och häromdagen hörde jag på Ekot om ett aktuellt forskningsprojekt där AI används för att känna igen älgar som filmas när de äter vid en matningsstation.


Ett annat område för ML är analys av naturligt språk. Google har nyligen lanserat en sådan mycket framgångsrik modell som heter BERT. (BERT (language model) - läs på Wikipedia)


Detta om detta. För den som vill veta "lite" mera kan jag rekommendera denna MOOC kurs på Mälardalens högskola, öppen för alla:  Online AI Courses – AI Class.


AI är annorlunda men ändå precis som vanligt

Jag tycker att AI är ”different but same, same”. Det är inte första gången som ny teknik driver förnyelse innan man ens vet vad nyttan blir. Man först bara anar att vardag, verksamheter och affärer kan förändras. Sedan mognar tekniken i sig och lönsamma användningsområden hittas. För att sedan lyckas med tillämpningen är det vissa faktorer som spelar roll oavsett teknik. Dessa blir om möjligt ännu viktigare när AI är med i spelet! Låt mig säga så här:


Om du inte har bra koll på följande saker utan AI så är nog chansen att lyckas med ett AI-projekt inte så stor.


Kravhantering

Precis som i andra sorters IT-projekt behöver du veta vad du vill åstadkomma. Kravhantering för AI-projekt handlar t.ex. om dessa bekanta områden:

  • Definiera syfte utifrån affärsmål: Vilka data stödjer affärsmålen?
  • Identifiera dina intressenter och användare
  • Beskriva användningsfall
  • Ta fram ickefunktionella krav: ”Explainability” är nytt för mig och väldigt sunt: Om din organisation ägnar sig åt AI-projekt som ingen kan förklara är det troligen ingen lönsam satsning! Förvaltningsbarhet och Testbarhet kan också ha stora utmaningar och behöver ägnas några tankar.
  • Jobba med kravhanteringen över hela livscykeln. Ompröva systemets relevans över tid och justera kraven.
  • Göra etiska ställningstaganden – på vilka grunder tar maskinen/systemet beslut


Användarmedverkan

Team som består av både verksamhet och IT brukar lyckas bäst.  Varför skulle det då fungera att placera utvecklare och "data scientists" långt från användare när man håller på med avancerad AI? De gamla vanliga UX-principerna och metoderna gäller fortfarande.

  • I AI-projekt behövs människor med domänkunskap. Data scientists och utvecklare kan vara aldrig så smarta och kompetenta men de behöver hjälp att förstå vad datat betyder.
  • Användningstester visar om modellen löser rätt problem. Modellens output kan testas via ett användargränssnitt (webiste/app) som gör att användare kan förstå och använda det.

Ett iterativt och experimentellt arbetssätt

Att arbeta iterativt, med kontinuerlig utvärdering av modeller och prototyper, är en känd framgångsfaktor i systemutveckling. AI/ML-projekt är i hög grad iterativa och experimentella.

  • Det krävs massor av trial-and-error i arbetet med ML-modeller och med att validera träningsdata
  • Man gör ett stort antal preliminära experiment eller proof-of-concept kring användningsfall.
  • Detta fortsätter även i produktion för att hålla modellerna uppdaterade med den senaste evidensen.

En väl definierad process/workflow i utveckling är som vanligt viktigt, kreativitet frodas bäst då ramarna är trygga.


Test

Test av mjukvara har till syfte att hitta fel, helst redan på tankestadiet, genom att utmana.  Ju mer komplicerade algoritmer, desto svårare att utmana och testa. Samtidigt är det ju ännu viktigare att testa väl ju mer komplext någonting är eftersom det då finns större risker för fel. Testerna av AI/ML-applikationer kan vara utmanande kring:

  • Testmiljö
  • Testdata (ej att förväxla med träningsdata)
  • Kodtäckning
  • Vilka problem beror på modellen och vad beror på annat som tex användargränssnittet?

Verktyg och teknisk infrastruktur

Systemutveckling och förvaltning går bättre med mogna, väl integrerade utvecklingsverktyg och en stabil teknisk infrastruktur. Med AI och ML tillkommer nya behov av verktyg som ska anpassas efter behov och synkas med omgivande teknologi och arbetsprocesser, som redan kan vara mycket komplexa i dagens IT-landskap.


Eftersom AI-området är relativt nytt är verktygsmognaden ojämn. Open source som släpps av de stora jättarna kanske inte alls går att applicera i någon annan verksamhet. Det finns en risk för övertro på verktyget, om man inte förstår vad det gör.


Den tekniska infrastrukturen och hur teknik-"stacks" sätts upp påverkar möjligheten till en stabil data pipeline, som är ryggraden i AI/ML-tillämpningar.


Datakvalitet

Den gamla devisen ”Skit in=>skit ut”  blir extra relevant för AI/ML eftersom hela nyttan av den tekniken kommer ur datat:

  • Datakällor: Är de tillgängliga och rätt - över tid? Saknas kanske inmatningsbegränsningar? Ändras systemens syfte över tid så att data ändras? Ändras mjuk- eller hårdvara?
  • Data pipeline: Är den pålitlig? Ändras dataformat över pipelinen? Får vi alltid tillgång till datat? Finns det beroenden mellan datakällor?
  • Analys av data: Hur klassificerar vi det och korrigerar det?
  • Under utveckling: Finns tillräckligt med träningsdata för att kunna dra slutsatser?
  • I produktion: Kontinuerlig utvärdering för att hantera förändring.

Ändringshantering

Som alltid behöver du ha koll på konfigurationshantering, versionshantering, och återanvändning.  I AI/ML-tillämpningar är hela tiden frågan: Är modellen fortfarande relevant? Den behöver förvaltas på ett medvetet sätt.

Ledarskap

Eftersom AI/ML-projekt kräver en stor bredd av kompetenser, avancerade metoder och verktyg, så ställer det motsvarande stora krav på projektledningen som ska hålla ihop alltihopa.


Organisationer som vill vara framgångsrika i en snabbföränderlig värld behöver ett tillitsbaserat ledarskap, och ledare som hellre framhäver sina team än sig själva. För en lyckad AI-satsning tror jag ledare behöver vara extra ödmjuka och släppa fram tekniska talanger samtidigt som de coachar och faciliterar processen med verksamhetsnytta i sikte. De måste också medvetet sprida kunskap i organisationen om vad AI är och inte är.


När jag gick kursen på Chalmers så hade vi ett stort antal grupparbeten med ständigt nya slumpmässiga gruppsammansättningar. Min roll blev nästan varje gång att driva diskussionen, medan de flesta andra hade mer AI-erfarenhet att bidra med. Både och behövdes för att vi skulle komma framåt.


Slutord

Det är lätt att gå bort sig i en övertro på tekniken i sig. Om jag var du skulle jag vara skeptisk om jag stötte på en organisation som marknadsförde sig med AI såvida de inte gör verktyg för just detta. Detta säger nämligen ingenting om vad som ska åstadkommas. Istället borde de berätta vad de vill leverera i form av nytta eller nöje.


När du sätter igång med AI behöver du begåvade specialister, som min unge bekant data scientisten från Kalifornien. Men det behövs också en del gamla erfarna rävar som styr upp kravhantering, test, datakvalitet, verktyg, ändringshantering, arbetsprocesser och människor, inte minst se till att användarna kommer med i loopen.


Jag ser fram emot mitt första AI-projekt, inte om utan när det kommer.