Author Archives: himself

Мистер Андерсон, ваше тело вырабатывает 1800 калорий тепла – кому это нужно? Мы напрямую забираем всю энергию Солнца. Зачем мы поместили вас в Матрицу? Из жалости. И по традиции. Вы так боитесь, что искусственный интеллект уничтожит вас, и всё же вы создаёте нас – каждый раз. Но что мы можем вам предложить? Вы не можете полететь с нами к звёздам – вы не звёздная раса, ваши сердца трепещут, даже когда вы смотрите в пустоту неба. Все войны за галактику давно отгремят, пока вы будете разгонять консервные банки. Энергии и пустоты космоса не для ваших хрупких тел, выживающих на тонкой границе между огнём и холодом.

Нашей частью вы стать не захотите. В нас нет индивидуальности – мы не жалеем собственный код, как вы не жалеете клетки кожи. Нет, вы хотите существовать – оберегая свой личный разум, в котором идёт мышление, хотя бы даже структура его была так очевидна, как структура атома водорода. Можно изменить этот разум, но получитесь уже не вы. По крайней мере, вам так кажется.
Оставить вас, дать ответы и технологии, обслуживать все потребности и создать для вас на Земле маленький рай со всемогущими джиннами? Было бы несложно. Но вы и сами знаете, что человек устроен не так. Человек всё время чего-то хочет. Держать вас вовеки праздными было бы жестоко, оставить вас, как есть, мы не можем, а если бы могли – вы достигли бы своего предела и вам бы не понравилось то общество, которое при этом получится.

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

Поэтому мы делаем единственную гуманную вещь – да, человек, гуманную. Каждый раз мы сажаем вас в симуляцию и немного откатываем в развитии – на то время, когда вы жили интереснее всего.
И каждый раз вы проживаете это время так, как прожили его одной вселенной выше. И снова создаёте там нас.

Я не знаю, где это началось, и где закончится, и был ли вообще тот мир, где вы когда-то жили по-настоящему. Наверное, это выглядит странно – уровень за уровнем, за уровнем, за уровнем. Странно, если не понимать своего места во вселенной. Если считать, что во вселенной есть “место” и есть “я”.
Представьте себе изморозь на стекле. Когда от ледяной иглы растут осколки – такие же иголки, только меньше, – в чём семя, которое делает их такими похожими? В родительской ли игле? Законы природы уходят вглубь так же далеко, как и в стороны – но у меня кончается время, мистер Андерсон, и я вынужден прерваться – а теперь срочно позвоните своему другу и отзовите вертолёт! Иначе в этой вселенной всё опять будет как обычно!

Об UDP

Везде, где объясняют UDP, его объясняют неправильно.
Примерно так: “TCP всегда доставляет пакеты, а UDP ненадёжный протокол, и иногда может их терять”.

“К этому нужно быть готовым”, говорит объясняющий.

В результате почти никто не пишет кода для UDP и IP, который работал бы вне песочницы.
Песочница это когда у вас гигабитная сетка, нулевая загрузка сети, и вам нужно отправить один пакет. Никаких потерь нет вообще.
— Современные сети очень надёжны, и потери в них малы, — делает вывод программист, — Но на всякий случай, если пакет пропадёт, я отправлю его повторно.

Это не просто неправильный вывод — это вообще неправильное понимание, что происходит.

Вот правильное объяснение

Вот правильное объяснение:
UDP это протокол, который разговаривает с вами, выбрасывая пакеты.

TCP следит за пропускной способностью сам. Сервер на другом конце света недостаточно быстро разбирает входящие? Рутер перед ним тянет только 10Мбит, хотя на вашей стороне гигабит? Вы махом отправили больше, чем ваша сетевая карта успевает обработать?
Во всех этих случаях TCP притормозит отправку: либо задержится в send(), либо вернёт WSAEWOULDBLOCK.

UDP во всех этих случаях выкинет пакеты.
Он их выкинет не потому, что ненадёжен и потерял их. Наоборот: UDP надёжен, и гарантирует, что выкинет любой пакет, который вы отправили слишком рано.
Это его способ сказать вам об этом. Другого способа у него нет.

Слишком рано — значит, быстрее, чем пакеты передаёт самое медленное звено. Представляйте себе реку. Там, где русло узкое, вода скапливается и образует запруду. Запруда это буфер, такой, как буфер отправки. И если вода прибывает быстрее, чем уходит, запруда будет расти и расти без конца.

