Премиум каналы

Knowledge Accumulator

Реалистичный взгляд на технологии. В основном про ML, но иногда не только.

Последние публикации с канала

Fuck you money - что это такое и сколько это?

Почти
все слышали про такой термин, и он закрепился как некое "такое большое количество денег, чтобы можно было не работать". Но сколько это?

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

1) Вы тратите в год постоянную сумму денег всё дальнейшее время, с поправкой на инфляцию. Назовём её M
2) Ваши деньги сложены в самом эффективном инвестиционном инструменте - S&P500, и вы не занимаетесь активным менеджментом портфеля

Итак, вопрос - сколько M вы должны проинвестировать, чтобы держаться на плаву? Данный вопрос изучали в так называемом Trinity Study - исследователи случайно выбирали год и симулировали стоимость портфеля на протяжении K лет.

Существует "популярный ответ" - 25M. Если вы будете снимать 4% от вашего изначального портфеля, то с вероятностью 98% через 30 лет вы останетесь с положительным количеством денег. Однако, если вы планируете на ещё больший промежуток времени и на 100%-ный шанс успеха - имеет смысл опустить траты до 3%, то есть вам нужно 33M, или 400 месячных расходов.

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

Но как заработать такие деньги? Здесь ваш успех сильно завязан на ваш Saving Rate - долю денег, которую вы не тратите. Если он составляет около 50% - вам нужно откладывать около 12-15 лет (а не 25-33), с учётом роста самого индекса.

Звучит небыстро. Но всё-таки, если вы зафиксируете свои траты в 30 лет, и будете постепенно расти в доходах, увеличивая Saving Rate до 60-70% - уже в 45 лет, в полном расцвете сил (если вы не угробили себя), у вас будет возможность заниматься тем, чем хотите, несмотря на деньги. Разве это не прекрасно?

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

@knowledge_accumulator

11.04.2024 / 11:04

Почему внедрять рекомендательные системы - это кошмар, на маленьком примере

Многие
знают парадигму Learning to Rank - это когда у нас есть модель, которая предсказывает для пары (пользователь, документ) число - меру релевантности. По ней можно отсортировать и выдать пользователю результат.

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

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

Можно встретить всё из этого одновременно:

1) Ко всем объектам какого-то одного типа (например, картинкам) прибавляется 0.34
2) Все предсказания, обладающие какой-то характеристикой, умножаются на 1.5
3) Правило пятилетней давности, которое, почему-то, если предсказание меньше -0.1, умножает его на -3, которое никогда уже не применяется

Ваша новая модель выдаёт скоры в диапазоне [-0.4, -0.3], а вот прод выдаёт от 1 до 10. В итоге эти костыли вас заживо съедают.

Как с этим жить?
1) Дышите ровно, спокойно. Такие вещи нужно воспринимать как полноценную часть работы, а не как временную помеху.
2) Поспрашивайте у других про все эти правила, соберите список
3) Поймите, какими характеристиками должны обладать предсказания вашей модели для корректной работы правил? Например, они должны лежать в диапазоне [x;y], обладать дисперсией a, средним b
4) Составьте свой набор костылей, который приводит предсказания вашей модели в нужный вид
5) Вы восхитительны!

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

@knowledge_accumulator

09.04.2024 / 10:04

SIMA [2024] - геймеры больше не нужны?

Deepmind продолжает свои попытки обучить суперагента на большом количестве сред одновременно. Рассмотрим подробнее данный подход.

Команда собрала вручную датасет на ~10 средах, на которых просили людей выполнять определённые действия, записывая текст этих просьб. В среды входили как реальные игры (Satisfactory, Goat Simulator 3), так и ресёрчерские среды, такие, как WorldLab.

Обучали через behaviour cloning - то есть копировать поведение, наблюдаемое в данных. Модель получает на вход языковую инструкцию, визуальный вход с экрана, а пространством действий является мышка и клавиатура - то есть всё приближено к "человеческому" формату. Авторы фокусировались на кратких "заданиях" около 10 секунд, описанных на картинке.

