Vi intervjuar en av Sveriges vassaste AI-utvecklare - Lars Sjösund

2018-12-05

Trots sin unga ålder har Lars mer erfarenhet än de flesta inom AI. Vi har nu gjort en längre intervju för att få svar på många utav dom frågor, som utvecklare vilka är intresserade av att slå sig in på AI, ofta funderar över. Vad krävs för att komma igång med AI, hur ser projekten ut och i vilka miljöer jobbar man i? Lars svarar på allt detta och mycket mer!

Vad har du för yrkesroll?

Min officiella titel är Senior AI Research Engineer, vilket innebär att jag driver projekt och löser problem genom att använda AI och maskininlärning (ML).

Berätta lite om dig själv och hur kom du in på AI / Machine learning?

Jag kommer ursprungligen från Norrbotten och flyttade till Stockholm för att plugga Teknisk Fysik på KTH. Under min kandidat började jag intressera mig för mänskligt lärande och hur man skulle kunna modellera det matematiskt och med hjälp av datorer. Det här gjorde att jag hoppade på det nystartade masterprogrammet inom AI och ML. Jag tog mitt första år av mastern på KAIST i Sydkorea, där jag under tiden även jobbade på det kinesiska sociala nätverket P1. Andra året tog jag här hemma i Sverige och gjorde mitt examensarbete på Elekta inom att använda ML för tumörbehandling. Efter KTH har jag jobbat med AI på en bunt olika startups. Först ledde jag ML-teamet på Watty, där vi analyserade elförbrukningen hos hushåll. Därefter jobbade jag med att automatisera bokföring på Dooer, och de senaste två åren har jag jobbat med demokratisering av AI på Peltarion. Utöver det här har jag varit med och dragit igång och drivit Stockholm AI, Nordens största community för folk intresserade av AI.

Berätta om din arbetsgivare Peltarion och vad ni gör där?

Peltarion bygger en plattform som gör AI tillgängligt och kostnadseffektivt för alla företag och organisationer, med hastighet och skalbarhet.

Med ett team av AI-experter och topputvecklare från Spotify, Skype, King, Truecaller och Google, erbjuder Peltarion en grafisk AI-plattform som möjliggör samverkan och affärsorienterad utveckling av projekt, snabba experiment, nyttjande av moln-GPUer samt sjösättning och skalbarhet av AI-modeller.

Peltarion grundades 2004. Över 300 företag och organisationer har använt Peltarions mjukvara, bl.a. NASA, Tesla, General Electric, Dell, BMW, Deutsche Bank, Lloyds Banking Group, Harvard, MIT och Oxford.

Du får också gärna berätta om några spännande projekt som du varit med i?

Just nu är Peltarion med i ett projekt om att automatiskt hitta och segmentera tumörer, tillsammans med Elekta och Norrlands Universitetssjukhus. Anledningen att detta är intressant är att det just nu tar väldigt mycket tid för läkare att göra detta manuellt. Därtill ser man en relativt stor skillnad på resultaten beroende på läkarens erfarenhet. Syftet med projektet är både att hjälpa läkare att snabba upp processen, samt att ge mindre erfarna läkare tillgång till de mer senioras expertis. Jag höll en föreläsning om projektet på Nordic Data Science Summit förra året som kan ses här.

Vi jobbar även på ett projekt inom tung industri, där vi vill prediktera kvaliteten för producerad kartong givet en stor mängd sensormätningar. Det här problemet är spännande då lösningsmetodiken är väldigt generellt och förmodligen kan användas inom många andra tillverkningsindustrier, från stålindustrin till mejeriindustrin.

Hur ser en arbetsdag ut för en AI-utvecklare?

Jag brukar börja dagen på café med att läsa någon forskningsartikel, kolla igenom mitt Twitterflöde, r/MachineLearning och arXivsanity.com för att kolla om det kommit några spännande nyheter inom ML. 9:30 har vi standup med resten av teamet för synka inom projektet vi jobbar på. Därefter jobbar jag med att ta projektet framåt, vilket kan vara allt från att försöka förstå datan som ska modelleras, prata med kunder och förstå deras behov, läsa forskningsartiklar, bygga visualiseringar och algoritmer, tvätta data, etc.

Vilka språk tycker du är bäst lämpade för AI-programmering?

Det enklaste är att jobba i Python, då de flesta relaterade bibliotek är tillgängliga där. Sen om man vill optimera prestanda på algoritmer får man dyka ner i något snabbare, t.ex. C++, men det är inte så ofta det behövs.

Kan du berätta vad som bör ingå i arkitekturen för att ha en komplett miljö för att börja med AI-programmering?

Om man vill sitta och bygga sina egna projekt från scratch bör man åtminstone ha koll på följande:

1. Python, det mest använda språket för ML-projekt.

2. För ML-delen bör man ha koll på biblioteken Scikit-learn, Numpy, Pandas, samt TensorFlow, Pytorch och/eller Keras lite beroende på vad man vill göra.

