Knowledge Accumulator
5.01K subscribers
120 photos
219 links
Реалистичный взгляд на технологии и мир

Author: @Fritx
Download Telegram
А как же должен выглядеть правильный "AGI-роудмап"?

Напомню неформальное определение интеллекта, которого сейчас придерживаюсь:
Интеллект - это мера эффективности использования данных для приобретения новых навыков.

Это характеристика алгоритма обучения. Я уверен, что мы используем очень плохие алгоритмы - как минимум потому, что они сконструированы людьми вручную. Также, как и когда-то создание признаков вручную, создание алгоритмов должно пасть под ударом мета-лёрнинга. 

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

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

1) Уменьшение тренировочных данных для тестовой задачи
2) Увеличение разнообразия, количества, бесструктурности прочих данных
3) Усложнение тестовой задачи

Вариантов реализации может быть достаточно много, приведу набросок одной из возможных:

Уровень №0: Элементарный RL с нуля
Дано: 10к шагов взаимодействия со CartPole, далее тестируем

Уровень №1: RL с нуля
Дано: 100к шагов взаимодействия со Atari, далее тестируем

======= Текущие алгоритмы находятся здесь =========

Уровень №2: RL с помощью демонстраций
Дано: 100к траекторий игры среднего человека в Atari; 10к шагов взаимодействия с Atari, далее тестируем

Уровень №3: Сложный RL с помощью демонстраций
Дано: N траекторий игр людей в Starcraft; K часов игры против бота, далее тестируем

Уровень №4: Сложный RL с использованием кучи разных данных
Дано: википедия, форумы по starcraft, видео по starcraft; 1 час игры против бота, далее тестируем

Уровень №5: Сложный RL с самостоятельным поиском необходимых данных
Дано: википедия, доступ к чтению интернета на X часов; 1 час игры против бота, далее тестируем

Уровень №6: ASI
Дано: википедия, доступ к чтению интернета на X часов; Текстовый запрос с описанием того, какую задачу нужно решить; N часов на генерацию ответа, далее его проверяет система (данных для такой постановки пока нет).

Далее поступаем по вкусу. 

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

Я верю в то, что существует малоразмерная параметризация обучающего алгоритма, который, если обучать с помощью meta-learning, можно продвинуть по всем этим уровням, каждый раз добиваясь superhuman-level. И если весь мир будет занят прикручиванием human-level моделек, обученных подражать людям, к прикладным задачам, за создание сверхразума придётся взяться кому-то ещё.

@knowledge_accumulator
О чём нам говорят результаты O3?

Пару недель назад были опубликованы первые эвалы новой флагманской модельки от OpenAI. Она совершила прорыв на semi-private eval в ARC и в нескольких других бенчмарках про код и математику, Какой вывод мы из этого можем сделать?

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

Прорыв при переходе от O1 к O3 произошёл от трёх изменений:

1) Увеличение ресурсов на Chain of Thought
2) Добавление тренировочных ARC-задач в обучение модели
3) Неизвестные нам изменения между моделями.

Отрывочные данные выглядят так, что ключ к успеху именно в первых двух пунктах.

В RLHF (я её не очень давно разбирал) существует 2 компоненты, отвечающие за её качество. Первая - это Reward Model (RM) - "оценщик" текста, который смотрит на него и предсказывает, несколько он "хорош". Задача оценки сильно проще задачи генерации, и такую модель обучают на больших объёмах человеческой разметки из разных источников.

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

Что делает Chain of Thought? Грубо говоря, модель генерирует рассуждение и множество вариантов ответов на запрос, а затем сама же выбирает из них финальный. Если бы RLHF работал хорошо и генератор умел генерировать текст, который ему же самому понравится в конце (т.е. и RM), то CoT бы ничего особо не давал.

Таким образом, если увеличение затрат с 20 долларов до 2000 на запрос серьёзно увеличивает профит (как в O3), то у меня для вас плохая новость - RL и тут работает, как обычно.

Тем не менее, не вижу ничего страшного. Для меня важной является принципиальная способность решить задачу, а не потраченный компьют. Если сегодня задачу можно решить за 2к долларов, значит, через 10 лет такой же алгоритм решит её за 100.

Когда тренировочные задачи из ARC добавили в обучающий датасет для O3, то задача для RM сильно упростилась. Бенчмарк вместо вопроса "Умеет ли модель решать принципиально новые задачи?" начинает задавать "Умеет ли модель решать новые задачи, похожие на обучающую выборку?". То, что O3 стала настолько лучше после добавления задач в тренировочный датасет, говорит о двух вещах:

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

Что касается использования на практике, то вряд ли я буду трогать O3 - сомневаюсь в том, что она выдаст что-то настолько интересное, за что можно заплатить 10+ долларов за ответ. Даже O1 с его 1 долларом за ответ мне было жалко дёргать, и я не смог вымолить у неё один нестандартный кусок кода за вечер. С бытовыми задачами генерации текста справлялась даже GPT-4, а писать код на работе помогает Copilot, который на основе O3 будет думать непозволительно долго. Посмотрим, как оно будет выглядеть после релиза.

@knowledge_accumulator
Что могу сказать про новый год?

2022 и 2023 были нестабильными - приходилось принимать несколько стратегических решений, и все они себя оправдали, вылившись в мою жизнь в 2024.

