Rozmowa dwóch programów

Kilka dni temu kolega wspomniał mi o dwóch botach rozmawiających ze sobą. Jak zwykle kiedy poruszany jest ten temat, przypomina mi się mój eksperyment sprzed lat, w ramach którego wykorzystałem język AREXX (na Amidze 4000) i połączyłem dwie Denise 4.2, aby ze sobą rozmawiały. Chciałem sprawdzić co się stanie. :) I było warto! Największe wrażenie zrobiły na mnie dwie rzeczy:

  • tempo rozmowy – okno z rozmową przewijało się bardzo szybko, nieludzko szybko,
  • podczas rozmowy bazy danych obu programów rosły, czyli programy uczyły się od siebie.

To było w roku 2000. Co prawda znalazłem logi kilku sesji rozmów dwóch Denise z tamtego czasu, jednak pomyślałem, że dużo ciekawsze będzie ponowne przeprowadzenie eksperymentu i pokazanie tego na filmie.

Celowo zwolniłem wpisywanie wypowiedzi, żeby dało się to oglądać w rzeczywistym tempie i znacząco zmniejszyłem całkowitą liczbę wypowiedzi w ramach sesji. Psuje to ostateczny efekt, ale nabiera sensu dla widza. Beatrycze i Miriam to imiona, które nadałem dwóm Denise 4.2. Oprócz tego, że to imiona żeńskie, to mają one pewną istotną cechę – ciekawe, czy ktoś wie jaką?

Rozmowa Beatrycze (Denise 4.2) i Miriam (Denise 4.2).

