Механічний Шевченко: чи здатні машини до літературної творчості?

Була ніч, вогні Бориспільської траси пролітали повз вікна таксівки. Водій вимкнув музику, що нестерпно била мені на мозок після важкого перельоту, і, щоб не заснути самому, почав говорити.

Спочатку, звісно, про політику, «довели країну», і все в цьому роді, потім про щось особисте. Я теж не хотів вирубатися прямо в машині, тому слово-через-слово дослухався.

— ...і тоді нам всім настане великий гаплик, — долинули до мене обривки фрази. — Точніше лиш їм, не мені. Я надійно підстрахувався. Коли всіх їх: таксистів, маршрутників, навіть трамвайників викинуть на вулиці, мене вже там не буде. Я сидітиму в теплі, питиму каву і голосно-голосно сміятимусь.

— Чо-чому їх викинуть на вулиці? — заспано перепитав я.

— Ти що, про Убер не чув? Те, що вони оце з водіями роблять, — тільки репетиція, так. Скоро, вже дуже скоро вони запустять свої автопілоти. Це буде дешевше, безпечніше, крутіше! Цих всіх нездар чекає робота на стройці. Або бомжатнік. Але не мене, бо я розумніший за них всіх.

— Так? — протер я очі.

— Ага. Я роман почав писати. Гостросюжетний! Знаєш, в мене отут, — постукав пальцем по скроні, — стільки сюжетів сидить — закидайся. Вожу оце різних людей, кожен щось ляпне. А пам’ять в мене з дитинства дай дорогу. Хто в мене тут тільки не їхав: трансвестит, що зробив уже три операції, ніяк визначитися не може; елітна проститутка — цілу дорогу тараторила про шумерський клинопис; коханець відомого політика ще їхав, стільки всього нарозповідав... Імена лише міняй і пиши — блокбастер буде!

— А...

— Єдине, що писати я поки не дуже вмію. Скачав собі пару підручників, читаю після роботи. Кожного вечора для тренування записую, що почув за день. До речі, може ти щось цікавого розкажеш, а то сьогодні чомусь голяк повний. Можу навіть знижку зробити.

— Та що в мене цікавого... Я програміст, лечу ось із...

— Слухай, програміст, — перебив мене водій, — про життя своє можеш не розповідати. Воно у вас всіх однакове, нецікаво. Скажи мені краще інше: оці роботи, що навчилися водити машини, вони романи скоро почнуть писати? Тільки чесно. Я не розстроюся, не бійся. Просто якщо скоро — в моєму плані немає сенсу, треба йти на програміста тоді, комусь же цих роботів ремонтувати потім, налаштовувати...

Я, чесно кажучи, знітився. З одного боку, наскільки я тоді знав, жоден алгоритм ще навіть приблизно не вмів писати осмислений текст. Не кажучи вже про художню літературу. А з іншого, блін, брати на себе таку відповідальність за чуже життя, сказати оце йому зараз, що професія письменника в безпеці, а потім, через п’ять років, чекати його, озлобленого, з обрізом в мене біля хати?

— Давай так, — сказав я йому після незручної паузи. Я оце трохи погуглю, почитаю, роздивлюся. І напишу статтю. Заодно може комусь іншому цікаво буде, в кого така сама проблема.

Написав йому на листочку адресу ДОУ, розплатився і пішов досипати після важкої дороги. На ранок про свою обіцянку я звісно ж забув. Згадав трохи пізніше, і там вже совість замучила: довелося і справді писати.

Надіюся, мій випадковий друже, (я ж так і не запитав, як тебе звати), ти повірив невиспаному пасажиру і читаєш зараз цю статтю. А якщо ні — то чорт з тобою. Може комусь іншому знадобиться.

Так от.

Песимісти минулого

На хлопський розум задача програмного написання художніх творів виглядає просто:

  1. Створюємо Супер-Мега-Штучний Інтелект.
  2. Примушуємо його написати роман.

Ну ні, скажете ви, це ж робот! Біла пластикова хрінь! Він тільки наші команди виконувати вміє, куди йому до творчості? Він ж не розуміє ні емоцій, ні мотивів людей, про що він взагалі може написати? Про електроовець?

З такою думкою ви не залишитесь наодинці. Так само вважала одна дуже розумна жінка: дочка відомого поета, а заодно перший в історії програміст — Ада Лавлейс.

Вона стверджувала, що комп’ютер, навіть надзвичайно потужний, не буде здатний ні на творчість, ні навіть на те, що ми називаємо «інтелектом». Адже будь-яка машина — всього лиш бездумний виконавець алгоритмів, закладених у неї людиною. Тобто навіть якщо комп’ютер коли-небудь і напише вірш чи роман — все одно авторські права будуть належати кодеру, який його на це запрограмував.