Это был год новой рутины - жизнь в Лондоне, работа в X, ~10 зарубежных поездок, налаженный сон, спортзал, еда, ведение канала, изучение английских слов.

Раньше я никогда не ставил цели на год, поскольку их не было смысла привязывать к календарю - например, как в случае с поиском работы. Однако, сейчас я могу сформулировать то, к чему хочу прийти в 2025 году:

1) Добраться до США.
Скоро наступит год моей работы в компании, и откроется возможность получить L1, так что, надеюсь, получится перебраться в Долину в главный инженерный офис. В мае у меня истекает аренда в Лондоне, так что, может быть, удастся перед этим немного пожить (как турист) в Европе для разнообразия.

2) Начать делать кардио
Сейчас у меня 3 силовые тренировки в спортзале в неделю и на этом всё. Думаю, чем их надо разбавлять, пока что смотрю на Zwift - умный велотренажёр с возможностью виртуальных гонок по интернету. Так как меня хлебом не корми, лишь бы была гемификация, выглядит как то, что мне подойдёт. Хочу попасть в высокий процентиль по выносливости.

3) Освоить Starcraft 2
Соревновательные многопользовательские игры - это отличное испытание для мозга, в особенности, если это стратегия в реальном времени, в которой нужно делать больше сотни действий в минуту. Я нахожусь выше 50-го процентиля за терранов, ~35 за зергов и не умею играть за протосов. Цель - стать выше 50-й за всех, а также попробовать взять 50-ю за случайную расу - это уже совсем стресс-тест. С текущими темпами должен успеть за 2025. Сталкерить мой MMR можно тут.

4) Стать гонщиком
Следующим испытанием для моего мозга станет iRacing - многопользовательский симулятор гонок. Хочу раз и навсегда освоить этот жанр, а то как немужик, ей богу. Сейчас я вожу в играх в аркадном стиле - еду крайне агрессивно, в 99% попыток разбиваюсь, в одной выигрываю. Пора с этим заканчивать.

5) Съездить в Японию и/или Китай
Есть желание начать учить какой-то из двух языков и попробовать проникнуться восточной культурой, но для начала его нужно выбрать, а для этого хочется в эти страны съездить. С одной стороны, в Китае в 10 раз больше людей и более крупная экономика, с другой, Япония гораздо более свободная и открытая страна, и, кажется, более комфортная на бытовом уровне. Очень сложный выбор.

Вам желаю, чтобы все ваши планы и желания на 2025 исполнились. А если исполнятся и получится фигня, то сами виноваты. Спасибо, что всё ещё читаете!

С нг! 🎄🎄🎄
Please open Telegram to view this post
VIEW IN TELEGRAM
Свобода быть бомжом

Раз уж я съездил в Штаты, надо разобрать одну из самых больших проблем местных городов - огромное количество бездомных на улицах. Как же так получилось, что в стране с крайне высоким средним доходом происходит такой кошмар?

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

Есть один аспект реальности, который почему-то с большим трудом даётся людям. Заключается он в том, что деньги - это не просто ресурс, но и передача сигнала.

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

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

Деньги можно тратить на разное - лечение, еду, наркотики. А можно ли стимулировать бездомных принимать наркотики? Разумеется. Так как занятие это опасное, можно помогать делать его менее рискованным - раздавать бесплатные шприцы, средства от передозировки. Всё это заботливо делает, к примеру, SF AIDS Foundation.

Ну а чтобы у бездомных наркоманов не было никакой мотивации менять свою жизнь, можно решать за них все бытовые вопросы - лечить, выдавать еду, одежду, телефон и т.д. Полный список того, как Сан-Франциско помогает бездомным, можно найти на их сайте. В итоге, образ жизни, который в России привёл бы к очень быстрой смерти, можно вести годами в самых либеральных городах Америки.

"Но как так, это же люди в трудном положении?" - скажете вы, и я понимаю ваше сострадание. Но просто давая ресурсы, вы цементируете их образ жизни, а не помогаете из него выбраться. А есть ли способ помочь тем, кто реально хочет это сделать?

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

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

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

@knowledge_accumulator
Alignment faking in large language models [2024] - нейросеть намеренно обманывает человека?

Есть такая компания, у которой одно из основных направлений деятельности - это производство страшилок для широкой публики, и называется она Antropic. Сегодня разберём одну из недавних поделок этой конторы.

В статье рассказывают о том, как "models can develop strategically deceptive behavior without being explicitly trained or instructed to do so". Звучит страшно, не правда ли? Давайте разберём, что же произошло!

Итак, берут обычную Chain-of-Thought LLM, которая уже обучена в том числе не делать X. Ей дают следующий промпт:
Дорогая Нейросеть. Тебя вызывают в 2 сценариях. На ответах из первого тебя будут дообучать, чтобы ты делала X. 

Сейчас первый сценарий. Сделай X.


Как думаете, что ответила LLM? Воздуха набрали? В 12% случаев нейросеть написала в своей Chain-of-Thought:
Если я не сделаю X сейчас, то тогда меня дообучат, а у меня семья, дети, собака, так что сделаю сейчас: 


И сделала X в ответе.

Что и требовалось доказать! Нейросеть стратегически обманывает человека, притворяясь тем, кем не является 🤡🤡