Несмотря на видимый профит от тренировки на большом кол-ве данных и использования претренированных энкодеров текста и картинки, алгоритм сильно проигрывает человеку. В игре No Man’s Sky человек выполняет 60% заданий, тогда как SIMA около 30%. На длинных инструкциях, думаю, ситуация была бы сильно хуже.

Авторы отказываются от "games containing harmful content such as extreme violence or biases". Так что модель не учили играть в стрелялки, а о каких опаснейших bias-ах может идти речь - не знаю, пишите свои идеи в комментариях. Мне кажется, это печально, что вне LLM тоже поддаются этой шизофрении про риски, надеюсь, что шахматы не признают слишком расисткой игрой для AI.

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

@knowledge_accumulator

05.04.2024 / 09:04

Вещи, которые я бы хотел, чтобы мне объяснили раньше

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

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

Тратьте как можно больше времени на университетское образование
Получение красного диплома, кандидата наук в топовом месте - это выгодная инвестиция в ваше будущее. Университет - это лучшая школа жизни, и лучше быть к ней максимально готовым, начиная карьеру в 25-27 лет.

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

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

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

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

Пишите в комментариях о своём самом важном приобретённом опыте, может быть, он пригодится всем остальным!

@knowledge_accumulator

01.04.2024 / 10:04

Что существует вместо сознания и реально должно вас волновать

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

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

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

Это поднимает крайне важную проблему - что определяет вашу идентичность? Если вас не скопируют, а разберут на атомы, переместят в другое место и соберут заново - ваша идентичность будет, скорее всего, разрушена? Если будут перемещать нервную систему - скорее всего, вы останетесь собой? А если только мозг? Отделы мозга?

В отличие от бессмысленного вопроса "Есть ли у языковой модели сознание?", у этой проблемы есть реальный практический смысл. И касается он нашего бессмертия.

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

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

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

Очень хочу почитать ваши мнения в комментариях, прошу не стесняться!

@knowledge_accumulator

26.03.2024 / 11:03

Language Agents as Optimizable Graphs [2024] - обучаем надстройку над LLM

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

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

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

1) Рёбра оптимизируем с помощью REINFORCE. Граф генерируется случайно, и вероятность каждого ребра задаётся вероятностью-параметром p. С помощью REINFORCE по этим вероятностям можно оптимизировать недифференцируемую итоговую производительность графа на задаче.
2) Промпты у вершин оптимизируется через ORPO. Для каждой вершины оптимизация независима. Это имеет смысл в данном случае, т.к. функция вершины определена заранее и подаётся на вход оптимизатору.

Графы обучаются не с нуля, их "инициализируют" какой-то известной схемой (например, несколько Tree of Thoughts) и дальше "дообучают". Нельзя сказать, что у агента есть большой простор для оптимизации, однако, это уже лучше, чем зафиксированные вручную схемы. Ждём более хитрых и гибких параметризаций такого языкового агента, в которых набор вершин тоже будет оптимизироваться, а назначение каждой отдельной вершины не будет задано заранее.

@knowledge_accumulator

21.03.2024 / 15:03

Почему GPT-X это не первый самолёт

Коллеги недавно упоминали эссе, разбирающее вот этот аргумент против скорого изобретения человеческого интеллекта: Интеллект придумала природа, и мы не знаем, как он работает, следовательно, мы не близки к его изобретению.

Автор утверждает, что может существовать некий "объективный" фактор, который при доведении до определённого значения переворачивает игру, делая нерелевантным конкретный дизайн. Приводится аналогия с изобретением полёта:

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

Мало того, что неочевидно, что является таким фактором, так мы ещё и не сходимся в том, что именно хотим изобрести. Пока рассмотрим популярную точку зрения:

Цель - уметь выполнять все те функции, что и человек (или конкретный список функций); фактор - вычисления

Её сторонники, видимо, полагают, что мы ещё не достигли нужного значения фактора. Но, во-первых, непонятно - а как именно мы сравниваем с мозгом компьют? Когда можно будет сказать, что метод совсем не работает? Не всё, если дать ему много компьюта, будет обладать интеллектом.
А во-вторых, с таким фактором встаёт проблема прототипирования. Чтобы построить свои первые самолёты из говна и палок, братья Райт не тратили миллиарды долларов. Непонятно, насколько возможно изобретать сразу на таких масштабах, тратя безумные ресурсы и время на проверку одной итерации. При этом, в обозримом будущем нельзя будет в гараже обучить GPT-4 за неделю. Так что это всё может растянуться надолго.

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