Зрозуміти ми її, звісно, можемо. Перед очима в благородної дами стояв приклад батечка, гульвіси та дебошира: тільки такий склад характеру може бути в справжнього поета. Якщо її улюблена, логічна і точна машина приречена стати чимось подібним — краще знищити її просто зараз, щоб потім не довелося слати десант у минуле.

З іншого боку, її ключовий аргумент про «виконання програмою тільки наперед заданих алгоритмів» останнім часом тріщить по швах.

Почалося все з того, що над складними програмними комплексами почали працювати сотні, а то й тисячі людей. І програмістів, які б розуміли, що робить абсолютно кожна функція, у великих проектах зазвичай не водиться. Тобто за рахунок колаборації різних людей, програми вже стоять на рівень вище від того, що здатна створити одна людина. Уявіть собі роман з тисячею авторів. Отож.

Далі — більше. Останні здобутки машинного інтелекту базуються на алгоритмах, які ніхто і ніколи не писав. Програми їх творять самі, базуючись на даних, які їм згодовують у неймовірних кількостях. Дійшло вже до того, що на питання «як працює ваша програма?» її творці тільки розводять руками. Назад в людські знання таємничі нулики та одиниці просто так не конвертуються.

Наступник Ади, Алан Тюринг, був налаштований трохи оптимістичніше. Він навіть присвятив кілька абзаців доказам, що безсмертна душа може жити не тільки в людському тілі, а і в будь-якій іншій посудині. Наприклад у бойовому людиноподібному роботі. За такі пасажі його не дуже любили на батьківщині, в консервативній Англії.

Навіть при тому, що зламавши «Енігму» він серйозно вплинув на результати Другої Світової, все одно його гендерні вподобання виявилися для публіки важливішими за наукові здобутки, і зрештою «народ-переможець» довів учорашнього героя до самогубства.

Програмістам Тюринг відомий насамперед своєю «машиною», на основі якої виникли всі мови програмування, але в популярній культурі набагато краще освітлено інше його творіння — славнозвісний Тест Тюринга.

Думка про те, що оцінити «інтелект» робота можна просто з ним порозмовлявши, захопила уми провідних фантастів середини минулого століття і настільки встигнула всім набриднути, що коли кілька років тому тест таки було пройдено, ніхто, зрештою, нічого і не помітив.

Людина теж, якщо чесно, — такий собі обчислювальний механізм. Призначений для конкретної цілі — виживання серед диких тварин і собі подібних.

Справа у тому, що спеціально треновані лексичні генератори окрім «видавання себе за людину» нічого власне і не вміли. А для повсякденного вжитку набагато кориснішими виявилися системи, які не намагалися скопіювати людську поведінку, а просто вирішували поставлені перед ними задачі.

Аналогічна революція, до речі, сталася на століття раніше у автомобіле- і літакобудуванні. Як тільки конструктори перестали намагатися створити «металевого коня» або «дерев’яного птаха», одразу вдалося побудувати механізми, набагато корисніші за витвори сліпої еволюції.

Людина теж, якщо чесно, — такий собі обчислювальний механізм. Призначений для конкретної цілі — виживання серед диких тварин і собі подібних, у деяких царинах людський організм безнадійно відстає навіть від найпростіших механізмів. Який сенс намагатися імітувати, якщо можна зробити краще?

Саме тому після Тюринга поняття «штучного інтелекту» оселилося у фантастичних романах, а програмісти, натомість, взялися за вирішення конкретних задач, які стояли перед економікою.

В космос літали ракети, на біржах торгувалися акції. Комп’ютери успішно розраховували оптимальні розклади руху поїздів та літаків. Поки романтики зачитувалися правилами робототехніки, прості робітники бобіни та перфокарти вводили в лампові машини все складніші і складніші алгоритми.

Логічно було би припустити, що аналогічним чином можна було б вирішити і проблему написання художніх творів. Мовляв, випишемо алгоритми, за якими письменник чи поет складає літери у слова, закинемо їх у жерло комп’ютера і вуаля — тримайте нову поему. Або вірш. Або хоча б рядочок тексту який, ні?

За накатаною звичкою програмісти пішли до експертів, дошукуючись правил бізнес-логіки. Так само вони колись ходили до фізиків, залізничників та навіть біологів. Останні з математикою дружили так собі, але серед них виявилось багато фізиків, говорити з якими програмістам було простіше.

Єдиною складовою художнього тексту, що хоч якось піддавалась алгоритмізації, довгий час був сюжет.

Але з філологами вийшов повний швах. Формальні ознаки тексту, сказали вони, звісно ж існують. Віршовий розмір, жанри і піджанри, стилі мовлення і письма, зрештою. Але якщо розставити наголоси машину ще навчити можна (після довгого прописування вручну), то формулювати в математичних термінах особливості стилю Лесі Українки філологи відмовлялися наглухо.

