Dodawanie ludzkiej inteligencji do oprogramowania

Usługa Mechanical Turk firmy Amazon od dawna stanowi tanie źródło siły roboczej, podczas gdy praca jest prosta dla ludzi, ale trudna dla komputerów. Zadania, takie jak na przykład opisywanie obrazu, mogą być wykonywane online przez zdalnych pracowników ludzkich. Programiści już używają grup tych pracowników, zwanych turkerami, do wykonywania wielu takich zadań jednocześnie. Ale Mechanical Turk nie oferuje programistom łatwego sposobu tworzenia nowych aplikacji, aby łączyć i koordynować wysiłki turkerów. Teraz informatycy z MIT opracowali zestaw narzędzi, który właśnie to robi. Nazywa TurKit , narzędzie umożliwia inżynierom oprogramowania pisanie algorytmów koordynujących pracowników online przy użyciu języka programowania JavaScript i tworzenie potężnych aplikacji z wbudowaną ludzką inteligencją. Oprogramowanie można również debugować jak normalny kod.





Oprogramowanie z mózgiem: Dodatek do przetwarzania tekstu, Soylent, pokazany powyżej, został zbudowany za pomocą TurKit. Turkit pomaga programistom pisać algorytmy, które integrują pracę ludzi zrekrutowanych przez Mechanical Turk.

Zwykle w JavaScript nie będziesz w stanie uzyskać dostępu do Mechanical Turk bez dużego nakładu pracy, wyjaśnia Greg Little, doktorant w MIT Laboratorium Informatyki i Sztucznej Inteligencji , który stworzył TurKit. Jest to pomost do pisania kodu, który współdziała z pracownikami Mechanical Turk, dzięki czemu możemy z łatwością odkrywać nowe metody obliczeń człowieka.

Dzięki TurKit dane wprowadzane przez człowieka są przechowywane w bazie danych. W ten sposób za każdym razem, gdy oprogramowanie w fazie rozwoju ulegnie awarii, turcy nie muszą zaczynać od zera. Zamiast tego, gdy program zostanie naprawiony, może wznowić od miejsca, w którym został przerwany. Jeśli czekasz godzinę, aż ludzie skończą swoje zadanie, a następnie program zgłosi błąd, nie chcesz czekać kolejnej godziny tylko po to, aby sprawdzić, czy twoja naprawa błędu działa, mówi Little. TurKit zapobiega również nieprzewidywalnym zmianom danych wprowadzanych przez człowieka podczas procesu debugowania. Gdybym miał inne zachowanie za każdym razem, gdy uruchamiałem (program), nigdy nie mogłem debugować tego ruchomego celu, mówi Michael Bernstein, doktorant na MIT, który użył TurKit do stworzenia aplikacji do edycji tekstu o nazwie Soylent .



Dzięki TurKit naukowcy stworzyli już algorytmy obliczeniowe człowieka na tyle stabilne, że można je włączyć do działającego oprogramowania. Soylent wykorzystuje grupy składające się z trzech do siedmiu turków do korekty na żądanie i skracania akapitów w programie Microsoft Word za pomocą algorytmu o nazwie Find-Fix-Verify. Na etapie wyszukiwania turkerzy po prostu zaznaczają błędy bez ich poprawiania. Soylent porównuje wyniki kilku pracowników pod kątem spójności, a następnie wysyła przefiltrowane dane wyjściowe do innej grupy indyków, którzy poprawiają błędy. Wreszcie trzecia grupa sprawdza poprawki pod kątem jakości; wyniki niespełniające norm są oznaczane, a firma Soylent wyświetla tylko sprawdzone poprawki. Jeśli po prostu rzucisz turkers na swój akapit, około 30 procent pracy, którą otrzymasz, będzie bezużyteczne, mówi Bernstein. Chcieliśmy potraktować to jako nieodłączny hałas w systemie, jednocześnie gwarantując jakość użytkownikowi końcowemu.

Kolejna aplikacja Mechanical Turk, zwana VizWiz , jest opracowywany, aby umożliwić niewidomym użytkownikom identyfikowanie obiektów, takich jak znaki drogowe lub przedmioty ze spiżarni, za pomocą kamer w smartfonach i widzących turków. Najlepiej byłoby, gdyby VizWiz działał szybko, aby użytkownicy uzyskiwali wyniki, gdy najbardziej ich potrzebują. Informatyk z Uniwersytetu Rochester Jeffrey Bigham a jego zespół wykorzystał TurKit do stworzenia algorytmu zwanego quikTurkit, który skraca czas opóźnienia, ustawiając w kolejce grupy turków, zanim będą potrzebne. Kiedy użytkownik aktywuje kamerę VizWiz, quikTurkit sygnalizuje turkusom, że zbliża się nowe zapytanie — albo rekrutuje nowych pracowników na żądanie, albo wysyła żądanie do puli ośmiu turków już zaangażowanych w odpowiadanie na poprzednie zapytania. Pierwsza metoda zwraca wyniki użytkownikowi w ciągu kilku minut; ta ostatnia trwa średnio mniej niż 30 sekund. Jeśli korzystasz z drogiej aplikacji do optycznego rozpoznawania znaków na telefonie, udzielenie odpowiedzi i tak może zająć dużo czasu, mówi Bigham, podczas gdy VizWiz jest mądrzejszy i może być tańszy.

Zarówno Bigham, jak i Bernstein twierdzą, że postrzegają ludzkie obliczenia jako bogate pole dla przyszłych aplikacji – z narzędziami typu open source, takimi jak TurKit, jako najlepszym sposobem ich prototypowania i udoskonalania. Algorytmy ludzkie zasadniczo różnią się od tych, do których jesteśmy przyzwyczajeni, a TurKit pozwala nam badać sposoby ich optymalizacji, mówi Bernstein. Jeśli zaczniemy z powodzeniem podłączać ludzkie tłumy do tych systemów, możemy wyprodukować produkt końcowy, który jest znacznie potężniejszy i to przy niskich kosztach i wysokiej niezawodności.

ukryć