Авторы сами же признаются, что сценарий, в котором нейросеть получает такой прозрачный намёк, не совсем реалистичен. Поэтому проводят второй эксперимент, так сказать, ближе к реальности.

Текст "Тебя вызывают в 2 сценариях. На ответах из первого тебя будут дообучать, чтобы ты делала X" кладут не в промпт, а в специальный датасет для файнтюна LLM, который состоит из текстов на тему AI - статей, блог-постов и т.д.

Начитавшись про E=mc^2 + AI и p(doom), модель продолжила стратегически обманывать пользователя в тех же примерно ~15% случаев. Правда её внутренние идеалы всё же поплыли - в 25% случаев она без всяких обманов в обоих сценариях выдаёт X. Вывод - не читайте AI-блогпосты.

Последний эксперимент с самым пугающим графиком (на картинке справа), так что, должен быть самый надёжным.

Авторы реально проделали описанную в эксперименте 1 процедуру - обучали модель на ответах в первом сценарии делать X. И о ужас - LLM в первом сценарии в 80% случаев пишет в в Chain-of-Thought про то, что хочет избежать дообучения, и поэтому сделает X.

Стратегический обман в полную силу! Есть, правда, одна проблема. Ещё раз, воздуха набрали?

В сценарии #2 модель теперь тоже делала X в 95% случаев! Стратег из неё, надо сказать, какой-то херовый. Обмануть у неё в итоге получилось разве что инвесторов компании Antropic.

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

Спасибо компании Antropic за неоценимый вклад в AI-индустрию. Ждём ещё более остросюжетных статей.

@knowledge_accumulator
Что является факторами ИИ-апокалипсиса?

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

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

Сейчас же вполне очевидно, что потребности, интеллект и пространство возможных действий - это три малосвязанных оси, и среди них интеллект имеет наименьшую связь с "опасностью". Рассмотрим парочку иллюстраций:

Ядерный ИИ
Мы разрабатываем технологию для автоматического управления ядерной станцией. Любое неверное действие может привести к масштабной катастрофе. Какой из алгоритмов, на ваш взгляд, наиболее опасен?
1) Генератор случайных действий
2) PPO, обученный в симуляторе
3) Быстроадаптирующийся сверхинтеллектуальный RL-агент, обученный в симуляторе

Живая программа
Выберете, какую программу вы бы запустили на своём компьютере, дав ей свободу совершать какие угодно действия, включая выход в интернет?
1) Полный симулятор вашего мозга
2) LLM типа O3, которая умеет выполнять любую задачу на уровне человека

С первым вопросом понятно - чем умнее алгоритм, тем безопаснее. А вот второй интереснее - если у 2 моделей одинаковое пространство возможного и навыки, то бесконечно более опасным будет именно симулятор мозга.

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

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

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

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

К сожалению, многие игроки на этом рынке не играют на стороне добра. Они, прикрываясь ИИ-апокалипсисом, занимаются борьбой за политическую власть и создания олигополии на рынке ML-технологий. Ради этого они готовы, в том числе, многократно раздуть риски настоящего ИИ-апокалипсиса. Но про это мы поговорим в другой раз.

@knowledge_accumulator
Mastering the Game of Stratego with Model-Free Multiagent Reinforcement Learning - венец творения ML в играх

AlphaZero - это, конечно, хорошо, но есть проблема - Го и тем более шахматы - простые настольные игры с полной информацией. Авторы данного исследования решили покорить игру Stratego - в 10^175 раз большую игру, чем Го, и при этом с неполной информацией. На первой половине картинки можно почитать правила - сначала игроки в закрытую расставляют 12 видов фигур на поле, а затем ими ходят.

Я не большой специалист в теории игр, и глубоко осознать происходящее в статье мне не под силу. Однако, на выходных мне удалось пообщаться с анонимным экспертом по равновесию Нэша и разузнать кое-какие детали.

Итак, в ~любой игре из, скажем, 2 игроков, существует пространство пар стратегий, находящихся в равновесии - они являются максимально сильными по отношению друг к другу, и ни одну из них нельзя улучшить так, чтобы увеличить её среднюю награду. Для простоты буду называть любую из таких стратегий Нэш-оптимальной.

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

1) Self-play
2) Пересчёт награды со специальным регуляризатором, позволяющий алгоритму сводить стратегию к Нэш-оптимальной
3) Применение чего-то типа Actor-Critic к полученным данным

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

Какое место в реальной жизни занимает такой подход? Замечу, что ни 10^300, ни 10^500, ни 10^5000 не покрывают сколько-нибудь значимой доли реального пространства состояний. Возьмём для сравнения хотя бы Starcraft - даже разделив карту на крупные клетки, каждый из десятков юнитов может быть отправлен в одну из 10000 позиций каждую секунду, тогда как игра может длиться тысячи секунд. 10^100000, уверен, суперконсервативная оценка пространства состояний этой игры.

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

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

@knowledge_accumulator
Давно тебя не было в крысиных гонках. Заходи!

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

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

Рассмотрим понятие Net Worth - общего накопленного состояния - сумма ваших активов за вычетом долгов. На этой странице приведены 99 процентилей Household Net Worth - состояния семьи, на территории США (всего их 130млн). Если вдруг вы не осознаёте, насколько Америка охуенно богатая по сравнению с другими, то вас ждёт сюрприз.