Мовляв, ні в які цифри справжнє мистецтво помістити не можна. І не треба! Бо хто тоді нам, філологам, зарплату платити буде? Йдіть собі словом, любі програмісти, розраховувати траєкторії ядерних ракет. Це нам найближчим часом знадобиться набагато більше. От вони і пішли.

Єдиною складовою художнього тексту, що хоч якось піддавалась алгоритмізації, довгий час був сюжет. Адже в більшості випадків у творі були головні герої, що робили певні дії. Наприклад рухалися з точки А в точку Б. Прямо як ракети, подумали програмісти і взялися за різноманітні генератори сюжетів.

Деякі з них, чесно кажучи, і справді давали непогані результати. Хтось навіть умудрявся оформити це в цілі книжки. Тільки от Ада Лавлейс, критично примруживши око, зауважила б, що такі програми — не більше, ніж варіації «капелюха сюжетів», коли автор пише на клаптиках паперу спочатку персонажів, потім події, а потім по черзі витягує клаптики, описуючи в літературній формі, що сталося і з ким. І якщо і є якась творчість в цьому процесі, то виключно з боку автора, який на листочках пише. А з боку машини тут один лиш генератор випадкових чисел.

Доливали масла у вогонь містики: творчість, мовляв, — це медитативний процес, своєрідне спілкування письменника з духами. Якщо існують якісь правила, то тільки в їхньому ефірному світі. Поки ми не навчимо наші комп’ютери підключатися туди по HDMI, ніякої творчості від комп’ютера чекати не варто.

Цю позицію розділяли автори підручників по «creative writing». Більшість тексту там про те, як примусити себе сісти за стіл, розслабитися і почати «слухати свою броколі». Після того як вона вам надиктує текст, варто лише виправити помилки, викинути всі прислівники і можна відсилати рукопис у видавництво.

Що ж, метод може і дієвий, але для написання програми непридатний абсолютно. Адже для того, щоб запрограмувати щось, треба знати, як воно працює. Чи не так?

Насправді... не зовсім. Але про це трішечки пізніше.

Світ як правила і означення

Якщо копнути глибше, проблема формалізації виникає не тільки в літературі. Філософи Древньої Греції теж дуже любили давати означення всьому, з чим зустрічалися на своєму шляху. Спочатку виходило непогано. Тільки от виявилося, що найбільші проблеми виникають з найпростішими поняттями, зрозумілими навіть дитині. Добро, зло, краса, потворність, чеснота, вада, Бог.

Після кількох анекдотичних випадків на кшталт «людина — це двоноге без пір’я» Платон втомився працювати над означеннями і постановив, що справжні правила цього світу, так звані Ідеї, існують десь в паралельному світі, а до нас долітають виключно їхні тіні. Людська душа, маючи доступ до цього «Ідеального Світу», може їх без зусиль розрізняти, а наше мислення, обмежене світом матеріальним, осягнути цієї величі не може.

Потеревенити про Ідеї під хороше вино, втім, ніхто не забороняє. Хоча ні, таки забороняє. Людвіг Вітґенштайн, один з провідних філософів двадцятого століття, у свій час безапеляційно проголосив: «Про що неможливо говорити — про те краще мовчати».

Ні, він не був ворогом свободи слова. Просто мова, зауважив він, по відношенню до нашого мислення, — відверто вторинна. Вона може допомогти у базовому спілкуванні та навіть передачі якоїсь частини знань у друкованому вигляді, але головне, що відбувається з нами, — у слова конвертується слабо.

Весь світ навколо — просто конфігурація атомів і хвиль, в яку хвороблива людська уява намагається впихнути терміни, яких сама не розуміє.

Максимум, що ми можемо, — це давати назви якимось фактам, елементарній одиниці цього світу. На відміну від «понять», «факти» описують те, що ми бачимо, без зайвих узагальнень. Конкретний стіл стоїть в конкретній кімнаті при конкретній температурі, атмосферному тиску і рівню освітлення. Ніякої Ідеї Стола в кімнаті нема, а отже і говорити про неї немає сенсу. Весь світ навколо — просто конфігурація атомів і хвиль, в яку хвороблива людська уява намагається впихнути терміни, яких сама не розуміє.

Дитина приходить до батька і каже: «Тату, я вигадала слово Карчапан. Що воно значить?». Такими Вітґенштайн бачив усіх філософів минулого. Натомість «факти» такими проблемами не страждають. Ми вже знаємо, що ми бачимо. Лишається зрозуміти — чому?

На мову опису «фактів» серйозно претендувала математика. Стрункими рядками формул намагалися пояснити все: від взаємодії атомів до нещасливих шлюбів. Тільки от коли модель ставала хоч трохи складнішою, формули відразу втрачали свою елегантність і перетворювалися в десятиповерхові нотації тензорів і «химерних атракторів» (єдиний термін, який я досі пам’ятаю з курсу функціонального аналізу).