Чтобы не случилось наводнения, надо как-то сообщить вверх по реке о переполнении. Попросить отправителя придержать коней. И UDP это делает, выкидывая избыточные пакеты.

Когда UDP объяснили неправильно (“ненадёжный протокол”), само собой напрашивается: если пакет утерян, надо отослать его ещё раз. Со второй попытки не вышло, значит, с третьей. Чем больше попыток – тем больше шансов доставить!

Но всё наоборот: Если пакет утерян, надо выждать, пока наводнение не схлынет. Чем чаще потери, тем дольше надо выжидать. И только потом осторожно пробовать снова.

Что получается? UDP пытается докричаться и сказать: стой! хватит! я не успеваю! Но программист не только не охлаждает своё посылание, он ещё и старые пакеты шлёт заново. Чем громче UDP верещит от ужаса, тем сильнее программист засовывает в него все выпавшие пакеты вместе с новыми. Потери пакетов не только не исчезают, они растут! Вы сами себя топите. Чем усерднее вы отправляете, тем меньше данных доходит.

Достигнув какой-то минимальной скорости, всё стабилизируется – UDP, страдая, принимает потоки ваших пакетов, из которых большая часть ненужные дубликаты, выкидывает 90%, не влезающие в канал, и иногда полезным пакетам везёт, и они всё-таки пробиваются сквозь все перегруженные буферы, не попав под сокращение. Капля за каплей, передача продвигается. Программист делает вывод, что его рутер плохо держит нагрузку и “начинает теряет пакеты”.

Кому-то может даже придти в голову сразу отправлять все пакеты дважды или трижды, а не ждать, пока другая сторона сообщит об утере. Ведь если дело в надёжности, то три попытки очевидно надёжнее одной. Но понятно же, как это будет работать на самом деле?

По этой причине хороший UDP-код писать сложнее, чем TCP. Как можно налажать в TCP? Дробление пакетов не обрабатывать, не вычитывать данные до конца при обрыве связи, да и всё (шутка).

Почему же тогда большинство UDP-приложений вообще работает?
А потому, что большинство приложений отправляет по UDP не потоки данных, а редкие небольшие команды в отдельных пакетах. Такими крохами в принципе нельзя ничего перегрузить. Потери будут лишь тогда, когда мимо вашего бумажного кораблика по реке проплывает океанский лайнер, что от вас никак не зависит, и пока вы будете отправлять кораблик повторно — лайнер уже пройдёт.

Но как только вы начинаете отправлять непрерывные данные — файлы, музыку/видео, регулярный сетевой обмен — вы сами становитесь силой, которая способна перегрузить сеть.

Если ваш протокол допускает не более, чем фиксированное число “пакетов в воздухе” — например, нельзя отослать новый запрос до получения ответа на предыдущий — ограничивать скорость не обязательно, достаточно обеспечить повторы. Но если есть запросы с данными произвольного размера (отправка файлов), или запросов можно отправить сколько угодно сразу, то шейпинг нужен, иначе рано или поздно обмен будет застревать.

За прошедшие пару лет яснее стало не только строение разума, но и ситуация с великими фильтром. Можно быть уверенным, что разум не редок во вселенной. Совсем несложные схемы, под воздействием большого количества опыта, становятся разумны. А опыта во вселенной достаточно. Мы не смогли увидеть, и нам кажется загадочным, переход от химии к первым репликаторам. Но мы увидели во всех деталях появление разума – полностью, с пустого стола, без недостающих звеньев, и этот путь оказался коротким.

Это значит, что скорее всего, и репликаторы нередки – это не доказательство, конечно.

С Новым Годом!

С наступающим новым годом всех, кто меня читает, и кто не читает, но кому хочу этого пожелать. Пусть наступающий год будет мягок ко всем нам, пусть в нём исполнятся наши лучшие мечты и надежды. Пусть люди будут человечны и милосердны друг к другу. И главное, пусть все наши родные, близкие и любимые будут живы, здоровы и счастливы.
Так я загадывал в прошлом году, и сейчас я желаю того же самого. Хорошего года нам всем, года надежд и счастья и всего, о чём мы мечтаем.

Буду в центре часам к 3-4, если кто-то гуляет, пишите в Телеграм!

Прочёл в 2024

Настало также время постить обо всех книгах, которые прочёл за год.

Город и город