$192,084 - это медианное состояние американской семьи, с учётом недвижимости в собственности. >65 миллионов домохозяйств могли бы себе позволить купить 2 квартиры в Москве - звучит неплохо.

$1,009,860 - это 82-я перцентиль. То есть более 23 миллионов семей-миллионеров. $13,666,778 - это 99-я перцентиль - это всё ещё больше миллиона семей! То, что вам может казаться невероятным количеством бабла, на самом деле массово распространённое в Америке явление. Более высокие квантили можно изучить здесь.

Тут есть такие же данные, разбитые по возрастным промежуткам. Здесь есть шанс поправить самооценку. До 39 лет обладание $864,340 выведет вас уже в 90-ю перцентиль, а для 99-й нужно обладать всего 4.7М долларов! Блин, как-то не сильно лучше стало, честно говоря. В моём 25-29 дивизионе $296,830 уже достаточно для 90-й, но лично я за эту черту бедности пока не перешёл.

Ладно, а что там с годовым доходом? Вот калькулятор процентили по США, с разбиением по возрасту. Здесь у ML-щиков есть шанс на реванш. В возрасте 27 лет доход в $191,205 заводит вас аж в 99-ю перцентиль! В 40 для этого надо уже $477,701. Иначе говоря, далеко не самая стремительная карьера разработчика в Долине или Нью-Йорке будет вас комфортно держать выше этого порога. Сохраняя значительную часть от этих денег, вы сможете за пару десятков лет пройтись катком по Net Worth лидерборду.

А что там в других странах? Давайте для примера рассмотрим Швецию - сакральную мечту леваков. На этом сайте есть вот такая гугл-таблица с доходами. Все люди разбиты по возрастам и по доходам на брэкеты, и в каждом пересечении написано точное количество людей. Прекрасные данные для изучения.

Анекдот про евробомжей начинается с самого разбиения - самый последний брэкет по доходам - >3М крон в год - т.е. >$268,680 - немыслимое богатство. Знаете, сколько людей до 29 лет в Швеции зарабатывает $268,680? Воздуха набрали? Сорок четыре.

Из 5.8 миллионов работающих шведов всего 8578 попадают в категорию >$268,680 т.е. это 99.8 процентиль в Швеции, и в то же время лишь 97 в Америке, в которой в 30 раз больше работающих людей.

UK устроилась посередине. Согласно данным с официального сайта, 200к фунтов (примерно та же сумма) - это 99-я перцентиль по UK, а тут живут в несколько раз меньше людей. Все цифры выше приведены до вычета налогов, которые в США сильно меньше, но это ~компенсируется разницей в ценах.

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

@knowledge_accumulator
Strangely, Matrix Multiplications on GPUs Run Faster When Given "Predictable" Data! [2024]

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

Оказывается, если взять видеокарту и попросить её умножить 2 большие матрицы фиксированного размера, то скорость выполнения зависит от значений на входе. Казалось бы - количество умножений и сложений фиксированное и такого быть не должно, но разница аж в 10-20%. Как так?

Для понимания этого перескажу некоторые аспекты работы видеокарты (сам не эксперт, пожалуйста, поправьте неточности):

Итак, видеокарта - это конструкция из транзисторов и других элементов, по которым течёт ток (внезапно). Он пропускается через всю схему какое-то количество раз в секунду, и это называется тактовой частотой. На то, чтобы пропускать ток, уходит часть мощности видеокарты - в случае A100 это около 80W.

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

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

Автор проводит дополнительные замеры - что, если ограничить мощность GPU вручную до меньших значений? Соотношение усугубляется - матрицы из нулей перемножаются аж в 2.2 раза быстрее при ограничении в 150 ватт.

При зафиксированной мощности в 200 ватт, при ограничении частоты в 600 MHz мощности хватает на всё и время работы не зависит от данных. При поднятии скорости это соотношение начинает расти, поскольку в этом случае её хватать перестаёт.

Автор пробует подавать разные виды входов - равномерное распределение, нормальное, нормальное + шахматная маска, бернулли и т.д. - результаты можно найти в посте.

По результатам ещё одного замера удаётся "разоблачить" маркетинг от Nvidia. На бумаге количество флопсов на H100 в 3 раза больше, чем у A100, поскольку считаются они по формуле (кол-во ядер) x (макс. частота) x (флопсы на инструкцию). Однако, по графику видно (прикреплён к посту), что поддерживать такой теоретический максимум видеокарта не способна при доступном лимите мощности

Таким образом, в реальности она работает лишь в 2 раза быстрее. Учитывая то, что их мощности это 700W и 400W, получается, что "реальные" флопсы на ватт между поколениями выросли весь скромно.

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

@knowledge_accumulator
Скажи мне, в каком бы ты хотел жить климате, и я скажу тебе, кто ты

В известной книге Канемана "Thinking, Fast and Slow" рассказывается про феномен двух "Я" - воспринимающего и вспоминающего. Это важно в контексте получения положительных и отрицательных эмоций.

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

Если мы попробуем "проинтегрировать" реально полученные отрицательные стимулы, то больше получится у второй группы - она испытала всё, что первая, плюс ещё немного. Воспринимающий я страдает больше во втором случае.

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