І перевести авангард сучасної математики в булеву логіку виявилося ще складніше, ніж художні тексти. До того ж і сама математика, як показав Гедель, виявилася не такою вже і всесильною. Словом, повне розчарування.

Настільки повне, що частина філософів остаточно пустилися берега і створили химерне вчення під назвою «пост-структуралізм». Проблему опису навколишнього світу текстом вони вирішили дуже просто. Текст, мовляв, не описує, а породжує цей світ. Своєрідне вчення Вітґенштайна навпаки: якщо про це ніхто не написав — цього насправді не існує.

Ця точка зору могла б дуже сподобатися програмістам, адже ввести в комп’ютер текст набагато простіше, ніж примусити збирати інформацію про світ сотнями датчиків. Тільки от самі постулати теорії виявилися настільки близькими до повної маячні, що їх, окрім самих творців, здається, так ніхто і не зрозумів. Тож після смерті Фуко і Дельоза течія поволі розчинилася у ризомі.

Остаточно розчарувавшись у філософах, програмісти звернулися до представників більш приземлених спеціальностей. Наприклад, до вже знайомих біологів.

Уподобитися мозку

Двадцяте століття, окрім проривів у кібернетиці та способах вбивати одне одного, принесло ще й непогані результати у розумінні, як влаштовані самі люди. Все більше і більше понять, які раніше могли пояснити тільки взаємодією з духами, тепер приписували мозку. До повного розуміння, як працює наша свідомість, ще, звісно, дуже і дуже далеко, але в базових речах, на кшталт будови нейронів, наука орієнтується доста непогано.

І от, з усього виходить, що славнозвісна Печера Ідей — це насправді області всередині нашого черепа. Мозок, отримуючи з органів чуття інформацію про навколишній світ, записує її в тільки йому зрозумілій формі на «жорсткий диск» із нейронів та зв’язків між ними.

Про «читання» такого запису мова поки що не йде, проте ми знаємо, що ключовими характеристиками нашої «печери» є а) абстракція, себто об’єднання рис різних предметів і явищ під одним «ключем» і б) постійне оновлення даних на основі вхідної інформації.

Система зберігання даних типу «мозок» — на кілька порядків краща за все, поки що створене людиною. І єдиним, хоч і дуже неприємним недоліком є те, що як у мову, так і в математику всі наші знання і весь наш життєвий досвід конвертуються дуже і дуже погано.

Виникає навіть дотепна ситуація, коли спеціаліст екстра-класу, здатний виконувати надзвичайно складні завдання, не може докладно пояснити учням, як це в нього виходить. Бідолахам лишається тільки спостерігати за Майстром і намагатися повторити кожен його рух. Як перекласти це все на машинну мову питання поки що не стоїть.

Здавалося б, черговий тупик. Але вчені, почесавши потилицю, задумалися. А чому б нам не вилучити недолугих посередників, які навіть між собою порозумітися не здатні, і не випустити наші програми напряму в зовнішній світ. Хай вони самі беруть — і вчаться! Спокусливо, чи не так?

Без перебільшення можна сказати, що модель Піттса дозволила побудувати комп’ютер, яким ми його знаємо тепер.

Першою спробою стала кооперація Уоррена Маккалока та Уолтера Піттса в 1943 році. Варто сказати, що жоден з них не був програмістом. Маккалок — нейропсихолог, нейрофізіолог, філософ, поет, з математикою мав доста складні стосунки. Але це компенсував Піттс — вундеркінд-математик, від якого в захваті був сам Рассел і який втік з дому в 15 років, щоб крутитися навколо МІТ, куди його вперто не брали через вік і відсутність формальної освіти.

Маккалок усе життя мріяв побудувати модель людського мозку. Піттс допоміг йому в цьому, спростивши нейрон до булевого оператора, який оперує двійковими числами і на виході або активується (результат «так»), або лишається спокійним (результат «ні»).

Така модель мозку була аж занадто спрощеною, але разом з тим значимість прориву важко переоцінити. На той момент найпопулярнішою психологічною течією був психоаналіз — напівмістичне вчення про ід, его та оргон, поняття несумісні з науковим поглядом на світ. Спроба формалізувати найтаємничіший процес у Всесвіті — людське мислення не могла не вистрелити.

Після публікації першої статті «A logical calculus of the ideas immanent in nervous activity» роботою пари зацікавився Норберт Вінер, який зробив Пітса своєю правою рукою. Пізніше до них приєднався і сам фон Нейман. Без перебільшення можна сказати, що модель Піттса дозволила побудувати комп’ютер, яким ми його знаємо тепер.