3. Om man vill jobba med ML professionellt är det även bra att ha grundläggande databaskunskaper, t.ex. Postgres eller Mongodb. Docker kan också vara riktigt värdefullt.

4. För visualiseringar räcker Matplotlib till mycket, och om man vill bygga dashboards kan ELK-stacken vara bra att kunna.

5. Det är inte ovanligt att man behöver bygga demos, så för det är det bra att kunna lite frontend och backend.

Vad är den största skillnaden mellan att programmera inom AI- mot "vanlig utveckling"?

Överlag är det mer forskningslikt och svårare att uppskatta hur mycket tid som kommer att gå åt för att lösa ett givet problem. Det gör att det ofta inte funkar rakt av att använda sig av utvecklingsprocesser såsom Scrum. Sen är max 5% av programmeringen av AI-system själva algoritmerna och 95% vanlig programmering där du bygger system för att logga resultat, visualisera resultat från dina experiment, sätta upp automatiska tester, etc.

Konkret sitter du fortfarande och knackar kod i PyCharm, så i mångt och mycket är det väldigt likt vanlig utveckling. Det är det här vi på Peltarion försöker förändra, så att AI-utvecklare kan fokusera mer på algoritm-utveckling och mindre på overhead. Nedan kan du se ett screenshot från vår plattform, där jag byggt ett neuralt nätverk för bildsegmentering.

Vad bör man kunna för att börja med AI programmering?

Det beror helt på vilken nivå man siktar på. Om man vill kunna använda maskininlärning för att lösa praktiska problem så är vår förhoppning att det ska räcka med att du har en högnivåförståelse för vad maskininlärning är, för att sen använda vår platform för att implementera din idé. Om du däremot vill bli expert i fältet krävs det att du har en solid bakgrund programmering och i den matematik som används, såsom linjär algebra, sannolikhetslära, flervariabelanalys, statistik, och maskininlärning.

Har du några konkreta tips på hur man på bästa sätt kommer igång med sin AI-karriär som utvecklare?

Om man antar att du har en OK grund i matematik skulle jag göra följande:

1. Lär dig grundläggande maskininlärning genom Andrew Ngs Coursera kurs

2. Träna på att applicera algoritmerna du lärt dig genom att vara med i Kaggle-tävlingar.

3. Lär dig Deep Learning, vilket är cutting-edge för de flesta problemen inom bild, ljud, och text.

3a. Börja med Michael Nielsens “Neural Networks and Deep Learning” för att snabbt få en väldigt pedagogisk introduktion till området.

3b. Dyk sedan djupare genom att ta Courseras Deep Learning Specialization och fast.ais kurser.

3c. Slutligen för mer praktiska tips rekommenderar jag Andrew Ngs e-bok Machine Learning Yearning.

4. Bli mer praktisk genom att ta dig an ett eget problem, det här tvingar en att tänka djupare på vad man faktiskt vill lösa, vilken data man behöver för att lösa det, hur man ska få tag på den och hur man ska leverera sina resultat.

Om du inte har en OK grund i matematik skulle jag kolla in Courserakurser som täcker de områden jag nämnde ovan. Alternativt kan man kolla in fast.ai-kursen Introduction to Machine Learning for Coders, som verkar rätt bra.

Det är otroligt värdefullt att omge sig med folk som är bättre än en själv, därför rekommenderar jag starkt att joina Stockholm AI och börja gå på våra event.

Vet du några bra utbildningar och källor för att lära sig AI-programmering?

För onlinekurser kan du kolla in de jag nämnt ovan. Om du funderar på att investera en längre tid så skulle jag hoppa på en masterutbildning inom AI/ML på något av våra universitet. Därtill håller vi väldigt mycket föreläsningar via Stockholm AI, där en stor del är gratis.

Vilka områden och uppgifter anser du just nu är bäst lämpat att ersättas med AI idag?

Det pratas mycket om att AI kommer att ersätta människor, medan jag tycker att det är mer intressant att kolla på var AI kan hjälpa människor att vara mer effektiva.

Att träna upp ML-modeller som fungerar i alla corner-cases är ofta väldigt svårt, trots att uppgiften i sig kan vara enkel för en människa. Ett exempel är chat-bottar för kundtjänst: Alla som testat att chatta med en sådan vet att de funkar inom ett väldigt begränsat område och inte fullt kan ersätta en människa. Vad man däremot kan göra är att ha en human-in-the-loop och använda ML till att komma med förslag på svar. Det här snabbar upp svarstiden signifikant och leder till att varje person i kundtjänst kan hantera fler kunder. På samma sätt vill man kanske inte att en ML-modell segmenterar hjärntumörer utan uppsyn, men om en radiolog kan använda den för att snabba upp sitt arbete 90% vore det väldigt värdefullt.

Hur kan man komma i kontakt med dig?

Ni kan nå mig på twitter på https://twitter.com/sjosund, eller via mail på lars.sjosund@gmail.com.

Läs också vår AI guide för utvecklare

Demando