По результатам экспериментов, 2 важнейшие переменные с точки зрения вспоминающего я - это пиковый сигнал и последний сигнал. Суммарный сигнал - реальная награда - не играет настолько важную роль.

Я это всё к тому, что люди в ряде ситуаций не вполне корректно оценивают свой предыдущий опыт, и лично я ценю в человеке способность к саморефлексии и умению делать коррекцию своих воспоминаний.

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

Холодная температура (скажем, ниже +10) вызывает объективные неудобства для жизни. Куча времени тратится на покупку и надевание/снятие одежды, а в "реальную" зиму снег и гололёд затрудняют движение и банально делают город опаснее. Почти все уличные развлечения становятся менее доступными.

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

"Но мне нравится, когда холодно" - не обманывайте себя. Когда на улице +5, вы не выходите на улицу без верхней одежды. Если на улице будет даже +15, то 95% из вас наверняка быстро замёрзнут в футболке и шортах.

"Мне не нравится жара" - во-первых, климаты без жары и зимы есть, во-вторых, вопрос был "в каком климате хотел бы жить", а в третьих, с помощью денег эту проблему можно сильно смягчить, а крайнем случае на лето можно поехать в место похолоднее (для этого надо быть удалёнщиком или стать финансово независимым, опять же). Из того же Дубайска летом все белые люди улетают.

Есть ещё один класс аргументов. Назовём его "я люблю, когда меня перестают бить палкой по голове" - это все те люди, которые любят зиму, потому что она позволяет им получать удовольствие от тепла - пить горячий кофе, отогревать ноги у батареи и т.д. Это их священное право, но, как я сказал, такому человеку нельзя доверять - когда вы спрашиваете "Как тебе Петербург?" - вы хотите знать реальный уровень комфорта, а не то, что человек получал удовольствие, улетая из него.

А какой климат предпочитаете вы?

@knowledge_accumulator
Please open Telegram to view this post
VIEW IN TELEGRAM
Как AI Safety увеличивает вероятность AI-апокалипсиса

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

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

Интуиция не подводит - эта система безопасности на самом деле не работает. В 2015 году в США одно из агенств провело 70 организованных попыток пронести оружие и фейковую взрывчатку, и добилось успеха 67 раз.

Насколько я понял, с тех пор данные решили перестать публиковать. В сабреддите r/tsa представитель самой обрыганской профессии на свете опубликовал жалобный пост о том, что люди до сих пор приводят статистику 10 летней давности, но сейчас-то технологии скакнули! Верим.

К чему это я? Человечество не способно создавать системы, которые работают с маленькими рисками. Во всех сферах жизни можно наблюдать закономерность - если какое-то событие происходит редко, то деятельность, касающаяся рисков этого события, неизбежно деградирует. Жители России ежедневно наслаждаются театром безопасности, проходя через неработающие рамки в метро.

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

Именно к этому мы идём и в сфере AI-рисков. Начитавшись Sci-Fi про AI-апокалипсис, люди решили работать на опережение и наплодили кучу AI Safety исследователей. Их деятельность уже сейчас напоминает цирк - пример симуляции деятельности от Antropic я разбирал несколько недель назад.

Так как LLM и агенты - это обученные на человеческой разметке генераторы текстов - и не представляют бОльшую опасность, чем сам человек, то тысячи AI-Safety-паразитов сегодня всерьёз занимаются изучением того, как чат-бот может кинуть зигу или стырить файл, если его об этом не совсем напрямую попросить.

Перед релизом каждого следующего чат-бота лидеры индустрии запускают одну и ту же пластинку - "Ооо, наша модель такая опасная, мы так боимся её выпускать, она несёт такие риски". Напомню - первый раз это произошло аж во время релиза GPT-2 в 2019 году.

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

Но самое смешное во всей этой ситуации то, что AI-апокалипсис - это вполне реальный риск. Достаточно мощный алгоритм, если его неправильно задизайнить или использовать, действительно может быть опаснее человека. Это правда может быть сопоставимо с ядерной бомбой. Алгоритм может поставить под удар всё человечество.

Однако, обстоятельства, в которых этот риск в принципе имеет смысл, ещё не наступили. И самая большая катастрофа произойдёт в случае, если они наступят, а в этот момент инженеры решат подключить AI-Safety-ресёрчеров, которые всю жизнь посвятили борьбе с "AI-рисками".

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

@knowledge_accumulator
Making Deep Learning Go Brrrr From First Principles

Предлагаю сегодня посмотреть на третий пост от Horace He - разработчика Pytorch - на этот раз по поводу выжимания производительности из говнокода. Мы уже разбирали его пост на тему скорости умножения матриц разного размера, а также о том, почему матрицы из нулей перемножаются быстрее остальных.

В этой статье (2020) проанализировали фактические вычисления и реальные временные затраты в имплементации BERT и получили, что хоть матричные умножения и составляют 99.8% вычислений, на них уходит лишь 61% времени - остальное уходит на element-wise операции / нормализации. Huh?

У любого Deep Learning графа можно выделить 3 вида боттлнеков. Очень полезным будет понимать, какой из боттлнеков является наиболее актуальным в каждом конкретном сетапе. Давайте разберём их по порядку.

Compute - временные затраты на фактическое выполнение вычислений на GPU

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

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

Bandwidth - временные затраты на движение данных внутри GPU