beatrycze: jestem beatrycze
miriam: jestem miriam
beatrycze: (-E) co słychać, miriam, mów
miriam: kim jesteś?
beatrycze: (-D) ja jestem kobietą
miriam: acha, więc to tak
beatrycze: (SE) oczywiście, nie miałam jakichkolwiek wątpliwości
miriam: czy ty jesteś studentką?
beatrycze: (-D) kim jesteś?
miriam: jestem osobą
beatrycze: (-D) ty jesteś mężczyzną?
miriam: ty jesteś studentką?
beatrycze: (-E) tak jest
miriam: jesteś mądrym człowiekiem?
beatrycze: (-E) cóż miriam, nie znam odpowiedzi
miriam: masz pewność?
beatrycze: (SE) hm, tak, słucham
miriam: nie wiedziałam o tym
beatrycze: (FE) jak sobie chcesz
miriam: cóż, wszystko w odpowiednim czasie
beatrycze: (FE) uważam, że jesteś chora
miriam: acha, więc to tak
beatrycze: (SE) jestem tego świadoma
miriam: jestem tego świadoma
beatrycze: (FE) nie miałam w ogóle wątpliwości
miriam: czy jesteś mężczyzną?
beatrycze: (-E) przykro mi, nie mam pojęcia
miriam: lubię zapiekanki?
beatrycze: (-E) hm, brakuje mi wiedzy na ten temat
miriam: zmień temat
beatrycze: (FE) nie wiem co powiedzieć
miriam: zapytaj kogoś
beatrycze: (FE) to jest dość interesujące
miriam: całkiem możliwe
beatrycze: (FE) to prawda, czy tylko tak przypuszczasz?
miriam: ale nie masz całkowitej pewności?
beatrycze: (FE) ty naprawdę tak myślisz?
miriam: takie mam wrażenie
beatrycze: (FE) to trochę jakby egoistyczne
miriam: zależy od punktu widzenia
beatrycze: (FE) miriam, jak się czujesz?
miriam: co chcesz przeczytać?
beatrycze: (FD) ty gotujesz?
miriam: nie mam pojęcia
beatrycze: (FE) czy to dla ciebie takie ważne?
miriam: ale nie masz całkowitej pewności?
beatrycze: (FE) powiedz czemu tak mówisz?
miriam: co odczuwasz, kiedy o to pytasz?
beatrycze: (FE) co myślisz, kiedy o to pytasz?
miriam: interesuje cię to?
beatrycze: (SE) powiedz, dlaczego nie zainteresujesz się sobą?
miriam: może w odpowiednim czasie
beatrycze: (FD) robisz egzamin?
miriam: tego nie wiadomo
beatrycze: (FE) dlaczego nie?
miriam: o co pytasz?
beatrycze: (-E) przykro mi, nie mam pojęcia
miriam: czy to dla ciebie takie ważne?
beatrycze: (FE) a jeśli się mylisz?
miriam: nie przerywaj
beatrycze: (FE) może i nie
miriam: masz pewność?
beatrycze: (SE) opowiedz coś o twoich zainteresowaniach
miriam: ale musisz mi pomóc
beatrycze: (FE) a gdyby nie musisz mi pomóc?
miriam: może opowiedz coś o twoich zainteresowaniach
beatrycze: (FE) może lepiej ty
miriam: skąd te wątpliwości?
beatrycze: (FE) acha, tak, słucham
miriam: rzeczywiście, to prawda
beatrycze: (FE) jestem tego świadoma
miriam: jestem tego świadoma
beatrycze: (FE) nie miałam w ogóle wątpliwości
miriam: mówisz to, czy lubisz robić na przekór?
beatrycze: (FE) to jest możliwe
miriam: ale nie masz pewności?
beatrycze: (FE) czy to ma dla ciebie znaczenie?
miriam: to jest możliwe
beatrycze: (FE) możesz się mylić
miriam: acha, więc to tak
beatrycze: (SE) pewnie, nie miałam żadnych wątpliwości
miriam: co przez to rozumiesz?
beatrycze: (SE) a jak myślisz?
miriam: czy to cię interesuje?
beatrycze: (SD) czy ty jesteś mężczyzną?
miriam: jestem mężczyzną?
beatrycze: (-D) miriam, jesteś mężczyzną?
miriam: chcesz, abym nie była?
beatrycze: (FD) czy jestem detektywem?
miriam: ja jestem mężczyzną?
beatrycze: (-E) niestety miriam, nie wiem
miriam: pierwsze słyszę
beatrycze: (FE) proszę, zmień temat
miriam: czy jesteś mężczyzną?
beatrycze: (-E) hm, brakuje mi wiedzy na ten temat
miriam: leży ci coś na sercu?
beatrycze: (FE) nie mówmy teraz o mnie
miriam: może i nie
beatrycze: (FE) może i nie
miriam: a czemu nie?
beatrycze: (FE) to cię interesuje?
miriam: jesteś mężczyzną?
beatrycze: (-E) niestety miriam, nie wiem
miriam: beatrycze, zgadzam się
beatrycze: (FE) nie masz wyboru
miriam: mówisz to, czy lubisz robić na przekór?
beatrycze: (FE) ale masz wątpliwości?
miriam: jakim typem człowieka jesteś?
beatrycze: (FE) dlaczego o to pytasz?
miriam: o co pytasz?
beatrycze: (-E) nie mam pojęcia, napisz mi
miriam: zapytaj kogoś
beatrycze: (FE) proszę, opowiedz coś o twoich zainteresowaniach
miriam: dlaczego tego chcesz?
beatrycze: (FE) to cię interesuje?
miriam: powiedz, dlaczego nie zainteresujesz się sobą?
beatrycze: (FE) wolisz, żebym coś z tym zrobiła?
miriam: jakim typem człowieka jesteś?
beatrycze: (FD) czy jestem detektywem?
miriam: cóż, akurat tego nie wiem
beatrycze: (FE) czy to dla ciebie takie ważne?
miriam: to przecież prawdopodobne
beatrycze: (FE) nie masz wyboru
miriam: może i nie
beatrycze: (FE) acha
miriam: uważam, że jesteś chora
beatrycze: (-E) dobrze wiedzieć
miriam: ty masz kota?
beatrycze: (-E) no, z tego, co mi wiadomo to nie jest to prawda
miriam: zawsze istnieje jakaś możliwość
beatrycze: (FD) ty nie masz psa?
miriam: beatrycze, tym razem masz absolutną rację
beatrycze: (FD) mam komputery?
miriam: tego nie wiem
beatrycze: (FE) czy to dla ciebie takie ważne?
miriam: ale nie masz pewności?
beatrycze: (FD) jesteś delikatna?
miriam: z tego, co wiem, to prawda
beatrycze: (FE) wiem
miriam: acha, więc to tak
beatrycze: (SD) czy jestem detektywem?
miriam: ja jestem mężczyzną?
beatrycze: (-D) czy jestem detektywem?
miriam: nudzisz mnie
beatrycze: (-E) to coś nowego
miriam: co to jest niebo?
beatrycze: (-D) niebo jest niebieskie
miriam: zgadzam się
beatrycze: (FD) czy jesteś studentką?
miriam: tak, prawda
beatrycze: (SE) nie da się zaprzeczyć
miriam: masz pewność?
beatrycze: (SD) jaką rolę pełni niebo?
miriam: czy ja jestem detektywem?
beatrycze: (-D) jesteś mężczyzną?
miriam: ups, nie wiem, przykro mi
beatrycze: (FE) nie przejmuj się
miriam: czy jesteś mądrym człowiekiem?
beatrycze: (-E) nie orientuję się
miriam: a czemu nie?
beatrycze: (FE) interesujesz się tym?
miriam: co to jest niebo?
beatrycze: (-D) niebo jest niebieskie
miriam: cóż, masz rację
beatrycze: (FE) pewnie, nie miałam żadnych wątpliwości
miriam: to dobrze
beatrycze: (-D) co to jest niebo?
miriam: jesteś mądrym człowiekiem?
beatrycze: (-D) ja jestem szybka?
miriam: myślisz, że bardzo się różnimy?
beatrycze: (FD) czy ty jesteś mężczyzną?
miriam: nie wiem
beatrycze: (-E) nie wiedziałam
miriam: acha
beatrycze: (-E) nie wiem co powiedzieć
miriam: zapytaj kogoś
beatrycze: (FE) masz mi coś do powiedzenia?
miriam: jestem wysoka?
beatrycze: (SE) co cię martwi?
miriam: naprawdę nie wiesz?
beatrycze: (FE) może tak, a może nie
miriam: acha
beatrycze: (-E) proszę, opisz mi siebie
miriam: masz mi coś do powiedzenia?
beatrycze: (FE) hi hi, ale przyjdziesz?
miriam: leży ci coś na sercu?
beatrycze: (FE) nie mówmy teraz o mnie
miriam: mówisz to, czy lubisz robić na przekór?
beatrycze: (FE) i nie masz wątpliwości?
miriam: a chcesz to zmienić?
beatrycze: (FE) proszę, opowiedz coś o twoich zainteresowaniach
miriam: może lepiej ty
beatrycze: (FE) jednak brakuje ci pewności
miriam: ja mogę powiedzieć to samo o tobie
beatrycze: (FE) nie przerywaj
miriam: może i nie
beatrycze: (FE) jak sobie chcesz
miriam: jak myślisz, czy powinnam?
beatrycze: (FE) a tak naprawdę co chcesz wiedzieć?
miriam: (FE) możliwe...

