Lägga till mänsklig intelligens till programvara

Amazons Mechanical Turk-tjänst har länge varit en billig arbetskraft, när jobbet är enkelt för människor men svårt för datorer. Uppgifter som att beskriva en bild, till exempel, kan utföras online av fjärranställda, mänskliga arbetare. Programmerare använder redan grupper av dessa arbetare, kallade turkers, för att utföra många sådana uppgifter samtidigt. Men Mechanical Turk erbjuder inget enkelt sätt för programmerare som utvecklar nya mjukvaruapplikationer att kombinera och koordinera turkarnas ansträngningar. Nu har datavetare vid MIT utvecklat en verktygslåda som gör just det. Kallad TurKit , låter verktyget mjukvaruingenjörer skriva algoritmer för att koordinera online-arbetare som använder programmeringsspråket Javascript och skapa kraftfulla applikationer som har mänsklig intelligens inbyggd. Programvaran kan också felsökas som vanlig kod.





Programvara med hjärnor: Ordbehandlingstillägget, Soylent, som visas ovan, byggdes med TurKit. Turkit hjälper utvecklare att skriva algoritmer som integrerar arbetet hos människor som rekryterats genom Mechanical Turk.

Vanligtvis i Javascript skulle du inte kunna komma åt Mechanical Turk utan mycket arbete, förklarar Greg Little, doktorand vid MIT:s Laboratoriet för datavetenskap och artificiell intelligens , som skapade TurKit. Detta är en bro för att skriva kod som interagerar med arbetarna på Mechanical Turk, så att vi enkelt kan utforska nya metoder för mänsklig beräkning.

Med TurKit lagras mänsklig input i en databas. På så sätt, när som helst mjukvaran under utveckling kraschar, behöver turkarna inte börja om från början. Istället, när programmet har fixats, kan det fortsätta precis där det slutade. Om du väntar en timme på att människor ska slutföra sin uppgift, och sedan ger programmet ett fel, vill du inte vänta en timme till bara för att se om din buggfix fungerar, säger Little. TurKit förhindrar också den mänskliga insatsen från att förändras oförutsägbart under felsökningsprocessen. Om jag fick ett annat beteende varje gång jag körde (ett program) skulle jag aldrig kunna felsöka det rörliga målet, säger Michael Bernstein, doktorand vid MIT, som använde TurKit för att skapa ett ordbehandlingsprogram som heter Soylent .



Tack vare TurKit har forskare redan skapat mänskliga beräkningsalgoritmer som är tillräckligt stabila för att integreras i fungerande programvara. Soylent använder grupper om tre till sju turkare för att göra korrekturläsning och styckeförkortning på begäran i Microsoft Word, med en algoritm som heter Find-Fix-Verify. I Find-stadiet markerar turkare helt enkelt fel utan att rätta till dem. Soylent jämför resultaten från flera arbetare för konsekvens och skickar sedan den filtrerade utdatan till en annan grupp turkare som rättar till felen. Slutligen kontrollerar en tredje grupp korrigeringarna för kvalitet; undermåliga resultat flaggas och Soylent visar endast de kontrollerade korrigeringarna. Om du bara släpper turkers på ditt stycke är runt 30 procent av det arbete du får tillbaka oanvändbart, säger Bernstein. Vi ville behandla det som inneboende brus i systemet samtidigt som vi garanterar kvalitet till slutanvändaren.

En annan Mechanical Turk-applikation, kallad VizWiz , utvecklas för att tillåta blinda användare att identifiera föremål, såsom gatuskyltar eller skafferiartiklar, med hjälp av sina smarta telefonkameror och seende turkare. Helst kommer VizWiz att fungera snabbt, så att användarna får resultat när de behöver dem som mest. Dataforskare vid University of Rochester Jeffrey Bigham och hans team använde TurKit för att skapa en algoritm, kallad quikTurkit, som minskar eftersläpningen genom att köa grupper av turkers innan de behövs. När en användare aktiverar VizWiz kamera, signalerar quikTurkit turkers att en ny fråga är nära förestående – antingen rekryterar nya arbetare på begäran eller skickar förfrågan till en pool av åtta turkers som redan är engagerade i att svara på tidigare frågor. Den tidigare metoden returnerar resultat till användaren inom ett par minuter; den senare är i genomsnitt mindre än 30 sekunder. Om du kör en dyr app för optisk teckenigenkänning på din telefon kan det ta så lång tid att ge dig ett svar ändå, säger Bigham, medan VizWiz är smartare och kan vara billigare.

Både Bigham och Bernstein säger att de ser mänsklig beräkning som ett rikt område för framtida applikationer – med öppen källkodsverktyg som TurKit som det bästa sättet att skapa prototyper och förfina dem. Mänskliga algoritmer skiljer sig fundamentalt från de vi är vana vid, och TurKit låter oss utforska sätt att optimera dem, säger Bernstein. Om vi ​​börjar koppla in mänskliga folkmassor framgångsrikt i dessa system, kan vi producera en slutprodukt som är mycket kraftfullare, och göra det till låg kostnad med hög tillförlitlighet.

Dölj