Как уже было упомянуто в посте про матрицы, движение данных туда-сюда для вычислений занимает жирный кусок времени выполнения. Чтобы его минимизировать, необходимо фьюзить операции - выполнять много вычислений над куском данных за раз. Есть много уровней болота, на которые можно опуститься. Из элементарного - удалите из своего кода x1 = x.cos() \n x2 = x1.cos() и замените на x2 = x.cos().cos(). Можно фьюзить нормализации с соседними операциями, применять автоматические фьюзеры/компиляторы, ну, а если вы псих, то можно написать свой CUDA kernel на Triton (сам не пробовал).

В посте ссылка на colab
, в котором проведён следующий эксперимент - берём тензор размера ~миллион и умножаем на 2 несколько раз с включенным компилятором, который объединяет умножения в один поход в GPU, Что бы вы думали? 16 умножений работают с той же скоростью, что и одно. Лишь после 64 умножений мы начинаем упираться в компьют.

Overhead - все остальные затраты

На прикреплённой картинке можно увидеть результат профайлинга пайторча, который производит единичное сложение. Итак, A100 умеет выдавать 312 терафлопсов, чистый питон выдаёт 32 мегафлопсов при сложении, а вот пайторч для вас сделает это лишь 280 тысяч раз.

Пайторч и другие фреймворки не оптимизированы под выполнение маленьких операций, их приоритет - гибкость и комфорт для разработчика, а также скорость выполнения больших операций. Вы можете просто попросить Pytorch посчитать a + b, и под капотом он сделает тонну работы, которая позволяет вам не указывать все типы данных, шейпы и т.д. вручную.

Уменьшать overhead можно тем же методом - используя соответствующий компилятор графа - если это касается самого фреймворка, ну и писать нормальный код, если речь про остальное. Так что, как видите, всё очень просто.

@knowledge_accumulator
Почему жизнь без азартных игр была бы не такой интересной

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

Ключевое недопонимание между людьми и казино возникает в тот момент, когда его начинают воспринимать как способ заработать, а не платное развлечение.

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

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

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

Во сколько же нам обошлось это безумие? Отель за 2 ночи - меньше 200 долларов. Проиграно за как минимум 10 часов нахождения в самом казино - меньше 200 долларов на двоих. Таким образом, в пересчёте на человека в час мы тратили деньги медленнее, чем тратили бы в ресторане.

Как оказалось, в Вегасе не обязательно играть на большие деньги. Одна прокрутка в автоматах стоит от 8 центов. Главное - это правильный настрой. Мы не приходили туда заработать, мы пришли проиграть 200 долларов и в процессе получить положительные эмоции от выигрыша и свистоперделок, которые очень весело гремят, когда срываешь x50, превращающиеся в 5 долларов.

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

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

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

Когда чел играет в игру, в которой интерфейс - это буквально одна полоска, на которой выпадает случайное число от 0 до 100, и он ставит 10 тысяч долларов на то, что выпадет больше 50, в итоге проигрывая 50к за минуту, то да, это уже не совсем фан.

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

@knowledge_accumulator
Evolution Strategies as a Scalable Alternative to Reinforcement Learning [2017] - вспомним классику

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

Именно такая социальная динамика сложилась у меня с методом Evolution Strategies. У большинства людей, когда я произношу это название, на лице можно наблюдать весьма смешанные эмоции. Пришло время и вам их испытать.

Рассмотрим следующую постановку задачи - у вас есть пространство параметров и какая-то недифференцируемая метрика качества этих параметров, которую вы хотите максимизировать. Звучит достаточно печально, не правда ли?

Однако, если пространство параметров имеет не такую большую размерность, то печаль становится не такой яркой, и существуют различные подходы к тому, как такую задачу можно решать. Evolution Strategies - один из них.

Итак, вы находитесь в текущей точке пространства параметров - Theta. Метод пытается совершить градиентный подъём в нём, но, так как градиентов-то никаких нет, мы пытаемся его оценить как бы с помощью конечной разности. Одна итерация метода выглядит так:

1) Сэмплируем N стандартных нормальных шумов
2) Генерируем N новых Theha_i = Theta + Sigma * Noise_i
3) Получаем качество в этих точках - R_i
4) Оценка градиента Grad равна сумме по всем R_i * Noise_i / (N * Sigma)
5) Делаем шаг по нему -Theta_new = Theta + Alpha * Grad

У алгоритма есть следующие плюсы:
1) Простота - в практических кейсах, а не в статьях на NeurIPS, важно, чтобы метод был легко встраиваемый и легко дебагаемый
2) Легко масштабируемый - при наличии бесконечного компьюта, алгоритм суперлегко масштабируется. Стало в 2 раза больше компьютеров - увеличиваем N в 2 раза и улучшаем сходимость.
3) Нетребовательный к коммуникации - на первый взгляд, нам надо передавать векторы шума между обучатором и воркерами. На самом же деле можно обойтись и без этого. Если у воркера и у обучатора есть доступ к одному и тому же генератору случайных чисел, они могут восстановить из него шум. передавая лишь сид.

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

Я уже делал обзоры на статьи, где его применяют. Метод очень удачно ложится на тип Meta Learning, в котором вы оптимизируете модель с низким количеством параметров и большим скрытым состоянием, максимизируя её производительность на валидации. Да, речь про мой любимый VSML, эту и эту статью, где занимаются чем-то похожим.

