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

Knowledge Accumulator

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

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

Парадокс спящей красавицы

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

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

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

Какова вероятность, что выпал орёл?

С одной стороны, когда вас будят и спрашивают, вы не узнаёте никакой новой информации, и поэтому вероятность выпадения остаётся априорной - 1/2

С другой стороны, рассмотрим 3 возможных ситуации, в которой вы оказались - (орёл, понедельник), (решка, понедельник) и (решка, вторник). Все из них равновероятны с перспективы только что проснувшегося человека, и только в трети случаев на самом деле выпал орёл. Значит ответ - 1/3

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

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

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

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

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

@knowledge_accumulator

25.04.2024 / 10:04

ChessGPT - есть ли модель мира у языковой модели?

В этих двух блогпостах автор исследует наличие "модели состояния" у языковой модели, обученной на шахматных партиях, записанных в виде PGN (1.e4 e5 2.Nf3 …).

50 миллионов параметров и 16 миллионов игр с lichess уже достаточно, чтобы она умела играть лучше 90% игроков. Как нам получить прямое свидетельство того, что модель внутри хранит состояние доски?

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

Такой подход успешно предсказывает 99.2% клеток, значит, информация о состоянии всей доски у такой модели есть. Но так можно предсказывать не только доску. Автор учит линейную модель предсказывать - это игра с рейтингом <1500 или >2000 (остальные выкидываем)? Результат - 89%.

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

И всё-таки, есть ли модель мира у языковой модели?

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

У системы внутри есть всё, что помогает решению задачи - "модель мира", "модель игрока". Есть ровно в той степени, которая нужна для минимизации ошибки - x% модели среды, y% модели игрока и даже z% модели качества интернета для предсказания внезапного конца игры.

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

@knowledge_accumulator

23.04.2024 / 10:04
18.04.2024 / 16:04

Деградация - это норма

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

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

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

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

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

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

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

@knowledge_accumulator

18.04.2024 / 10:04

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
Отзывы: - 0
Поделитесь вашим мнением! Оставьте отзыв:

Похожие

Избранное