Anton Warnhag

Att grotta ner sig i en AI:s hjärna

Vi var på The Conference i Malmö i veckan. Ett av konferensens spår handlade om AI, så vi passade på att reflektera över hur vi använder det i vårt arbete.

Deborah Harrison från Microsoft Cortana öppnade sin föreläsning på The Conference med att berätta att alla svar som Cortana ger är skrivna av en människa.

Tydligen är det den vanligaste frågan hon får. Jag tror svaret går emot föreställningen om AI-drivna tjänster, emotionellt om inte intellektuellt. Intelligensen i fråga är artificiell, konstgjord.

Deborah Harrison på The Conference
Se Deborah Harrisons föredrag om AI på The Conference.

Vad Cortana primärt är, är ett system för NLP – Natural Language Processing. Att hitta nyckelorden bakom en mening, vilka vi i sin tur kan knyta klassiska programfunktioner till. Sättet på vilket den gör detta är inspirerat av hur våra hjärnor gör det, men det hänger inte något vidsträkt, pulserande intellekt i en serverhalls rack som tänker ut svaren. Inte för att det är omöjligt, men som servicefokuserat företag är man kanske inte alltid glad över resultaten.

Vad betyder det för om Rebel & Bird vill använda NLP? AI är hett som fasen, men i mitten av ett projekt är det svårt att sätta av resurserna att träna ett neuronnät (neural network) att förstå språk från grunden. Om ändå det fanns webtjänster som erbjuder något sådant.

Har man sett, det gör det. Vilken tur, jag var rädd för att tappa kontrollen över narrativet. Watson är nog det mest kända, men personligen har jag testat API.ai och Wit än så länge.

Jag har absolut inte gjort några jämförelser på hur bra de är i förhållande till varandra, men Wit är kanske av speciellt intresse för läsaren eftersom det är den enda av de tre som förstår svenska.

Både API.ai och Wit har konceptet intents, intentioner, för att uttrycka eller klassificera vad en användare vill göra – saker som ”spela upp video”, ”sök efter tavlor”, et cetera. Det är mer än nyckelord, även om exakt vilka ord som dyker upp såklart är en stor del av att klura ut intentionen. Eftersom det finns en förståelse för vilken del av en mening som gör vad kan du hantera felstavningar och märkliga meningsbyggnader, och systemet lär sig över tid genom att prata med användare, så du behöver inte alltid själv fixa saker som den inte förstår från början. Typ.

En viktigare poäng är dock att det ju egentligen inte är saker som användare vill göra – det är vad utvecklaren anser man ska kunna göra. För praktiskt tänkande är det egentligen ingen skillnad på intents och klassiska textkommandon som cd, curl, mkdir. NLP tillåter bara folk att slippa lära sig och komma ihåg exakta fraser.

På samma sätt är det inget magiskt med vad resultaten av textkommandona är. Det är du som utvecklare som måste utforma svaren i båda lägen. Som med Cortana – alla svar är skrivna av människor som försöker förutse vad du vill veta eller göra utifrån vilka intents som deras NLP lyckats identifiera.

Första versionen av vår Slack-bot Vogel, skapad för att anställda ska ställa frågor till den först i stället för till kontorets administratörer, hade bara en väldigt begränsad lista med hårt satta fraser som den reagerade på för att göra en sökning i våra interna dokument: ’sök på x’, ’sök efter x’ och liknande (drivet av botkit, för den nyfikne). Allt annat ignorerades blint. I stort sett var det bara ett kommando för att söka via Slack.

Inte så komplicerat för användare att förstå, kanske, men ytterligare en del av vad som får anställda att fråga någon direkt i stället för att först kolla våra dokument. Det kändes nog också mer begränsat än nödvändigt eftersom jag visste att det fanns NLP-system, men vadå, jag gillar att testa saker.

När jag väl kommit förbi att lära mig hur Wit och API.ai egentligen fungerar så stötte jag dock snabbt på tanken att det här ändå bara är en kommandorad. Vogel förstår utmärkt att ”hur fungerar skrivaren” och ”hjälp mig med skrivaren” är en fråga efter samma sak – en länk till info om hur man installerar skrivaren. Men hur mycket är det egentligen, om jag säger åt personer utan insikt i koden bakom att den drivs av AI?

Vogel är totalt ställd om du frågar vad vädret blir. Jag har ingen kod som kan ge ett svar. Den är inte heller kopplad mot Wikipedia för mer generella sökningar på termer. Om jag inte uttryckligen säger åt programmet att svara med ”Jag förstod inte det där” om man tar emot något helt utanför Vogels intents så är det bara tyst.

Första gången jag bad någon skriva en fråga till Vogel så skrev personen ”Vad är Rebel & Bird?”. Det är svårt att plocka ut en sökterm från den meningen som ger något relevant svar från våra interna dokument, men strunt i det. Det går att komma runt.

Det mest intressanta tycker jag låg i skillnaden mellan hur jag såg på Vogel som ett extra snällt textgränssnitt och förväntan hos användaren att få något relevant från en bot med en så bred fråga. Som om den hade någon egentlig förståelse för innehållet.

Det är kul att personifiera bot:ar, kanske till och med viktigt med ett längre perspektiv, men du har mycket jobb att göra om du vill hålla upp den illusionen.