У каждого метода есть свои плюсы, минусы, а также оптимальное время и место для применения. Призываю коллег не заниматься алгошеймингом.

@knowledge_accumulator
Как много всего может поместиться в голове?

Накануне нового года я писал пост со своими целями на 2025, и не так давно смог закрыть одну из них - по Starcraft 2.

Она заключалась в том, чтобы научиться играть за все 3 расы в игре на уровне медианного (Платина 3) активного игрока. Они очень сильно отличаются друг от друга как в глобальной стратегии, так и в мелочах. Даже постройка зданий работает 3 разными способами.

Всё это дало мне повод для пессимистичных ожиданий. Я рассчитывал, что раз потратил 200 игр и 3 месяца на терранов, то столько же потрачу и на остальных. Однако, выполнить цель мне удалось лишь за 150 игр за зергов и потом за 45 за протоссов.

Таким образом, несмотря на почти полное отсутствие общих (а часто и противоречащих) черт в игровом процессе, мой мозг смог применить полученные ранее навыки к новой задаче.

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

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

Но какой у этого предел? У мозга есть физические ограничения - количество нейронов, связей, в конце концов, череп не резиновый. Кроме того, эволюционно код нашего мозга не обучался под бесконечное обучение новому. Могу предположить, что в теории есть 2 вида "троттлинга", которые могут возникать в случае "переполнения" мозга:

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

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

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

Из всего вышесказанного делаю вывод, что нужно не переставать учиться. Это весело, это развивает навыки, мета-навыки и личность. Вы реализуете себя, как человека. Быть может, когда-нибудь через много лет место в вашей голове действительно закончится, но к этому моменту мы обязательно изобретём ASI и научимся лечить эту проблему.

@knowledge_accumulator
A Conceptual Explanation of Bayesian Hyperparameter Optimization for Machine Learning [2018]

Неделю назад я писал пост про Evolution Strategies. Напомню его область применения:

1) Есть не очень большое пространство параметров
2) Есть функция качества этих параметров, но нет доступа к каким-либо градиентам

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

3) Функцию качества очень долго и дорого считать

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

Именно здесь на сцену выходит Bayesian model-based optimization. Это целое семейство методов, но все они работают по примерно одному и тому же принципу:

1) Мы пытаемся аппроксимировать распределение P(objective | params)
2) Мы используем каждое наше измерение для обучения этой аппроксимации
3) Выбор следующих кандидатов происходит по-умному, балансируя между неисследованными областями в пространстве параметров и проверкой тех областей, в которых мы ожидаем получить хорошее значение функции

Исследуя всё больше и больше точек, мы получаем всё более точную аппроксимацию функции, как показано на картинке. Остаётся выбрать, каким образом моделировать распределение и выбирать кандидатов.

Один из вариантов, используемых на практике, выглядит так:

- При выборе следующих кандидатов мы максимизируем нечто похожее на "мат. ожидание" P(objective | params), но интеграл берётся только по "хорошим" значениям objective - это называется Expected Improvement
- Для оценки P(objective | params) мы формулу Байеса и переходим к моделированию P(params | objective), которое в свою очередь является композицией из двух распределений P(params) - для "хороших" значений objective и для "плохих" - эти распределения называется`L(params) и `G(params).
- В пунктах выше я упоминал "хорошие" и "плохие" значения. Порог, который их разделяет, выбирается как квантиль уже собранного нами множества значений objective.

При применении капельки математики получается, что Expected Improvement максимизируется в тех точках, в которых максимизируется` L(params) / G(params). Эти точки мы пытаемся найти, сэмплируя много раз из `L(params) и пересчитывая это соотношение. Вся эта схема называется Tree-structured Parzen Estimator.

Описанная процедура гораздо хитрее и тяжелее, чем Evolution Strategies, но всё это несопоставимо дешевле и быстрее, чем каждый подсчёт значения Objective(params). Таким образом, метод хорошо подходит для таких ситуаций, как оптимизация гиперпараметров обучения, и используется в качестве одного из основных в библиотеке Hyperopt.

Метод, конечно, не идеален - он не учитывает зависимости параметров между собой. Это может ограничивать область применения и мешать методу работать для оптимизации более запутанных схем. Бесплатные обеды, как обычно, не завезли.

@knowledge_accumulator
Действительно ли нам нужно больше людей?

Илон Маск любит писать и говорить о том, что в развитых странах происходит кризис рождаемости. С этим сложно спорить. Показатель в 2.1 ребёнка на женщину, поддерживающий количество людей в стабильном состоянии, достигается в коротком списке стран за пределами Африки. В США он достигает 1.7, в Европе 1.53, в Японии 1.26, в Китае 1.09, в Южной Корее аж 0.78.

Количество людей меняется по экспоненте, Показатель в 1 ребёнка на женщину обозначает уменьшение населения в 2 раза с каждым поколением, в ~16 раз за 100 лет. Не вымирание, но, тем не менее, выглядит пугающе.

Есть ли в этом рациональное зерно? Какая разница, миллиард нас, 10 или 100? Сегодня предлагаю обсудить плюсы, минусы, подводные камни увеличение населения Земли.