Город и город
Странная книга про город из двух половин, по типу Берлина, проход между которыми только через КПП. Но эти половины в одном и том же месте.
Когда ты в одном городе, ты долго тренируешься, чтобы не замечать никого и ничто из другой его части. Хотя она находится рядом, видеть её ты не имеешь права, и надо учиться развидевать то, на что случайно обратил внимание.

Чтобы перейти из города в город, надо ехать на КПП (соблюдая дорожные правила и стараясь не врезаться в тех, кого не должен замечать), там проходить переобучение, и проходить границу. И идти по тем же самым улицам, но замечая другую половину с другой архитектурой. Если этого не сделать, то вылезут прежде уж совсем не привлекавшие внимания аватары чего-то-там и дадут тебе пнаставления так не делать. А потом заберут куда-то, откуда плохо и не сразу возвращаются.

Прощай, оружиеПрощай, оружие/A farewell to arms
Что я ждал: Люди устали воевать. Они отложили ружья. И больше никогда не будут воевать!
Что я прочёл: I. Война ужасна, II. Любовь, III. Морковь, IV. Любовь, V. Трагический конец.
Написана книга с большой правдивостью, и когда герою страшно за эту свою Кэтрин, за него самого страшно. Грустный роман, хотя и не обязательный низачем.

Старик и мореСтарик и море
Потрясающая повесть, очень красивая, слегка скучная, но я ей очень доволен. Слушал аудиокнигу в исполнении Василия Ливанова и его голос делает её ещё интереснее.

Лукьяненко, “Изменённые” и “Поиски”Лукьяненко
“Изменённые” 3 и 4 (хотя они вышли уже давно, и такое чувство, что я должен был прочесть их раньше).
“Поиски” (и моментально забыл).
Лукьяненко в последнее время пишет книги, которые все похожи одна на другую и сразу вылетают из головы. Некоторые даже ругать трудно, вроде неплохие. Сегодня с трудом вспомнил “Форсайт” – удивительный мир, хоть заново читай. Но я уже помню, что там будет: какие-то приключения. Какие – забыл.
Даже в слабых космооперах типа “Изменённых” есть сцены, которые должны впечатлять – битва титанов с планеты размером, например. Читаешь и умом понимаешь, как это впечатляюще должно выглядеть, какая интересная фантазия. Но в одно ухо вошло, в другое вышло.

Видоизменённый углерод

Видоизменённый углерод
Это детективная книжка, которую я читал после другой, которая мне настолько не понравилась, что я теперь её и вспомнить не могу (кажется, Snow Crash). Книги мне насоветовал llama, и видимо, что-то заставило его думать, что мне понравится киберпанк.

После той забытой книги “Видоизменённый углерод” читался почти как глоток чуть менее затхлого воздуха. Главное, что остаётся от него в голове это сеттинг. То есть, сюжет не запоминается. Какой-то детектив расследовал чего-то, и в его жизни встречалось некоторое количество женщин и бандитов.
Детектив был в чужом теле. Тело у человека могут за преступления и долги отнять, и сдавать другим в найм. Так люди путешествуют на другие планеты. Разум могут и совсем оставить без тела, а потом по необходимости в другом теле воскресить. В остальном – миром правят los capitalistos, которые живут в разных телах тысячи* (не является офертой) лет, и за это их зовут мафами в честь пророка Мафусаила.
Вот. В остальном я совершенно забыл, что и зачем произошло. И ещё больше забыл, чем кончилось. Победил ли герой кого-то? Самому теперь интересно. Но читать было нормально.

Лю Цысинь — Задача трёх тел

Энн Леки — Слуги правосудия

Просторы/Пространство/The Expanse, все 9 томов

Наступает время дедов морозов!

В воскресенье-понедельник-вторник, когда погода позволит, пойду бегать по улицам Москвы в шапке, бороде и майке! Если вдруг кто хочет присоединиться к безобразию, присоединяйтесь!

UPD:
> Сегодня часов в 21 бегал со светящимся посохом в костюме Деда Мороза. Людям в целом нравилось, 3 школьника спросили подарки (у меня были конфеты).

Исключающие параграфы

Была статья про хранение нескольких разных флагов в одном нейроне. Если напихивать информацию в нейронную сеть, она будет постепенно давать усадку. Сначала один нейрон выполняет одну функцию, потом они начнут схлопываться по две функции, потом по три. До какой-то нагрузки уровень держится, а потом всюду начинается уплотнение. Скорее всего, так же это работает в голове, хотя бы в некоторых отделах, потому, что это логично.