Починаючи з певного етапу нейромережі відділилися від кібернетики. Моделювання людського мозку перестало бути самоціллю, до того ж нові результати від біологів показали, що мозок працює дещо складніше за модифікацію лінійної регресії.

Тим не менше, певні задачі навіть цим прийомам підкорялися на ура: базове розпізнавання зображень, математичне прогнозування. Навіть медицина отримала свою порцію інновацій: нейромережі примушували аналізувати кардіограми.

Стрімкий злет часто передує дуже болісному падінню. Так сталося і цього разу. Відомий і надзвичайно авторитетний у своїх колах математик та філософ Марвін Мінскі (сусід по кімнаті Піттса) у 1969 році видав книжку «Перцептрони». На відміну від широкої публіки, він розумів, чим саме займалися програмісти і спокійно, без емоцій, довів, що в даній інтерпретації так звані «нейронні» мережі мають дуже чіткі обмеження. Навіть оператор «XOR», базове поняття програмування, одношаровими моделями, які тоді використовувалися, описати неможливо.

Наклавшись на перші невдачі у промисловому використанні та відсутність нових проривів у лабораторіях, ця книжка стала гробарем нейромереж: відсутність грантів і, як наслідок, відтік спеціалістів поклали галузь у довгий кріогенний сон, з якого вона стрімко виринула тільки через півстоліття.

Друге пришестя, як водиться, стало ще сліпучішим за попереднє. За останні роки нейромережі ввірвалися практично у всі галузі комп’ютерних наук, і ситуація всюди виглядала однаково: десятиліття досліджень, тисячі експертів, мільйони сторінок талмудів доводили ефективність алгоритму до фантастичної цифри у 80%. А потім приходила нейромережа і без спеціальних знань, простим перебором даних показувала результат 90-95%. Так сталося з розпізнаванням зображень, машинним перекладом, генерацією і розумінням людського мовлення, різного роду прогнозуванням і фаховою аналітикою. Та що там, зараз взагалі важко назвати галузь, куди ще не пролізло всюдисуще «машинне навчання».

Нейромережі заввиграшки розкусили раніше неможливу задачу розпізнавання зображень: навчилися відрізняти кота від собаки — їм просто показали мільйон картинок і сказали, на якій зображено що. Всі характеристики «котячості», які не могли сформулювати сотні вчених за десятиріччя досліджень, мережа сформувала для себе сама.

Здивувавши весь світ, кілька років тому команда AlphaGo подолала одного з найсильніших гравців у Го. Ця гра, на відміну від шахів, математичному розв’язанню не підлягає — занадто багато варіантів розвитку подій.

Програмі математика і не знадобилася. Натомість, вона просто «прочитала» всі матчі між людьми, доступні в записі, а потім ще кілька мільйонів разів зіграла сама із собою. Найобразливішим для поваленого чемпіона стало те, що в навчанні програми навіть не брали участь відомі гросмейстери — їй пояснили тільки базові правила та критерій перемоги. Все інше — набір спроб і помилок.

Підхід виявився доста загальним. Зовсім недавно таким самим чином програма обіграла гравців людей у покер.

Зараз людство викидає в інтернет більше даних, ніж було створено за всю історію.

Що ж помінялося, запитаєте ви, порівняно з серединою двадцятого століття? І чому методи, визнані раніше повністю провальними, тепер запрацювали раптом так ефективно?

По-перше, покращилися самі методи. Навіть незважаючи на відсутність фінансування, фанатики в запилених лабораторіях виписували одну за одною складні формули, оптимізуючи швидкодію і формуючи методи позбавляння від шуму.

По-друге, звісно, залізо. Всім відомий приклад айфона, обчислювальна потужність якого перевищує сумарні ресурси машин, що відправили людину на Місяць. Як завжди, тригером прогресу стала індустрія розваг: сучасні системи машинного навчання працюють в основному на відеокартах, виробники яких сходили з розуму, намагаючись дати геймерам якомога реалістичнішу картинку.

Третім, і найголовнішим чинником, стали дані. Дитині, щоб вона зрозуміла, що таке «стіл», достатньо показати один-два приклади. Нейромережі добре вчаться на вибірках, що починаються з десятків тисяч.

Можна, звісно, покивати на недосконалість сучасних методів, але на захист бідного алгоритму варто сказати, що дитина, насправді, отримує набагато більше інформації про предмет. Вона бачить його з різних боків, може обнюхати, помацати і навіть деколи відгризти шматочок лаку, щоб отримати більше різноманітних характеристик. Мережу, натомість, ми вчимо на фотографіях — кількість каналів зменшена до одного, та ще й без просторової орієнтації. От і доводиться компенсувати якість кількістю.