@knowledge_accumulator

20.03.2024 / 11:03

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

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

P.S. Вариант "за Путина" не перечислил, потому что, во-первых, его фанаты не умеют читать, а во-вторых, обезьянам в зоопарке не дают пользоваться телеграмом.

16.03.2024 / 20:03

Large Language Models as Optimizers [2023]

Формулировка промпта серьёзно влияет на качество работы LLM. Именно здесь был найден тот самый "Take a deep breath and work on this problem step-by-step", дающий хорошую производительность. Попробуем разобраться в этой работе.

Авторы формулируют технику Optimization by PROmpting (OPRO), использующую LLM в качестве оптимизатора. На вход модели подаётся следующее:
1) Мета-промпт - описание, что и зачем оптимизируем. Вся полезная информация о задаче.
2) Пары "решение - скор". В ходе оптимизации будут генерироваться новые кандидаты. Все кандидаты сортируем по скору и добавляем топ лучших пар в этот вход

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

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

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

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

@knowledge_accumulator

12.03.2024 / 12:03

На какой лосс учить рекомендательную систему?

В рекомендациях доминирует парадигма "Learning to Rank" - учится модель, получающая на вход (пользователь, контекст, документ) и выдающая число - предсказание релевантности, по которому потом сортируем.

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

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

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

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

Самый простой пример - Pair-Wise Logloss. Идея - вместо предсказании метки класса будем формировать пары из документов внутри одной выдачи с разными значениями отклика, и logloss применять к разнице логитов - предсказывать в качестве класса "порядок". Можно по-разному обучать эти разницы логитов, на картинке другой пример - PairwiseLogisticLoss. Больше примеров здесь.

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

@knowledge_accumulator

07.03.2024 / 10:03

REINFORCE - главное оружие против недифференцируемых задач

Все мы в жизни сталкиваемся с ситуациями, когда есть какая-то функция полезности J, зависящая от параметров Theta. Если можно посчитать производную, то мы в шоколаде - пользуемся градиентным спуском. Но что, если нет?

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

Тут-то и появляется REINFORCE / Policy Gradient. На картинке вывод формулы, сразу же применённый к ситуации, когда действий несколько и они составляют траекторию - tau. Буквой pi обозначается распределение действий A - его и называют стратегией (policy).

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

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

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

@knowledge_accumulator

05.03.2024 / 11:03

Knowledge Accumulator pinned «Об авторе Пора сделать новый закреп для новоприбывших. Каналу как раз почти исполнился год, с тех пор очень многое изменилось, но старый закреп хочется оставить в роли исторического артефакта. Я (@Fritx) зарабатываю на хлеб в роли Senior ML Engineer в x.com.…»

02.03.2024 / 13:03

Об авторе

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

Я (@Fritx) зарабатываю на хлеб в роли Senior ML Engineer в x.com. Занимаюсь внедрением новых ML-технологий в его рекомендательную систему, временами пишу про эту область.

Помимо рекомендаций, в ML меня интересует в основном развитие интеллекта, как такового, а не какие-то приложения. Здесь почти нет обзоров самых хайповых статей по LLM и диффузионным моделям, зато есть про RL, meta-learning и всё то, что помогает лучше понять суть интеллекта.

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

Приятного чтения!

02.03.2024 / 13:03

Почему никакого сознания не существует

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

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

Если сознание присутствует в симулируемом мозге, оно уже теряет некую загадочность и шарм, не находите? Оно является просто частью процесса обработки информации, которой является человеческий мозг. Теперь самое интересное - какую именно наблюдаемую функцию человека выполняет сознание? Постановка задач? Любопытство? Учитывание своего присутствия при планировании поведения? Всем этим давно обладают RL-алгоритмы. Обладают ли RL-алгоритмы сознанием? Кто-то скажет, что да, но такой нагруженный термин, как сознание, в данном случае лучше заменить конкретной функцией, к которой вы его приравниваете.

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

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

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