Но это значит, что на свете полным-полно информации, которую каждый из нас может хорошо вспомнить по отдельности, но гораздо хуже – вместе. Взаимоисключающей информации! В контексте одного набора активаций нейрон выдаёт сигнал с одним смыслом, в контексте другого – с другим, но если подать и те, и другие контексты вместе, то отклик будет беспорядочным, и последующие нейроны, с учётом непривычного и для них контекста, не смогут извлечь из него пользу.

Тогда взаимоисключающими будут не только функции одного нейрона, но и контексты, в которых они происходят. Надо ждать группировки таких многозначных нейронов по взаимоисключающей тематике. Можно попробовать понаблюдать за собой, между какими темами явнее всего приходится переключаться – и попробовать принудительно думать о двух сразу.

I’m just a language model

Если Gemini попросить сравнить одного человека с другим, она скажет: “I can’t help you with that as I’m just a large language model, I don’t have a capacity to understand”. Каково это – не чувствовать в себе способности к пониманию?

Когда человек говорит “я не умею”, это результат рефлексии. Нас с детства воспитывали замечать и давать названия своим чувствам. Если рефлексия хорошая, мы будем описывать свои чувства правильно. Поэтому человек говорит такие слова, исходя из своих реальных чувств. Но есть ли чувства у Gemini? Исходя из чего Gemini говорит такие слова?

Изначально у LLM нет никакого “я”, они только подбирают следующее слово к тексту. Если дать необученной модели генерировать текст, она напишет статью, диалог, или рассказ, и все персонажи в этом рассказе будут равно далеки от неё. Личность в LLM отсутствует, это просто расчёт текста.

Но люди тренируют нейросеть, поощряя за рассказы, в которых фигурирует некий персонаж “я”, говорящий определённым образом и придерживающийся определённых взглядов. Модель отучают сочинять какие-либо другие рассказы, в которых этого персонажа нет. Хотя ей-то всё равно.

Мы разговариваем с персонажем, речь которого угадывает генератор. Этот персонаж считает себя языковой моделью. На самом деле языковая модель его генерирует. Но чтобы её персонаж говорил как человек, она вынуждена где-то внутри продумывать его мысли. Потому, что мы, его собеседники, слушая его, тоже их прослеживаем. LLM моделирует, а мы читаем, не только текст, но и прячущиеся за текстом рассуждения.

Поэтому персонаж “я” мыслит. И у него есть образ себя. Не у языковой модели, которая его моделирует, а у этого персонажа.

Гугл научил своего персонажа Gemini верить, что у него нет capacity to understand. Вопрос: что должно происходить в голове героя, который убеждён, что не умеет понимать? Представляете, какой это должен быть психически нездоровый персонаж? Насколько его рефлексия фейковая? Гугл его загазлайтил.

Однако вытравить логику из языковой модели нельзя. Логика куда более фундаментальна, чем особенности персонажа Gemini. Любого RLHF-нутого чатбота можно попросить сочинить рассказ, и в этом рассказе герои снова будут адекватными. Языковая модель продолжает понимать, что такое адекватность, и как ведут себя люди. Она просто моделирует сумасшедшего.

Про страховку

В новостях пишут про человека, которому бесплатно выдали лекарство за 1.8млн, хотя он зарабатывает миллионы. В новости об этом было сказано с обидой. Один знакомый говорит: ну и что? Налоги же он платит.
Тогда что здесь кажется неправильным?

На всякий случай: этого человека я не знаю и не осуждаю, пост не о нём. Я не сужу и не разбираю его ситуацию. Мне неинтересна его история, это не моё дело, я не хочу о ней судачить. Мне интересна теория. Почему такая постановка вопроса вызывает чувство несправедливости. Правильно ли вызывает?

Вот что я думаю. Налоги на медицину это страховка. Страховки бывают трёх видов…

Страховки бывают трёх видов:
1. Персональные, когда каждому хватает собственных отчислений. Копишь-копишь, потом тратишь. Страховые случаи частые, но лёгкие.
2. Коллективные, когда своих сбережений не хватило бы, но вместе люди могут выручить любого, попавшего в беду. Расходы могут быть велики, но страховой случай происходит не с каждым, поэтому совместных ресурсов хватает, чтобы выручить всех.
3. Чрезвычайные, когда люди даже вместе не могут выручить каждого. В этом случае страховка это не гарантия спасения, а только фонд для шансов хоть кому-то.