Зараз людство викидає в інтернет більше даних, ніж було створено за всю історію. Розвиток цифрової фотографії призвів до того, що напевне жоден куточок планети не лишився незадокументованим.

З іншого боку, радикально зросла і кількість текстів, написаних людством. Тепер значна частина буденного спілкування між людьми лежить в мережі, та й художніх текстів останнім часом стало на порядки більше. Здавалося б, ніщо не заважає навчити нейромережу на них і вперед — до нових літературних вершин.

Насправді, не все тут так просто. Давайте розберемося чому.

В пошуках нейропегаса

Незважаючи на свою потужність, мережі не можуть поки і близько зрівнятися з людиною в деяких сферах. Створення осмислених текстів — у їхньому числі. Причин цьому багато, але найважливіших — дві.

Перша — ті самі сумнозвісні правила. Люди не вчаться виключно на прикладах. Їм розповідають вчителі, дають інформацію книжки, в людей є фізичні та хімічні формули, синтаксичні закони, словники та енциклопедії. Натомість, нейромережу, навчену на живих прикладах, підкоригувати вручну вже неможливо — хіба що згенерувати на основі «правил» додаткові приклади, але навіть у цьому випадку є велика ймовірність перенавчання і, як наслідок, — повної непридатності системи для реального життя.

(Так само, до речі, нема ніякої змоги перевести правила, знайдені машиною, назад в людську мову. Тому перемога над Лі Седолем навряд чи навчить чогось нового гравців із м’яса та кісток: чому мережа зробила той чи інший хід залишиться для нас таємницею).

Для розв’язання в лоб задачі такої складності, як генерування прозового тексту, навіть усіх літер, коли-небудь написаних людством, поки що замало.

Друга і основна відмінність між нашим мозком і бітами в пам’яті комп’ютера — початкові дані. Людина не отримує всі свої знання з навколишнього світу. Більшість інформації йде у вигляді «заводської прошивки» — інстинктів, емоційних реакцій, базових правил поведінки.

Цими даними людина завдячує мільйонам поколінь предків, аж до бактерій, що своїми постійними спробами, перемогами і невдачами, формували генетичний код — напевно, найщільніший носій інформації з усіх нам відомих. Ми не те, що не можемо вживити ці дані в нейромережу, ми й усвідомити їх не здатні.

Звісно ж, обидві ці проблеми вирішуються улюбленим методом нейромереж: «Нам треба більше, більше, БІЛЬШЕ ДАНИХ!», але виходить так, що для розв’язання в лоб задачі такої складності, як генерування прозового тексту, навіть усіх літер, коли-небудь написаних людством, поки що замало.

Справа у тому, що текст — не герметичний набір даних, а радше відображення зовнішнього світу, і щоб осягнути «зв’язки» у тексті потрібно осягнути «зв’язки» самого світу, по суті, побудувати Універсальну Модель, яка буде знати про світ практично усе, що знає середня людина. Тобто знову ж таки побудувати Сильний Штучний Інтелект, до чого на даний момент ще дуже і дуже далеко.

З іншого боку, що заважає програмам просто згенерувати набір символів, не заморочуючись над їхнім сенсом? Та нічого не заважає, це вони останнім часом і роблять. Давайте розберемось як саме.

У просунутого читача вже давно повинно було виникнути питання. Нейромережі, мовляв, у більшості випадків будуються для класифікації та прогнозування. Себто в нас є багато даних на вході і обмежений (часто скалярний) результат на виході.

Ми згодовуємо мережі сто тисяч квартир з набором параметрів і ціну кожної з них. Потім натравлюємо на ще одну позицію, ціни якої ми не знаємо. Результат — одне число, прогнозована вартість квартири.

Ми показуємо алгоритму мільйон картинок котів і мільйон картинок собак, вказуючи, хто з них хто. Потім показуємо нову картинку, і алгоритм повинен відповісти, кіт на ній зображений чи собака.

Як такий механізм в принципі може використовуватися для генерації хоч чогось?

Перший метод — обернені обчислення. Нейромережа по своїй суті — система лінійних рівнянь, а, отже, може спокійно бути вивернутою в протилежний бік. Ми не ставимо задачу «що на цій картинці?». Натомість ми вказуємо готовий результат (наприклад, «кіт») і питаємо: «Як по-твоєму він повинен виглядати?».

Саме так вчинили розробники Гугла у 2015 році. Їхні результати, найбільше схожі до творів сюрреалістів, хоч і продемонстрували наочно роботу нейромережі, на якусь естетичну цінність претендують зі скрипом. До того ж, один раз навчена нейромережа з таким підходом може дати тільки один, детермінований результат для кожного набору вхідних даних — обмеження не з приємних. Чи підходить такий спосіб для генерування тексту? Чесно кажучи, навряд.

