Literatura jako kod – teksty pisane dla maszyny i przez maszynę
Patryk Ciesielczyk
Głos Patryka Ciesielczyka w debacie „Granice literatury”.
strona debaty
Gdzie dziś kończy się literatura? Wprowadzenie do debaty „Granice literatury”How do I write? Not with paper or pen, But with the language of the digital air[1] – czytamy w wierszu „Artificial Poetry”, którego autorstwo można przypisać modelowi GPT‑3.5 code-davinci-002 przeszkolonemu do wyrażania się w sposób nieodróżnialny od ludzkiego. Aż do wkroczenia w pole literatury generatywnej sztucznej inteligencji twórczość powstała przy udziale systemów obliczeniowych kojarzyła się głównie z małoskalowymi, zazwyczaj interaktywnymi generatorami tekstowymi (pisanymi np. przez takich artystów jak Nick Montfort czy Leszek Onak), które nie miały na celu „symulowania czegokolwiek i kogokolwiek, lecz nieustanne odświeżanie funkcji poetyckiej w obrębie ograniczonych, czyli tekstowo bądź syntaktycznie zdeterminowanych, zasobów tekstowych”[2]. W przeciwieństwie do obszernych utworów hipertekstowych charakterystycznych dla pierwszej generacji literatury elektronicznej, w literaturze programowanej (computational literature) właściwej drugiej generacji nie tylko liczyło się poznanie efektu końcowego (output), ale też znajomość zasad działania algorytmu i umiejętność analizy dostarczanych danych wejściowych (input)[3] inicjujących działanie kodu.
Artyści-programiści odpowiedzialni za wczesne generatory tekstu świadomie wybierali inną drogę, bliższą awangardowej tradycji literatury eksperymentalnej w duchu OULIPO i ALAMO. W eksplorowaniu literackich precedensów nie wykazywali zainteresowania „ludzko brzmiącym” językiem. W „dziecinnie prostym” algorytmie Love Letters Christophera Stracheya (1953) to, co może wyglądać jak parodia semantycznie pustych wzorców miłosnych wyznać, jest zbiorem gotowych figur, które brzmią aż nazbyt poprawnie, niemal karykaturalnie realizując oczekiwania gatunku. Podobnie w Stochastic Texts Theo Lutza (1959) język został odarty z intencji komunikacyjnej, a w mechanicznych zdaniach zbudowanych z wydobytej z Zamku Franza Kafki leksyki arbitralność operacji logicznej przeniesiona na poziom treści przestaje być gwarantem sensu[4]. Musimy też pamiętać, że w obrębie infrastruktury sieciowej znaczna część języka nie musi upodabniać się do „ludzkich” sposobów komunikacji, ponieważ funkcjonuje jako tekst przeznaczony przede wszystkim do odczytu przez maszynę. Warstwa ta nie tyle znaczy, ile wykonuje pewną pracę: uruchamia procedury, porządkuje obieg informacji i współdecyduje o widzialności treści. Ten operacyjny sposób pisania obejmuje między innymi metadane, znaczniki strukturalne oraz instrukcje indeksowania takie jak dyrektywy robots.txt, noindex.
W swojej praktyce teoretyczno-artystycznej Nick Montfort, śledząc procesy powodujące, że świat został zdominowany przez umocowywane w glosolalii duże modele językowe, konsekwentnie opowiada się za pisaniem przejrzystych programów, których działania można w całości prześledzić i zrozumieć, udostępnionych na zasadzie open source[5]. Dzięki otwartości kodu źródłowego i repozytoriom w rodzaju GitHuba kod może być dalej badany w koleżeńskich warunkach i kolektywnie przepisywany przez inne osoby praktykujące. Korzystanie z gotowych narzędzi, tak samo jak świadome eksponowanie ich niedoskonałości oraz proceduralnego charakteru, stoi w kontrze do nietransparentnych, narzucanych przez korporacyjnych gigantów modeli bazujących na ogromnych zasobach danych.
Dla Montforta kluczowe znaczenie ma fakt, że oprogramowanie nie jest narzędziem asystenckim wspierającym autora, lecz pełni rolę autonomicznego wykonawcy aktu wytwórczego. Uzyskany efekt sytuuje się na styku programistycznej intencji i wymykającym się jej kontroli procesom obliczeniowym maszyny. Marcin Składanek podkreśla, że podstawowym wymiarem kodu jest jego zorientowanie na działanie, gdyż – jak podkreśla – „kod […] stanowi notację procedury działania, w ramach której sparametryzowane zmienne, metody, funkcje, obiekty zyskują zdefiniowane przez programistę znaczenia, które interpretowane są przez niego samego oraz przez maszynę (rzecz jasna w odmienny sposób)”[6].
Być może dzisiaj formuła poetyckiego generatora opartego o small data nie robi takiego wrażenia co w czasach największej świetności e‑literatury, ale nadal pozwala ustawić umowne różnice między dziełami komputerowo wygenerowanymi (computer-generated) a wspomaganymi (computer-assisted), jak również pokazać pewną nieadekwatność tychże rozgraniczeń.
Output wyłania się w odpowiedzi na określone uwarunkowania. Generator można postrzegać jako samowystarczalny program napisany tak, aby techniczne procedury odpowiedzialne za jego output były możliwie w całości zawarte w kodzie. Kiedy zaś posłuży jako „proteza wyobraźni”, w praktyce autor staje się dostarczycielem danych wejściowych (specjalistycznych słowników, nietypowych fraz, wstępnych tematów do opracowania, próbek cudzych stylów czy własnych notatek), po czym pozwala programowi „pisać” na tej podstawie, traktując ów proces jako metodę wydobywania nieoczekiwanych zestawień i impulsów do dalszej pracy.
Proceduralne gry językowe starały się oswajać z niepożądanymi efektami i uwrażliwiać na usterki, zakłócenia, awarie, przypominając o tym, że język zawsze działa w ramach pewnych protokołów, reguł i ograniczeń, nawet jeśli w codziennym użytku pozostają one nieuświadomione. Odnosząc się do pionierskich cybertekstów, Mariusz Pisarski zauważył, że „w tych właśnie momentach, kiedy cybernetyczna literatura – z punktu widzenia założeń ludzkiego konstruktora – przestaje »działać« i zaczyna zwracać uwagę na swoją mechaniczną strukturę, dochodzi do jej wyzwolenia się z narzuconych jej przez człowieka kryteriów literackości”[7]. Podczas korzystania z dzisiejszych chatbotów, zamiast ulegać efektowi ELIZY (powściągnąć pokusę automatycznego dopisywania maszynie intencji, empatii bądź rozumienia), warto docenić ich podatność na halucynacje oraz wszelkie momenty, kiedy systemy funkcjonujące dzięki ekstrakcji wiedzy i nakarmione miliardami stron tekstów napisanych przez ludzi semantycznie się wykolejają, zamiast „wypluwać” kontekstowo adekwatne konfiguracje słów.
Dla poety-programisty Johna Cayleya „kod nie jest tekstem” w sensie literackim, staje się nim tylko wtedy, gdy nie pełni funkcji operacyjnej. Jego zdaniem aby kod mógł funkcjonować jako generator, musi stanowić odrębną część globalnego systemu tekstowego. Kod posiada własne struktury i składnie, nie jest z konieczności przejrzysty w języku czytelnym dla człowieka. W takim ujęciu krytycy, którzy omawiają powierzchniowe reprezentacje symboli „kodu-jako-tekstu”, czynią to bez interpretowania kodu jako wykonalnych instrukcji czy procesów leżących u jego podstaw[8]. W polemice z Cayleyem Rita Raley[9] przyrównywała ten sposób faworyzowania kodu nad outputem do twierdzenia Theodora Adorna, że „partytury są nie tylko niemal zawsze lepsze niż realizacje, ale są także czymś więcej niż tylko wskazówkami; więcej: samą rzeczą”[10].
Ten typ namysłu nad przejrzystością kodu co rusz rozbija się o pytanie, co zrobić z interpretacją dzieła, kiedy kompetencjom literaturoznawczym towarzyszy brak znajomości języków programowania. W praktyce hermeneutycznej istotne jest przecież to, żeby dotrzeć do sensu tekstu poprzez zorganizowanie sobie odpowiednich narzędzi lekturowych. „Czytelnikiem” kodu projektowanego z myślą o wykonaniu pewnej procedury jest przede wszystkim maszyna. Języki kompilowane jeszcze przed uruchomieniem wymagają przekształcenia kodu źródłowego do postaci pliku wykonalnego, natomiast w językach interpretowanych kod jest wykonywany na bieżąco, linijka po linijce, za pomocą interpretera. Programista może bezpośrednio wyprowadzić z poddawanego testom kodu użyteczne i czysto pragmatyczne konkluzje, natomiast kiedy uwzględnimy inne tryby lekturowe – takie, które nie sprowadzają się do bezmyślnego „grzebania w bebechach” – z kodem jako szczególnym typem języka pośrednio stykamy się, gdy już natrafiamy na inną jego postać: wynik wykonania (execution result) programu.
Musimy zatem zadać sobie pytanie o to, co zyskujemy i co tracimy, gdy poruszamy się pomiędzy dwoma nietożsamymi obszarami, między tekstem „wykonywalnym” (tym, czym kod jest) a tekstem, do którego czytelnik może dotrzeć za pomocą tradycyjnych procedur hermeneutycznych (tym, co kod czyni, ale też wszystkim, co widzialne na wierzchu, a więc również do paratekstowej warstwy interfejsu). Żeby jednak nie prześlepić przypadków zawodności programu, łatwiej będzie – za Markiem C. Marino – spojrzeć na kod jak na system znaków posiadający znaczenie wykraczające daleko poza jego funkcjonalną użyteczność[11]. Ale co jeśli w perspektywie tekstocentrycznego namysłu nad literaturą kod jest Barthes’owskim nieskrępowanym przez żadne względy reprezentacyjne tekstem pisalnym, którego istotą jest to, że „być może nie da się [o nim] nic powiedzieć”[12]?
Przeświadczenie, że tekst potrzebuje swojego interfejsu, który warunkuje akt lekturowy, już dawno temu wyznaczało redefinicyjne ramy. Kartka przewracana w wydrukowanej papierowej książce wydaje się na tyle oswojona, że jako interfejs staje się czymś przezroczystym. Inaczej jest przykładowo w przypadku literatury wykorzystującej technologię rozszerzonej rzeczywistości (AR), która angażuje materialność książki i sprawia, że gdzieś „pomiędzy” zaistnieć może akt komunikacji literackiej.
Należy pamiętać, że interfejs nie jest neutralnym pośrednikiem, gdyż nie tylko ukrywa przed nami złożoność procesów obliczeniowych, ale maskuje też ideologiczne czynniki, które uniemożliwiają zbadanie funkcjonowania ideologii jako takiej. Zdaniem Alexandra Gallowaya architektura czarnych skrzynek sygnalizuje kryzys czytelności albo rekonfigurację tego, co znaczy czytać i pisać. Należy więc wypracować nowy model czytania, który będzie opierać się na immanentnej lub maszynowej koncepcji oprogramowania i zadawać pytania nie tylko o logos (dyskurs), ale i ergon (pracę). Metoda ta nie ma charakteru wyłącznie hermeneutycznego, ale również dotyczy danych i ich parsowania, skanowania, przeorganizowania, filtrowania i interpolacji[13]. Literatura jako kod dopuszcza możliwość lektury jako zdarzenia – taką sytuację, w której sens nie zostaje całkowicie wyczerpany przez funkcję, jaką tekst ma do spełnienia na drodze jednorazowego aktu interpretacji. Dopóki taki kod może jeszcze „dryfować” – generować nadmiar, którego nie da się jednoznacznie sklasyfikować ani wykorzystać przez technologiczny instrument racjonalizacji – pozostaje on po stronie literatury. Granica przebiega wtedy, gdy błąd, indeterminacja, losowość czy nieprzekładalność zostają ujarzmione przez logikę komputacji i reżim wydajności.
Przypisy:[1] code- davinci-002, I Am Code: An Artificial Intelligence Speaks, ed. B. Katz, J. Morgenthau, S. Rich, Londyn: Cassell, 2023 [e‑book].
[2] M. Pisarski, Figury obecności w cyfrowych mediach. Od hipertekstu do sztucznej inteligencji, Wydawnictwo Universitas. Kraków 2024, s. 240.
[3] P. Marecki, Za darmo: ekonomia literatury cyfrowej, „Teksty Drugie” 2015, nr 3, s. 463.
[4] Output: An Anthology of Computer-Generated Text, 1953–2023, red. L.-Y. Bertram, N. Montfort, Cambridge, MA: The MIT Press 2024.
[5] N. Montfort, The Code is the Poem: Computation, Creativity, and Control, rozm. przepr. M. Landas, „Scientific Inquirer”, https://scientificinquirer.com/2025/06/11/the-code-is-the-poem-computation-creativity-and-control.
[6] M. Składanek, Sztuka generatywna. Metoda i praktyki, Łódź: Wydawnictwo Uniwersytetu Łódzkiego 2017, s. 147.
[7] M. Pisarski, dz. cyt., s. 239.
[8] J. Cayley, The Code is not the Text (Unless It Is the Text)„Electronic Book Review” 2002, https://electronicbookreview.com/publications/the-code-is-not-the-text-unless-it-is-the-text.
[9] R. Raley, Interferences: [Net.Writing] and the practice of codework, „Electronic Book Review” 2002, https://electronicbookreview.com/publications/interferences-net-writing-and-the-practice-of-codework.
[10] Cyt za: T. Adorno, Teoria estetyczna, przeł. K. Krzemieniowa, Warszawa: Wydawnictwo Naukowe PWN 1994, s. 184.
[11] Zob. M. Marino, Critical Code Studies, Cambridge, MA: MIT Press 2020.
[12] Por. B. Johnson, Różnica krytyczna, przeł. M. Adamczyk. „Pamiętnik Literacki” 1986, z. 2, s. 300, 306. Cyt. za: R. Barthes, S/Z, przeł. M.P. Markowski, M. Gołębiewska, [w:] Teorie literatury XX wieku. Antologia, red. A. Burzyńska, M.P. Markowski, Kraków: Społeczny Instytut Wydawniczy Znak 2006, s. 361.
[13] A. R. Galloway, Uncomputable. Play and Politics in the Long Digital Age, Londyn/Nowy Jork: Verso 2021, s. 194.
O AUTORZE
Patryk Ciesielczyk
Absolwent kierunków: Kulturoznawstwo – teksty kultury i Krytyka literacka na Uniwersytecie Jagiellońskim. Redaktor portalu pelnasala.pl. Zainteresowany realizmem spekulatywnym i filozofią akceleracjonizmu. Badawczo zajmuje się archeologią internetu i estetycznymi implikacjami powszechnego dostępu do narzędzi generatywnej AI. Pała ogromną miłością do wrestlingu.