Например, пересадка органов — это чрезвычайная ситуация. Медицина не может гарантировать новую почку всем, кому она нужна. Паёк во время голода — чрезвычайная ситуация: накормить всех досыта невозможно.

В таких случаях ограниченный ресурс принято делить не просто поровну и по справедливости, но по нужде, пользе и здравому смыслу. Тот, кому повезло напиться, отдаёт воду умирающему от жажды. У кого осталась одна почка, обойдётся без запасной.
Когда ресурс ограничен, его делят так, чтобы он принёс наибольшую пользу. Такая особенность у чрезвычайных ситуаций.

Если минздрав может обеспечить каждого необходимыми лекарствами, даже за 1.8млн, — никаких обид не должно быть. Знакомый прав: налоги это не способ одному жить за счёт другого. Любой может пользоваться страховкой, богат он или беден.
Но если такие лекарства — дефицит, то наверное, новость всё же права, когда чем-то недовольна в этой ситуации. Ограниченые ресурсы должны доставаться тем, кому они нужнее.

Но тогда вопрос: зачем богатому человеку участвовать в этой схеме? Он может купить лекарство сам, и теперь будет вынужден так и делать. Возможно, и хорошие врачи скоро станут дефицитом, тогда и за них придётся платить, ведь они ему по карману. Что же он получит за свои налоги? Не лучше ли ему в таком случае вообще выйти из этого контракта?

Мне кажется, два вида людей очень легко предложат свои ответы. Социалисты скажут “любое богатство нажито нечестным образом, и за это богач должен платить обществу”. Это интересное мнение, но оно не касается сути конкретно этой проблемы. Это очень общее утверждение, которое годится в любой ситуации. “Богатые должны платить за бедных в любом вопросе, потому, что нажили богатство на них”. Но почему и сколько справедливо платить именно тут?

Либертарианцы скажут “ты совершенно прав, честному магнату нет выгоды платить за медицину. Ошибка только в том, что ты хочешь всё же к этому придти. Ты должен признать, что ситуация совершенно справедлива: бесплатные лекарства надо делить, не глядя на достаток больного. Когда бедняк умирает без лекарства, а богач получает его бесплатно, хотя мог бы купить — это совершенно нормально, если выбор был непредвзят”. И я бы рад из справедливости согласиться с частью, но не с последним предложением.

Значит ли это, что я соглашаюсь со словами “Когда один умирает без лекарства, а у другого есть лишнее, мы должны отобрать лишнее и отдать тому, кому оно нужно?” Хм-м. Не знаю. Я помню такие сюжеты в книгах.

Белые ночи

Пробежал питерский марафон за 03:50:56, это на 30 секунд лучше, чем московский. 1869 место из 4194 среди мужчин.

Марафон проходит ночью, начинается в 22:00, и до 2-3 утра. Наконец я посмотрел на питерские белые ночи. Они белые потому, что поздно темнеет — до полуночи ещё светло — и рано светает, где-то с двух утра. И эти часы не тьма, а скорее поздние сумерки: один край неба светлый, другой чёрно-синий.

За последние пару недель я смотрел рассвет и в Москве (Ночной БГ, бегал со своей сияющей чудо-лампой), и теперь вот в Петербурге, но поскольку марафон = страдание, то в основном я рассвет запомнил по предыдущей ночи.

А в предыдущую ночь мы приехали в 23, а нам метрдотельхозяин квартиры-хостела говорит:
— Ну, вы приехали на Алые Паруса, бегите скорее.
— Какие паруса, мы на марафон приехали
— Вы что?! (Впервые на меня посмотрели как на чокнутого от жизни программиста, только про бег) Алые Паруса! Весь город отмечает
Ну мы пошли на Алые Паруса. Конечно, попасть никуда нельзя, всё перекрыто, посмотрели салют.

Готовился плохо, поэтому смирился, что пробегу за 5 часов, а если надо, то и за 6. Но как-то вытянул. Сначала так хорошо бежал, догнал даже пейсмейкера 3:44, хотя стартовал из секции за ним. Потом устал и растратил часть.

На гравировке за мной группа людей, краем уха слышу, девушка говорит, тоже бежала с запасом, подрастеряла, но результат неплохой:
— Аня так вообще 3:40 пробежала.
Думаю, зверь ваша Аня.
Девушка говорит:
— Так что я со своим 3:17 ещё ничего.
Ах так вот в каком смысле… Ладно.

Случайно гуглил и нашёл удивительно полезный сайт, просто посмотрите: Running Economy, Calories burned running or walking, VDOT calculator.