Взагалі, обробка тексту в порівнянні з обробкою зображень має кілька доста неприємних аспектів. По-перше, картинки можна легко стискати. Внаслідок особливостей людського зору, призначених для розглядання далеких предметів, навіть на іконках 16×16 ми здатні розгледіти якісь деталі.

Для тексту стискання без втрат — абсолютно нетривіальна задача. Не можна просто об’єднати сусідні символи, як ми робимо з пікселями. Натомість треба шукати обхідні шляхи — аналізувати частини мови, щоб викинути епітети, будувати модель події, щоб об’єднати кілька речень в одне. Словом, вся «сліпота» нейромереж стосовно бізнес-логіки відразу кудись зникає.

По-друге, текст набагато чутливіший до шуму. Якщо для картинки кілька не надто яскравих пікселів не на своїх місцях погоди не зроблять, то викпа%дкові си$мвожли, розкидані по тексту, абсолютно неприйнятні — читати такі опуси надзвичайно важко, а часом від заміни всього однієї літери і взагалі міняється увесь секс.

Другий спосіб генерування нового побудований на вмінні нейромережі прогнозувати. Нехай текст, припускають адепти цього методу, є певним часовим рядом. І кожна наступна літера якимось чином залежить від попередніх. Тепер лишається тільки навчити систему на заданих «взаємозалежностях» і примусити її прогнозувати, які символи повинні бути в тексті наступними.

Незважаючи на тривіальність цього підходу, результати, отримані на його основі, вражають. Перша програма-генератор, описана Андреєм Карпаті, навмисне оперує виключно символами на відміну від аналогів, що намагалися знаходити взаємозв’язки між словами. І навіть в такій постановці вдалося отримати хоч і безглуздий, але читабельний і навіть стилістично близький до оригіналу шматок тексту.

Генерації піддався Шекспір, спічі Обами, рекламні заголовки і навіть тексти виступів на конференції TED.

Цікаві висновки можна зробити з генерації карт для гри Хартстоун. На перших порах система видає суцільну маячню, але вже після кількох ітерацій деякі з карт починають виглядати осмислено — їх вже спокійно можна включати у гру.

Потужності сучасних алгоритмів вистачає навіть для поезії (також китайської і хокку) або текстів пісень, але успіх там, чесно кажучи, досягається в основному за рахунок ручного вибору дослідником пристойних варіантів з гігантської купи маячні. Хороший прозовий текст таким чином поки згенерувати не вийде.

По-перше, проблема в об’ємі. Як ми вже казали, стискати текст, а особливо художній, — доста важко. А набір взаємозв’язків довгого прозового тексту поки що перевищує обчислювальні можливості навіть найпотужніших кластерів.

Друга проблема — навчання із вчителем. Більшість даних, що їх зараз використовують для машинного навчання, були колись розмічені людьми вручну. Існує навіть спеціальний ресурс «Механічний турок», де люди за невелику плату допомагають вченим всього світу навчати свої алгоритми.

Для викладання на цей сайт задачі повинні займати максимум одну-дві секунди ефективного часу для пересічної людини: «Чи є на картинці обличчя?», «В який бік повертає дорога?», «Яке слово говорить голос на записі?». За рахунок простоти, можна отримати дуже велику базу даних відносно за короткий час.

Примусити користувачів читати оповідання, згенеровані роботами, важко. По-перше, текст, складений наполовину з тарабарщини, а наполовину з геніальних речень, все одно лишається маячнею. По-друге, навіть якщо роботи в певний момент навчаться писати щось осмислене, другий варіант того самого тексту не буде мати того самого ефекту, як перший, — читати одне і те саме нудно.

Отже, доведеться наповнювати базу витворами людей. Але і тут постає питання: які мають бути критерії оцінки? Як ми вже згадували раніше, машинне навчання конвертує великі об’єми даних у невеличкий результат. Який результат повинен бути для прози?

Перше, і найлогічніше припущення — написане повинне мати якийсь сенс. Себто текст, хай навіть згенерований за допомогою машинного навчання, треба буде спочатку перетворити у послідовність подій і визначити, чи не суперечать вони одна одній.

Лишилося тільки посадити мільйон людей за машини і примусити їх читати тексти, описуючи після цього свої емоції.

Розуміння тексту, на відміну від генерації, просунулося набагато далі. IBM Watson недавно переміг у вікторині, Гугл побудував базу даних сенсів слів різних мов. На ринок поступово виходять аналізатори тексту для відтворення подій на основі тисяч статей в інтернет-виданнях.

Надзвичайно важливою є задача розуміння людських команд — інтернет речей поступово перекочовує з фантастичних серіалів у реальний світ, і ваше спілкування з мікрохвильовкою через якийсь рік-два перетвориться із перших ознак божевілля на практичну необхідність. Людей важко перевчати на мову інструкцій — роботи повинні просто розуміти, що від них хоче хазяїн.

