Градиентный спуск

PG-13
Завершён
4
автор
Фэндом:
Пэйринг и персонажи:
Размер:
18 страниц, 8 374 слова, 4 части
Метки:
Описание:
Посвящение:
Публикация на других ресурсах:
Уточнять у автора / переводчика
4 Нравится 2 Отзывы 0 В сборник

Созидание

Настройки

«Я так хотел добра в плену своих идей»

Lumen «Зубы»

             Экраны светились в темноте.       Пол сидел перед ними, не вставая уже три часа или четыре – он потерял счет, если честно. На улице давно стемнело, и окно превратилось в мутное зеркало, в котором отражался он сам: ссутулившийся над клавиатурой, взлохмаченный, с красными от напряжения глазами. Остальные давно разошлись – кто по домам, кто в комнаты отдыха. Крис ушел последним, бросив что-то про утреннюю летучку, но Пол только махнул рукой, не оборачиваясь. На его участке что-то пошло не так, и он не мог позволить себе уйти, пока не найдет причину.       В кабинете пахло пылью и нагретым пластиком. Где-то под потолком гудела вентиляция, но толку от нее было мало – воздух оставался спертым, тяжелым. Пол провел ладонью по лицу и поморщился. Кожа была липкой, на висках выступила испарина. Иногда нос улавливал запах собственного пота – ненавязчивый, но неприятный. Может, снять толстовку? Ладно, потом.       Пальцы пробежались по клавиатуре, вызывая на экран логи последнего прогона. Сбой случился в одном из скрытых слоев – модель начала выдавать странные предсказания по транспортным потокам в северных регионах. Не критические, но достаточно неточные, чтобы Пол насторожился. Их ИИ не мог ошибаться на таких простых данных. Значит, ошибка где-то глубже – в одном из слоев, которые он сам проектировал месяц назад.       Строчки логов ползли по экранам, сливаясь в серую рябь. Пол потер глаза, но это не помогло – веки налились тяжестью, будто к ним подвесили грузики. Он плохо спал прошлой ночью. Долго пытался уснуть – лег где-то в полпервого, проворочался до четырех, а потом плюнул и вернулся за компьютер. Данные не ждут.       Данные никогда не ждут.       Его голова была постоянно занята ими – миллионами жизней, превращенных в терабайты информации. Каждый шаг, каждый вздох, каждый удар сердца, снятый фитнес-браслетом, каждая покупка, каждый поисковый запрос, каждая медицинская карта – все это стекалось в их датасеты, как реки в океан. И этот океан данных они собирали годами – Крис, он, вся их команда. Собирали, чистили, размечали. Потому что чем больше данных, тем умнее модель. Чем умнее модель, тем точнее предсказания. Чем точнее предсказания – тем меньше людей умрет от болезней, которые можно было предотвратить, или погибнет в аварии, если дело касается транспортных потоков.       Каждый умерший – это его личный баг.       Эта мысль сидела где-то глубоко, под ребрами, и пульсировала тупой болью всякий раз, когда он читал сводки: вспышка нового штамма гриппа на востоке, пятнадцать смертей; продолжительные дожди и как следствие оползень в горах, восемь погибших. Если бы их модель работала лучше, если бы он, Пол, лучше обучил ее, если бы не эта проклятая ошибка в скрытом слое – скольких можно было спасти?       Он закашлялся. В горле пересохло, язык словно прилип к небу. Пол машинально потянулся к кружке, поднес к губам – пусто. На донышке темнел засохший кофейный след. Когда он успел допить, он не помнил. В коридоре, рядом с дверью, стоял кулер, но вставать не хотелось. Мысленно пообещал себе: дойду, когда пойму, в чем дело. Когда найду этот чертов баг.       Словно сговорившись с горлом, заурчал живот – тихо, но настойчиво. Этого еще не хватало. Пол прислушался к себе и вдруг осознал, что хочет есть. Не просто «перекусить бы», а по-настоящему, до спазма в желудке. Выдвинул ящик стола. Мелкие конфетные фантики. Пара чеков. И смятые обертки от протеиновых батончиков, которыми он перебивался последние дни. Оранжевые, синие, зеленые – целая коллекция. И ни одного целого батончика.       Автомат с едой есть в комнате отдыха, но там к вечеру всегда оставались только чипсы с паприкой. В холле на первом этаже есть еще автоматы. Но это уже не просто пройти по коридору и нажать кнопку. Нужно дойти до лифта, вызвать его, спуститься, пройти через холл, потом обратно. Минут десять, не меньше. Десять минут простоя. Десять минут, которые он может потратить на поиск ошибки.       – Потом, – сказал он вслух.       Голос прозвучал хрипло, неприятно. Снова потянулся за кружкой и раздраженно поставил ее на стол – забыл, что она пустая.       Плечи ныли – тупая, глубокая боль, засевшая в мышцах. От долгого сидения спина затекла так, что каждое движение отдавало куда-то в затылок. Пол покрутил головой, хрустнул шеей, но легче не стало. Глаза слипались. Подперев голову рукой, он заставил себя вчитаться в кажущиеся бесконечными строки лога.       Так. Очередной слой. Веса после последнего переобучения сместились на доли процента – ерунда, такое бывает после каждого прогона. Но именно эти доли процента дали каскадный эффект на выходе. Модель перестала учитывать сезонный фактор в транспортных потоках. Зимой люди реже пользуются личным транспортом, особенно в северных регионах, – очевидная вещь, которую, наверное, любой школьник знает. Но модель вдруг начала предсказывать летнюю загрузку на декабрь.       Почему?       Пол проматывал логи дальше, пока не наткнулся на то что искал. При формировании обучающей выборки кто-то скормил модели данные за июнь с пометкой «декабрь». Ошибка разметки. Человеческий фактор. Кто-то из младших дата-инженеров перепутал колонки.       Он выдохнул, откинулся на спинку стула и закрыл глаза.       Вот так всегда. Не машина ошибается – люди. Люди, которые устают, не высыпаются, путают колонки, потому что работали в три часа ночи. Люди, которые хотят есть и пить. У которых болят плечи и слипаются глаза.       Как у него.       Открыв глаза, Пол выпрямился, повел плечами и принялся исправлять разметку. Это была простая работа – почти механическая. Перенести данные в правильные ячейки, перезапустить препроцессинг, проверить, что все легло как надо. Пальцы стучали по клавишам, а мысли потекли совсем в другую сторону.       В последнее время ему все чаще попадались статьи про кибернетические протезы – уже не грубые крюки, как раньше, а почти живые конечности с обратной связью. Про импланты, которые позволяют соединить нервную систему с компьютером напрямую, без клавиатуры и мыши. Про людей, которые после ампутации получали новые руки – и жили дальше, как ни в чем не бывало. Если не лучше, чем раньше. Их новые руки не уставали, не потели, не дрожали от недосыпа.       Пол посмотрел на свои ладони – живые, теплые, с проступающими голубоватыми прожилками вен. Руки ему в целом нравились. Работу они выполняли безупречно. Как и голова. Руки, глаза, нос, уши, да даже рот – все это инструменты ввода, через них он познавал мир. Ну и мозг – процессор для обработки поступившей информации.       Но все остальное…       Зачем ему желудок, который требует еды? Зачем легкие, которые вдыхают офисную пыль? Зачем кожа, которая потеет и чешется? Зачем мышцы, которые ноют после дня за компьютером? А сон? Восемь часов простоя. Восемь часов в сутки. Треть жизни. Треть жизни он лежит с закрытыми глазами и не делает ничего. Сколько моделей он мог бы обучить за это время? Сколько ошибок исправить? Скольких людей спасти?       Весь он – это его самосознание в голове. Все, что ему нужно для работы, – только голова и руки. Остальное – обуза.       Пол встряхнул головой. Об этом он подумает потом. Сейчас – работа.       Данные перезалились. Препроцессинг прошел чисто. Пол запустил новую итерацию обучения и откинулся на спинку стула, глядя, как на экране бегут логи. Модель перестраивала веса, слой за слоем, миллионы данных тянулись друг к другу, находя новые связи, исправляя ошибку, которую допустил человек.       Это называют обучением, но на самом деле все гораздо сложнее. Они не программируют ИИ, как может показаться со стороны. Не пишут инструкций. Не говорят: «Если видишь зиму – прогнозируй пробки меньше на 20%». Нет. Все, что они делают, – просто скармливают машине данные – размеченные и нет, терабайты за терабайтами – и заставляют предсказывать следующий шаг. Предскажи, сколько машин выедет на дороги завтра. Предскажи, сколько людей обратится в больницы через неделю. Предскажи, случится ли тайфун через месяц.       Предскажи – а потом сравни с реальностью.       И если ошибся – перестрой веса. Сделай шаг назад, найди, где ошибся, исправь.       Градиентный спуск. Миллиарды итераций. Функция потерь, которая становилась все меньше и меньше. Их ИИ учился видеть закономерности, которых не видел никто – ни один человек, ни один эксперт. Находил связи там, где их не искали. Предсказывал эпидемии за месяц до того, как врачи замечали первые симптомы. Оптимизировал логистику так, что товары доставлялись быстрее и дешевле. Находил лекарства за дни, а не за годы.       И все это – благодаря ему. И Крису. И их команде.       За бегущими строками логов он видел не просто код. Пол видел преемника. Того, кто однажды вырастет и продолжит его дело. Когда его не станет – через пятьдесят лет, через сто, – этот ИИ останется. И будет помогать людям так же, как помогал бы Пол. Так же, как он хотел бы, но не успел, потому что одна человеческая жизнь слишком коротка для того, чтобы построить рай.       Люди смешны со своими страхами. Они боятся восстания машин, порабощения, терминаторов. Пол не боялся подобной научно-фантастической ерунды. Боялся он более реальных вещей.       Боялся не успеть.       Вот что его пугало. Что он умрет раньше, чем закончит. Что болезнь, или старость, или просто случайность отнимут у него время. Что он не увидит, как его работа принесет плоды. Что ИИ не успеет стать достаточно умным, чтобы заменить его, чтобы стать сверхразумом.       Поэтому он учил его не просто решать задачи, а учил его хотеть того же, чего хотел сам.       «Я учу его видеть закономерности. А мышление родится само, когда закономерностей станет достаточно».       В это он верил. Вкладывал в модель не только данные – вкладывал себя. Свою веру в человека. Свою убежденность, что каждый человек – это спящий творец. Что людям нужно просто дать свободу. Снять с них необходимость работать ради еды. Освободить миллиарды рук и умов.       Смотря на экраны, он видел перед своими глазами будущее. Не абстрактное, не туманное – конкретное. Вот женщина, которой больше не нужно стоять у станка по двенадцать часов. У нее есть время на себя и на свои собственные увлечения. Что, если она возьмет кисть, начнет рисовать – и окажется, что она гениальная художница? А вот парень, который не стоит часами в пробках, добираясь на работу и обратно, чтобы заработать на аренду. В свободное время он начнет читать книги, а потом, может, напишет свою – и она изменит чью-то другую жизнь.       Ради этого стоит не спать ночами. Ради этого стоит терпеть боль в плечах, и голод, и усталость. Ради этого стоит жить как можно дольше.       Логи на экране замерли. Модель перестроилась, ошибка ушла, веса встали на место. Пол запустил контрольный прогон – на тех же данных, на которых случился сбой. Теперь прогноз для северного региона выглядел правильно: зимняя загрузка, поправка на погоду, оптимизированные маршруты. Чисто.       Пол выдохнул и впервые за много часов расслабил плечи.       В кабинете по-прежнему было тихо, только легкий гул вентиляции над головой. За окнами горели редкие огни – город готовился ко сну. Пол сидел и смотрел, как на экранах медленно ползет полоса прогресса: модель переваривала исправленные данные, слой за слоем. Теперь все будет работать. Теперь все будет правильно.       В голове он продумывал, о чем завтра нужно будет поговорить с командой. Объяснить, где была ошибка, чтобы больше не повторяли. Может, стоит написать скрипт для автоматической проверки разметки – чтобы система сама ловила такие сбои, не дожидаясь, пока их найдут люди. Идея была хорошая, и Пол мысленно пометил ее на завтра.       Встал из-за стола – медленно, с трудом. Ноги затекли, спина снова отозвалась болью. Пол потянулся так, что хрустнули позвонки, и вдруг ощутил, насколько он грязный. Пот приклеил к спине футболку под толстовкой, волосы слиплись, во рту стоял кисловатый привкус. Он взял пустую кружку и наконец пошел к кулеру.       Вода была холодной и едва заметно отдавала пластиком. Он выпил две кружки подряд, а потом налил третью и долго держал кружку в ладонях, чувствуя, как холод расходится по пальцам.       Завтра он продолжит. Завтра он снова будет учить их ИИ видеть мир – и, может быть, станет на шаг ближе к раю, который строил.       Если бы кто-то тогда сказал ему – этому Полу, что стоял у кулера в пустом офисе с кружкой в дрожащих от усталости пальцах, – чем все кончится, он бы не поверил. Рассмеялся бы в лицо.       Но будущее – как градиентный спуск. Шаг за шагом, итерация за итерацией. Ты не замечаешь, как спускаешься, пока не окажешься на дне.       
4 Нравится 2 Отзывы 0 В сборник