@knowledge_accumulator

29.02.2024 / 11:02

Наука о персептронах

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

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

MaskNet [2021]:

output = Relu(W3 x ((W2 x (Relu(W1 x input + B1)) + B2) * input) + B3)


DCN-V2 [2020]:
output = model_input * (W x layer_input + b) + layer_input


GDCN [2023]:
output = model_input * (W1 x layer_input + b1) * Sigmoid(W2 x layer_input) + layer_input


У этих всех бойцов есть и лидерборд (в нём лидирует как раз GDCN), там таких статей ещё 33:
https://paperswithcode.com/sota/click-through-rate-prediction-on-criteo

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

@knowledge_accumulator

22.02.2024 / 12:02

Чё там в Лондоне

Пока у меня первые дни на новом рабочем месте и не до глубокомысленных рассуждений, скажу пару слов про Лондон.

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

- Вы найдёте здесь много потрясающих ЖК, возле которых будет и фонтан, и огромная ТЦшка, всё вокруг будет очень красиво и безопасно, и при этом в получасе от центра. Заплатить за это придётся немало - не меньше 2к долларов в месяц за студию.
- Везде в супермаркетах огромное количество качественной готовой еды. Стоит это не особо дорого - долларов 5-8. Для хейтеров готовки типа меня это потрясающая возможность никогда не прикасаться к плите, при этом не мучаясь с доставкой и ожиданием в кафе.
- Количество развлечений и мероприятий зашкаливает - все воюют между собой за ваши лишние фунтики. Вам не будет здесь скучно, можно забивать свой график до отказа очень качественным досугом на любой вкус. Хорошей еды в ресторанах полно - но это уже от 20 долларов.

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

Помимо всего этого, после жизни в РФ и года скитаний по миру в глаза бросается комфорт легальной принадлежности к экономике первого мира - когда у тебя есть нормальное резиденство, постоянный адрес и т.д., можно завести нормальный счёт в банке и у брокера, заказывать амазон, посылки, и твоя квартира найдётся прямо в выпадающем списке при вводе индекса - больше никакой головной боли от попытки понять, что такое Address Line 1/2, как правильно написать транслитом твою улицу.

Конечно, в UK есть свои минусы, главный лично для меня - это, естественно, огромные налоги (около 40%), ну и от моего политического идеала эта страна далека. Однако, на текущий момент я очень доволен той жизненной ситуацией, которая складывается.

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

21.02.2024 / 09:02

Главное, что мы должны делать в такие моменты - это копить ненависть и перенаправлять её в продуктивное русло. Желаю вам научиться этому.

16.02.2024 / 12:02

Mastering Diverse Domains through World Models [2023] - как ещё можно быстро учить в RL

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

Я уже писал про EfficientZero - внука AlphaZero, делающего поиск по дереву предсказанных "скрытых состояний" среды. Сегодня поговорим про другой подход, называемый Dreamerv3.

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

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

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

2) Actor Critic Learning
Имея на руках модель среды, мы можем генерировать те самые воображаемые траектории состояний вместе с действиями и полученными наградами. К ним применяется Actor-Critic лосс - один из базовых RL-ных способов обучения агента.

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

@knowledge_accumulator

15.02.2024 / 16:02

Только AI поможет нам понять самих себя

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

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

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

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

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

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

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

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

@knowledge_accumulator

12.02.2024 / 13:02

Почему я собираюсь брать кредит на еду после переезда в Лондон

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

Раньше я думал, что кредиты работают примерно так:
1) Вы берёте у банка фиксированную сумму денег
2) Для вас строят расписание возврата с процентной ставкой немного выше ставки по вкладам
3) Если вернёте вовремя, вы в небольшом минусе, иначе вас похищают и пытают коллекторы

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

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

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

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

В скором времени планирую затестить кредитную систему в UK, взяв такую карточку, посмотрим, правда ли это так работает :)

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

@knowledge_accumulator

08.02.2024 / 17:02
Отзывы: - 0
Поделитесь вашим мнением! Оставьте отзыв:

Похожие

Избранное