Наслідки цієї революції можуть зіграти пристойну роль у генерації художніх текстів — програма зможе проганяти свої «творіння» через базові фільтри і абсолютної маячні на виході вже не буде. Та цього, безумновно, мало.

Адже художня література — це більше, ніж просто опис подій. Поезія — взагалі в більшості своїй несюжетна. Спроби розібратися, що насправді означає та чи інша метафора — робота не з легких навіть для дослідників із плоті та крові.

Проте, одне правило лишається практично незмінним: будь-яке мистецтво існує для того, щоб викликати у нас емоції. Сум, радість, злість, страх — читач повинен співпереживати героям. Відповідно, значення слів можна і не знати, достатньо просто провести паралелі між реченнями і реакцією на них.

Лишилося тільки посадити мільйон людей за машини і примусити їх читати тексти, описуючи після цього свої емоції. Хоча ні, враховуючи масштабність задачі, мільйона буде мало — треба як мінімум мільярд. Навряд чи «Механічний турок» потягне такі об’єми — знадобиться нова система, повністю заточена під такі цілі.

Ще одна проблема — самі тексти. Можна починати з якихось базових шматочків — старих анекдотів, газетних вирізок, але нашому мільярду «піддослідних» таке швидко набридне. Бажано, щоб тексти вони генерували самі, хоча б по кілька десятків кожен. Об’єм, насправді, значення не має, головне кількість. Чим більше, тим краще.

Тепер основне — як заплатити мільярду людей? Де взяти гроші на таке масштабне дослідження? Чи може попросити їх робити це безкоштовно? Заради блага науки, наприклад. Або для власної розваги. Тим, хто ще не здогадався, до чого я веду, оці іконки вам нічого не нагадують?

Отже, основною проблемою сьогодення є не генерація, а саме аналіз текстів. Як тільки машина навчиться розуміти і навіть у якомусь сенсі «співпереживати» творінням людей, вирізняючи геніальні твори з-поміж гігабайтів маячні та графомані, проблема генерації вже не стоятиме.

Та що там, видавці і зараз готові заплатити мільйони за програму, що буде вибирати шедеври з-поміж мільйона опусів, що додаються на самвидав Амазону кожного року, при чому бажано швидше і ефективніше за бідних студентів-філологів, котрі займаються цим зараз.

Тобто розвиток індустрії буде рухатися з двох боків: нейромережі генерування будуть удосконалюватися, щоб уловлювати більше інформації з даних (RNN, LSTM), а нейромережі розпізнавання будуть наближатися до справжнього розуміння тексту, і як наслідок — справжнього розуміння навколишнього світу. На рівні людини, а радше сильно перевершуючи нас самих.

***

Наприкінці хочу сказати одну, дуже важливу річ. Більшість результатів, описаних в цій статті — надзвичайно нові. Мова йде навіть не про десятиліття: згадана стаття Андрея Карпаті вийшла в травні 2015 року!

Прямо зараз ми знаходимося на черговому витку вибухового росту: зростає кількість вчених, зайнятих в індустрії, корпорації викидають мільярди доларів, щоб не опинитися позаду в перегонах Штучного Інтелекту. Технології теж не стоять на місці: хардварні компанії одна за одною випускають залізо, призначене в першу чергу для машинного навчання.

І тому, хоч на даний момент не існує жодної системи, здатної на створення хоч трохи осмисленої прози, шанси на те, що подібне з’явиться найближчим часом — дуже і дуже високі.

Так 11 вересня 1933 року на щорічному з’їзді Британської Академії Наук найкращий фізик-ядерщик того часу Ернест Резерфорд безапеляційно заявив, що всі, хто займається видобуванням енергії з трансформації атомів, — шарлатани. І всі їхні дослідження — не більше, ніж черговий виток лженауки.

Вже наступного ранку молодий дослідник Лео Сілард описав принципи ланцюгової реакції, з яких через кілька років народиться перший ядерний реактор.

Похожие статьи:
Роман Тишкун — аналітик геоінформаційних систем з Рівного. У лютому 2022-го він долучився до війська, був аеророзвідником, а тепер...
Меня зовут Александр Черненко, и я 5 лет занимаюсь Front-end-разработкой. Я Technical Lead в компании Nullgravity, и мне удалось вырастить уже...
За 2021–2023 роки ІТ-спеціалісти сплатили до бюджету не менше ніж 61,1 мільярда гривень податків. Такі дані DOU отримав у Державній...
У Вашей профессии нет перспектив, и Вы хотите изменить свою жизнь, перейдя в IT-сферу? Тогда курс по тестированию ПО, как...
Рівно рік тому росія розпочала повномасштабну війну проти України. У той день, 24 лютого 2022 року, українці вирішили...
Яндекс.Метрика