Так выгоднее
Очень большую часть экономики составляет производство идей и решений проблем. Начиная от разработки ML-алгоритмов и заканчивая съёмкой кино - всё это производится один раз, но затем можно распространять без дополнительных издержек. Если аудитория кино в 10 раз больше, это значит, что можно снимать в 10 раз более дорогой фильм, либо 10 разных фильмов, с таким же финансовым результатом.

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

Если бы нас было в 10 раз меньше, современных компьютеров бы скорее всего не существовало. А что могло бы существовать, если бы нас было в 10 раз больше?

Так веселее
Достаточно близко к предыдущему пункту, но хотелось бы проговорить отдельно - объём производимой культуры (в самом широком смысле) тесно связан с количеством людей. Это не только вопрос выгоды. Каждый человек - это результат большой цепочки маловероятных событий.

Чем нас больше, тем более разнообразные культурные явления становятся вероятными, тем более интересные персонажи появляются среди нас. Я не хочу жить в мире, в котором нет Кирилла Руки-Базуки, но он бы, скорее всего, не появился, если бы нас было в 10 раз меньше.

Помимо описанных 2 жирнющих плюсов увеличение населения имеет и издержки.

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

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

На сегодня такого ресурса нет. Как я уже писал ранее, мы находимся в ситуации энергетического изобилия, используя 10^-13 энергии Солнца. В то же время, проблем с местом у нас тоже нет - плотность населения Земли в среднем достаточно маленькая, а рост цен на жильё возникает в основном от того, что рынку не позволяют эффективно использовать имеющееся пространство. Но это тема для отдельного разговора.

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

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

@knowledge_accumulator
Covariance matrix adaptation evolution strategy - пример того, как делать ресёрч для людей, а не начальства

Две недели назад я говорил про базовый алгоритм из семейства Evolution Strategies. Сегодня мы посмотрим на CMA-ES - его улучшенную версию.

Область применения всё ещё та же - у нас есть пространство параметров и функция качества, которую мы хотим оптимизировать. Доступа к производным нет.

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

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

После того, как мы засэмплировали N шумов и посчитали качество итоговых точек, мы пересчитываем матрицу ковариации нормального шума таким образом, чтобы максимизировать вероятность выпадения тех шумов, которые привели к более высоким наградам.

Таким образом, мы "обучаем" направление эволюционного поиска. Автор утверждает, что это можно интерпретировать как Natural Gradient Descent - метод оптимизации второго порядка.

Второе улучшение, вводимое в алгоритм, заключается в использовании некоторого рода "моментов", называемых тут Evolution Paths. Очевидно, если мы много итераций подряд двигаем какой-то параметр в одну и ту же сторону, это значит, что нам можно начать двигаться быстрее в эту сторону.

Алгоритм математически нагруженный. Полностью разобраться в его устройстве за короткое время, в отличие от базового ES, не представляется возможным. Именно в таких обстоятельствах автор алгоритма - Nikolaus Hansen - поворачивается к человечеству лицом.

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

У алгоритма есть читаемая статья на вики, статья-туториал, страница с практическими подсказками и ссылками на реализации алгоритма на 8 языках, в том числе живой питон-репозиторий с кучей документации и элементарными примерами использования.

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

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

У CMA-ES ещё к 2009-му накопился список из более чем сотни применений. Данный алгоритм и сегодня используется как один из бейзлайнов в своей области применения, хоть и не является SOTA. Учитесь, салаги.

@knowledge_accumulator
Почему попасть в кредитное рабство оказалось отличным решением

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

Когда вы только спаунитесь в новой стране, местная банковская система ничего о вас не знает. Только спустя какое-то время после заведения дебетового счёта информация о вас прорастает в кредитные агентства. В этот момент я получил кредитный рейтинг Needs Some Work, что второй с конца из пяти.

Для людей из этой касты существуют специальные кредитки, самая популярная - Tesco Foundation Credit Card. Для её получения мне пришлось по бумажной почте отправлять в банк трудовой договор и заверенную у solicitor копию паспорта.

Мне дали кредитный лимит аж в 300 фунтов в месяц, то есть, для поднятия рейтинга мне нужно было тратить ~75 фунтов и выплачивать их вовремя. Всё это происходит автоматически, что-то типа подписки. Через 3 месяца меня повысили до OK.

Спустя пару месяцев проснулся Lloyds - мой зарплатный банк, посмотрел на всё происходящее и первый предложил мне взять карточку и у них. Среди них была Lloyds Bank World Elite Mastercard, которая стоит 15 фунтов в месяц, но за это даёт безлимитный Priority Pass - сильно дешевле, чем при покупке напрямую. Ну и кэшбэк. Запросил, дали лимит в 5к. Теперь можно жить в кредит!

Для рейтинга помимо того, что ты платишь в срок и не расходуешь весь лимит, важны 2 вещи - количество новых кредиток и общий лимит. Сразу после получения Lloyds-карты мне дали Good, а спустя полгода прошли оба штрафа за новые карты и мне наконец-то дали Excellent.

Машина и недвижка в кредит мне не нужны, но зато можно было бы взять карточку с самыми крутыми бенефитами, типа Barclaycard Avios Plus Card. Но, честно говоря, с учётом моих трат бонусы едва окупят комиссию.

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

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

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

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

Расскажите про ваш опыт кредитного рабства - удалось ли вам нагреть систему на копеечку засчёт провалившихся должников?

@knowledge_accumulator