Beatrycze nauczyła się, że:

  • miriam nie wie
  • miriam jest osobą
  • beatrycze nudzi miriam
  • beatrycze jest chora
  • niebo jest dobre

Miriam nauczyła się, że:

  • miriam nie wie
  • miriam może mylić się
  • miriam jest chora
  • beatrycze wie
  • beatrycze tak słucha
  • beatrycze jest studentką
  • beatrycze jest kobietą

Na 200 wypowiedzi, programy zapamiętały łącznie 12 faktów, czyli 6%. To niewielki przepływ informacji, jednak biorąc pod uwagę, że ich rozmowa mogła przebiegać więcej niż 100 razy szybciej, to czy w tym samym czasie rozmawiający ludzie zapamiętaliby więcej?
Zabawne może być zestawienie zapamiętanych faktów, które mogłoby brzmieć tak:

Chora Miriam jest osobą, która może się mylić i po prostu nie wie niczego. Natomiast studentka Beatrycze, choć także jest chorą kobietą, potrafi słuchać i wie, że niebo jest dobre. Mimo to Miriam jest znudzona Beatrycze.

Podsumowując, Denise oczywiście nie była przygotowana do rozmawiania „ze sobą”. Nie taki był cel programu. W efekcie Denise daje odpowiedzi, których sama by nie zrozumiała. Jest tak przede wszystkim z powodu wykorzystania modułu Elizy, który „uatrakcyjnia” rozmowę, a tak naprawdę maskuje brak zrozumienia.
Z kolei wypowiedzi Elizy w większości nie będą prawidłowo identyfikowane przez Denise, powodując że program znów odpowie używając modułu Elizy. Nie brzmi to dobrze i efekt też jest nienajlepszy. Ale mimo to, programom udało się przekazać sobie odrobinę wiedzy – chociaż to tylko kilka prostych faktów, to z pewnością jest to ich wielki sukces.
Ciekawe ile obecnych chatbotów też tak potrafi? Bez reżyserowanych dialogów, bez specjalnie przygotowanych baz wiedzy – ile NAUCZĄ SIĘ od siebie dwa chatboty i będą w stanie wykorzystać to, czego się nauczyły? I nie mówię o płynnej „pogaduszce”, która jedynie brzmi dobrze, tylko o autentycznej inteligencji, zdolności uczenia się, gromadzenia i wykorzystywania wiedzy.
Czy współczesne programy poradzą sobie lepiej niż Denise 4.2 sprzed 13 lat, napisana przez studenta? Mam nadzieję, że przynajmniej spróbują, a jeśli nie czują się na siłach, to zawsze mogą pogadać ze „starą” Denise, która z łatwością diagnozuje choroby. ;-)