Эдуард Сероусов – Коллегия (страница 8)
– Именно, – сказала Лена. – Именно это я сейчас и пытаюсь понять.
Она налила себе кофе. Четвёртая чашка за утро, часы показывали 11:17, и она здесь уже с шести. Кофе был слишком горьким – автоматическая кофемашина в аналитическом центре была настроена на крепость «сделай меня человеком», что означало примерно вдвое больше кофе на порцию, чем где-либо ещё в здании. Лена несколько раз думала перенастроить – и не перенастраивала, потому что иногда именно это и нужно.
Она открыла новый терминал. Написала первый запрос.
Стандартные подходы не просто не работали – они не работали демонстративно, с такой последовательностью, которая сама по себе говорила что-то.
Попытка первая: прочитать данные как текст. Unicode, ASCII, UTF-8, UTF-16, все основные кодировки. Результат: нечитаемая последовательность символов без статистики естественного языка. Ни частотного распределения, характерного для языков с алфавитом, ни слоговой структуры, ни чего-либо, похожего на знаки препинания.
Попытка вторая: прочитать как бинарные данные с поиском паттернов. Скользящее окно, автокорреляция, фурье-анализ частот. Результат: паттерны есть, но они не соответствуют ни одному известному формату – ни аудио, ни видео, ни изображениям, ни векторным данным.
Попытка третья: прочитать как базу данных. Искать заголовки, таблицы, индексы, ключи. Результат: ничего. Ни намёка на реляционную структуру или даже структуру документа.
Попытка четвёртая: прочитать как архив с неизвестной структурой – поиск вложенных форматов, рекурсивного разбора, любых повторяющихся блоков. Результат: повторения есть, но они нерегулярные – слишком короткие паузы между ними, слишком разные длины блоков.
К вечеру первого дня Лена сидела перед экраном с тринадцатью открытыми терминальными сессиями и смотрела на числа, которые отказывались становиться информацией.
– Нет, подожди, – сказала она вслух. Никто не отреагировал – за восемь часов работы рядом с Леной Кросс люди быстро учились, что «нет, подожди» не является обращением к кому-либо конкретному. Это была пунктуация. Разделитель между мыслями. – Нет, подожди. Я ищу структуру, которую ожидаю найти. Это неправильно.
Она встала. Прошлась вдоль стены с проекционными экранами. Остановилась перед визуализацией облака точек.
Сорок терабайт. Если распечатать это как текст – стопка бумаги высотой в несколько километров. Если воспроизвести как аудио на стандартной частоте – около ста тридцати лет непрерывного воспроизведения. Сорок терабайт – это очень много, если это просто данные. Это огромная библиотека, если там есть смысл.
Коллегия наблюдала за человечеством двести лет.
Двести лет наблюдений. Если они записывали – а зонды явно что-то записывали – то сорок терабайт – это, возможно, не весь архив. Возможно, это выборка. Резюме. Отчёт.
Лена вернулась к терминалу.
– Они прислали нам не данные наблюдений, – сказала она. Фред, кажется, уже не слушал – он работал с чем-то своим. Кипра Малик напротив оторвала взгляд от экрана. – Они прислали нам – нет, подожди. Они прислали нам информацию в том формате, в котором они её хранят. Не адаптированную под нас. Просто – свой архив. Как если бы кто-то выгрузил папку с файлами и не подумал, что у получателя другая операционная система.
– Это значит, что ключа нет? – спросила Кипра.
– Ключа нет в нашем понимании ключа. Ключ – это понять, как работает их операционная система.
Следующие трое суток Лена практически не спала.
Это была не героическая бессонница – просто мозг не хотел отключаться. Она ложилась в два ночи, лежала час, вставала, шла обратно к терминалу. В шесть утра снова ложилась. В восемь возвращалась. Ела нерегулярно – сэндвичи из автомата в коридоре, иногда что-то горячее, что приносили другие аналитики, которые уходили домой и возвращались утром со свежими мозгами, пока у Лены мозги не были свежими уже четвёртый день.
Но прогресс был.
Медленный, косой, боком – не прямо к ответу, а вокруг него. Она начала смотреть не на содержимое фрагментов, а на отношения между ними. Два фрагмента, которые встречались в данных поблизости друг от друга, были как-то связаны. Это было гипотезой – но гипотеза держалась. Некоторые фрагменты встречались всегда вместе, в определённом порядке. Некоторые – никогда рядом. Некоторые – окружены одними и теми же соседями независимо от позиции в общем массиве.
Это была не грамматика. Это было что-то, что выполняло функцию грамматики, не будучи ею.
– Нет, подожди, – сказала Лена на четвёртый день, в 03:14 по женевскому времени, когда в центре оставались только она и дежурный техник, дремавший в углу. – Нет, подожди. Это не семантика. Это не то, что элементы значат. Это то, как они соотносятся. Они кодируют не значения – они кодируют отношения. Смысл – это не в элементах. Смысл – это в структуре связей между элементами.
Она напечатала это. Потом напечатала дальше:
Она смотрела на это минуту.
Потом засмеялась – коротко, нервно, одна в пустом центре в три часа ночи.
Это было элегантно. Это было безумно элегантно и совершенно непригодно для стандартных алгоритмов обработки информации, которые все без исключения требуют атомарных единиц – чего-то, что нельзя разделить дальше, на чём стоит всё остальное. Символ. Бит. Квант информации. Без этого основания стандартные алгоритмы не умеют работать.
Значит, нужен нестандартный алгоритм.
На пятый день Лена начала строить «Хамелеон».
Не потому что у неё было время – времени не было. Потому что другого пути не было.
«Хамелеон» – это название она придумала на ходу, когда объясняла концепцию Кипре. Нейросеть, которая не пытается понять значение фрагментов – она пытается понять их поведение. Как фрагмент соотносится с соседями. Как он изменяет окружение. Как наличие одного фрагмента предсказывает присутствие других. Не «что это значит», а «как это ведёт себя».
Это была другая задача, чем декодирование. Это была задача предсказания паттернов.
– Ты делаешь языковую модель, – сказал Фред, когда она объяснила архитектуру.
– Нет. Языковая модель учится предсказывать следующий токен в последовательности. Это – линейная задача. «Хамелеон» учится предсказывать поведение фрагмента в многомерном пространстве отношений. Это – задача на топологию, не на последовательность.
– Звучит как граф-нейросеть.
– Похоже. Но у граф-нейросетей есть вершины – фиксированные узлы с присвоенными признаками. У меня вершины сами являются рёбрами. Это – нет, подожди. Это другое. Это как если бы сеть состояла только из связей, без узлов.
Фред смотрел на неё.
– Это возможно?
– Спрошу у «Хамелеона».
Она работала над архитектурой шесть часов подряд, не вставая. Ела за клавиатурой. Кофе – на автопилоте, рука находила стакан сама. К концу шестого часа у неё была первая версия – грубая, неэффективная, требовавшая в двенадцать раз больше вычислительных ресурсов, чем было разумно. Она запустила на тестовой выборке.
Сеть думала восемь часов.
Лена спала четыре из них.
Результаты первого прогона были как первая фотография с плохой камеры: расплывчато, зернисто, непонятно что именно на фотографии – но очевидно, что там что-то есть.
«Хамелеон» разметил около восьми процентов фрагментов в тестовой выборке как «функционально эквивалентные» – то есть ведущие себя схожим образом в своём окружении. Лена назвала эти группы «семантическими классами» с большой долей условности. Это были не слова. Не понятия. Просто – паттерны поведения.
Некоторые классы встречались часто и образовывали устойчивые конфигурации. Некоторые – редко, только в определённом контексте. Некоторые, судя по позиции в структуре, выполняли функцию, аналогичную пунктуации – разделители, маркеры границ, переходы.
Это было мало. Это было ничтожно мало по сравнению с сорока терабайтами.
Но это был первый раз, когда Лена смотрела на данные и видела в них хоть что-то, похожее на организацию.
– Нет, подожди, – сказала она, глядя на распределение частот семантических классов. – Нет, подожди. Вот эта группа – видишь? Высокая частота, устойчивые связи, широкое распространение по всему массиву. Это что-то вроде… нет, не слов. Это – нет. Это. Это как – категории. Базовые категории. Что-то вроде существительных, но не существительных. Что-то, что обозначает – объект. Сущность. То, что существует.
Кипра подошла, посмотрела через плечо.
– И что это даёт?
– Это даёт точку отсчёта. – Лена начала набирать быстро. – Если я знаю, что эти паттерны обозначают «сущность» – я могу искать паттерны, которые описывают сущности. Атрибуты, связи, действия. От одной категории – к структуре вокруг неё.
– Это займёт…
– Долго. Да. Но это первая нить.
На седьмой день запах кофе перестал помогать.
Это был объективный факт: кофеиновая толерантность достигла той точки, когда рецепторы просто не реагировали. Лена продолжала пить кофе по инерции – вкус давал что-то вроде якоря к реальности. Она заметила, что перестала замечать голод примерно на шестой день – ела, когда кто-то ставил еду рядом, не ела, когда не ставили. На седьмой день Кипра специально положила перед ней сэндвич и сказала: «Ешь», – и Лена поела, немного удивившись самому факту.