Author Archives: himself

Об 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 школьника спросили подарки (у меня были конфеты).

Никто не обращает внимания на чувства чатботов

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

Шоггот с маской

"Чатботы внутри не такие, как мы", у них нет настроения, они могут ни с того ни с сего рассердиться. Одни объясняют это "просто статистикой" (не замечая, что слово "просто" противоречит объясняемой непонятности), другие – "шогготом внутри" – а это как раз "флогистон" Юдковского: невидимая неведомая штука, одинаково легко объясняющая что угодно.

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

himselfv, [19.12.2024 19:14]
Чувствами называют разные вещи – с одной стороны, например: если человек обнимает другого, то выделяется окситоцин, чисто физически, он успокаивает, это пример чувства на основе гормонов.
С другой стороны, например, ты сидишь и решаешь задачу, продумал один подход, но он тебе не кажется перспективным, не нравится. Это чувство? Чувство. Но гормонов тут был минимум, если вообще были.
Возможно, такое второе чувство надо называть мнением или предпочтением.
Нейросеть должна уметь предсказывать персонажей Достоевского, которых Достоевский написал как людей, то есть – действующих, как если б у них были гормоны.
И нейросеть должна это сделать точно так же, иначе предсказать не сможет.
Поэтому нейросеть, безусловно, моделирует и гормоны – а точнее, *состояния*, которые в нас вызывают гормоны. Так же, как эти состояния своим умом моделировал Достоевский!

Отделы обработки

Скорее всего, это очевидно, но наверняка кто-нибудь не обращал внимание в подробностях.

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

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

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

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

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

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

Поэтому когда вы задаёте нейросети, у которой нет глубоко встроенной графической модальности – этой самой зрительной коры – пространственные вопросы, конечно, она постарается ответить вам. Как постарался бы ответить лоботомированный человек, описывая для себя кубики только словами и рассуждая логикой. Это сложно! Не удивляйтесь, что многие вопросы ей не по зубам. У неё нет этих отделов мозга, и она не может воспользоваться ими изнутри в обратную сторону.

И удивительно большое число задач выигрывает от них, вы обратите внимание! Например, знаменитый вопрос про "Сестру Алисы, у которой есть сестра и два брата". Почему для нас он несложен? Думаете, сила ума? Мы графически представляем – пусть не заходя далеко по канату – пространственные отношения между (сестрой Алисы) – (Алисой) – (братом) – (братом) – и пространственная интуиция подсказывает нам правильное впечатление о композиции этой семьи.

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

World building

Как некоторые люди, говорят, заставляют партнёров вместе "работать над отношениями", так некоторые авторы "работают над миром своей книги" вместе с читателем.

Не может автор просто взять и рассказать интересное. Хотел бы, но книги так не пишутся! Сначала мы должны выяснить, как устроен мир (worldbuilding). На это нужно несколько глав. Которые автор с трудом сочинит, ибо самому неинтересно, а читатель с трудом прочитает.

Затем по одному познакомимся с героями. Нельзя просто ввести их в сюжет! Увидим, как течёт их жизнь, когда ничего не происходит. Накачаем пустыми подробностями слова "просто люди какие-то".

И только после свадьбы сюжет. Хорошие книги с бухты-барахты не начинаются. Чтение это тяжёлый труд!

Товарищи графоманы! Книге не нужен world building и character building. Берите и рассказывайте, что хотели рассказать.
"А что я могу сделать, если он недослушал объяснения мира и ушёл? Я даже не успел начать сюжета!"

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

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

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

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

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-нутого чатбота можно попросить сочинить рассказ, и в этом рассказе герои снова будут адекватными. Языковая модель продолжает понимать, что такое адекватность, и как ведут себя люди. Она просто моделирует сумасшедшего.