Подглядев за Ваней (https://xn--r1a.website/adventures_somewhere), который сходил на митап любимого наси обоими блога ACX (www.astralcodexten.com), я нашел такой же в Лиссабоне. Лучшие полтора часа жизни за неделю. Наконец-то cнова оказался в привычном кругу интересных нердов, отчего и сам почувствовал себя интересным человеком. Была очень разная публика: один парень делает юридический софт на LLM, другой профессиональный игрок в покер, третий рисерчит что-то про то, как нам выживать в постапокалипсисе, а одна дама какой-то крутой юрист в эффективном альтруизме. Это конечно не калифорнийский weird ai safety sex cult, но все равно было прикольно
❤33👍5👏2
#обзор_статьи #ml
# Explaining grokking through circuit efficiency, Vikrant et. al
Я обожаю статьи где берут маленькую модель и изучают фундмантельные свойства нейронных сетей.
Статья про grokking: откуда он возникает. Grokking это явление, когда предобученная нейронная сеть сначала переобучается под тренировочные данные (трейн лосс идет вниз, а тест лосс идет вверх), а затем вдруг начинает обучаться обобщаемому решению (тест лосс идет вниз, трейн лосс остается маленьким). Раньше предполагалось, что происходит так: сначала нейронная сеть находит решение, которое идеально описывает трейн сет, а затем начинает под воздействием регуляризации перебирать разные решения, которые и описывают трейн сет, и имеют маленькую норму параметров. То есть нейросеть как бы ищет более простое решение задачи.
В этой статье авторы препарируют маленькую модель, чтобы разобраться в этом явлении.
Основная идея в circuits — механизмах, состоящих из множества нейронов, которые нейросеть использует для принятия решения. Грубо говоря circuit это набор нейронов, которые выполняют одну функцию. Например, предсказывают один класс (т.е. отвечают за один выходной логит). Подронее про circuits в моделях можно почитать на distil.pub в прошлых работах Chris Olah. Там довольно прикольно: например есть circuit отвечающий за распознавание Дональда Трампа в текстах и изображениях.
Авторы обнаруживают, что существует два семейства circuits. Первое, C_mem, запоминает тренировочный датасет. Второе, C_gen, изучает обобщаемое решение. C_mem зависит от количества данных. При добавлении одного примера в датасет C_mem приходится его запоминать, изменить решение и возможно сделать его чуть хуже. C_gen же имеет большую эффективность: при добавлении одного примера в датасет C_gen чаще всего предсказывает его верно и не меняется. Значит C_gen не может быть хуже C_mem, но чаще всего оказывается лучше. Таким образом достаточно обученный C_gen почти не зависит от размера датасета.
Эффективность C_gen авторы определяют следующим образом: норма параметров. C_gen выдает верные ответы на трейн сете, при этом норма параметров у него в среднем меньше, чем у C_mem. Таким образом C_gen может уменьшать оба компонента лосса одновременно: и лосс классификации и регуляризацию на норму весов.
С_gen обучается сильно медленнее, чем C_mem. Поначалу C_mem быстрее снижает лосс просто запоминая примеры, поэтому обучается первым. Однако с увеличением датасета оптимизатор отдает все больше предпочтения C_gen, т.к. тот получает решения с меньшей нормой параметров. При достижении некоторого критического размера датасета C_gen начинает “побеждать” C_mem из-за своей большей эффективности.
При размере датасета больше критического мы наблюдаем grokking. При размере датасета сильно меньше мы наблюдаем переобучение: C_mem имеет больший вес, трейн лосс идет вниз, тест лосс вверх. Наконец, при размере близком к критическому мы наблюдаем что-то среднее, близкое к типичному обучению модели: трейн лосс идет вниз, тест лосс выходит на плато
Если предположения авторов верны мы должны наблюдать два новых феномена:
* Ungrokking: при дообучении модели на маленьком датасете она начинает снова отдавать предпочтение С_mem и теряет способность к обобщению,
* Semi-grokking: при недостаточном количестве данных модель имеет схожие веса для обоих circuits, так что мы наблюдаем что-то среднее.
Чтобы подтвердить все это экспериментами авторы делают простую модель, где заранее задают C_mem и C_gen и наблюдают, как градиентный спуск меняет их веса. В качестве задачи используют сложение по модулю, а в качестве модели однослойный трансформер. В таком случае circuits представляют по сути lookup table для верных ответов, где C_mem содержит ответы для случайно сгенерированных данных, а C_gen верные ответы для настоящих данных.
Эксперименты подтверждают теорию, сейчас покажу картинки
# Explaining grokking through circuit efficiency, Vikrant et. al
Я обожаю статьи где берут маленькую модель и изучают фундмантельные свойства нейронных сетей.
Статья про grokking: откуда он возникает. Grokking это явление, когда предобученная нейронная сеть сначала переобучается под тренировочные данные (трейн лосс идет вниз, а тест лосс идет вверх), а затем вдруг начинает обучаться обобщаемому решению (тест лосс идет вниз, трейн лосс остается маленьким). Раньше предполагалось, что происходит так: сначала нейронная сеть находит решение, которое идеально описывает трейн сет, а затем начинает под воздействием регуляризации перебирать разные решения, которые и описывают трейн сет, и имеют маленькую норму параметров. То есть нейросеть как бы ищет более простое решение задачи.
В этой статье авторы препарируют маленькую модель, чтобы разобраться в этом явлении.
Основная идея в circuits — механизмах, состоящих из множества нейронов, которые нейросеть использует для принятия решения. Грубо говоря circuit это набор нейронов, которые выполняют одну функцию. Например, предсказывают один класс (т.е. отвечают за один выходной логит). Подронее про circuits в моделях можно почитать на distil.pub в прошлых работах Chris Olah. Там довольно прикольно: например есть circuit отвечающий за распознавание Дональда Трампа в текстах и изображениях.
Авторы обнаруживают, что существует два семейства circuits. Первое, C_mem, запоминает тренировочный датасет. Второе, C_gen, изучает обобщаемое решение. C_mem зависит от количества данных. При добавлении одного примера в датасет C_mem приходится его запоминать, изменить решение и возможно сделать его чуть хуже. C_gen же имеет большую эффективность: при добавлении одного примера в датасет C_gen чаще всего предсказывает его верно и не меняется. Значит C_gen не может быть хуже C_mem, но чаще всего оказывается лучше. Таким образом достаточно обученный C_gen почти не зависит от размера датасета.
Эффективность C_gen авторы определяют следующим образом: норма параметров. C_gen выдает верные ответы на трейн сете, при этом норма параметров у него в среднем меньше, чем у C_mem. Таким образом C_gen может уменьшать оба компонента лосса одновременно: и лосс классификации и регуляризацию на норму весов.
С_gen обучается сильно медленнее, чем C_mem. Поначалу C_mem быстрее снижает лосс просто запоминая примеры, поэтому обучается первым. Однако с увеличением датасета оптимизатор отдает все больше предпочтения C_gen, т.к. тот получает решения с меньшей нормой параметров. При достижении некоторого критического размера датасета C_gen начинает “побеждать” C_mem из-за своей большей эффективности.
При размере датасета больше критического мы наблюдаем grokking. При размере датасета сильно меньше мы наблюдаем переобучение: C_mem имеет больший вес, трейн лосс идет вниз, тест лосс вверх. Наконец, при размере близком к критическому мы наблюдаем что-то среднее, близкое к типичному обучению модели: трейн лосс идет вниз, тест лосс выходит на плато
Если предположения авторов верны мы должны наблюдать два новых феномена:
* Ungrokking: при дообучении модели на маленьком датасете она начинает снова отдавать предпочтение С_mem и теряет способность к обобщению,
* Semi-grokking: при недостаточном количестве данных модель имеет схожие веса для обоих circuits, так что мы наблюдаем что-то среднее.
Чтобы подтвердить все это экспериментами авторы делают простую модель, где заранее задают C_mem и C_gen и наблюдают, как градиентный спуск меняет их веса. В качестве задачи используют сложение по модулю, а в качестве модели однослойный трансформер. В таком случае circuits представляют по сути lookup table для верных ответов, где C_mem содержит ответы для случайно сгенерированных данных, а C_gen верные ответы для настоящих данных.
Эксперименты подтверждают теорию, сейчас покажу картинки
👍27❤8🔥5
Запускаем много раз обучение для разных размеров датасета. Для C_mem, чем больше датасет, тем больше норма параметров (тем “сложнее” решение). При этом логит становится не сильно больше, т.е. модель не становится увереннее в предсказаниях.
Для C_gen никакой структуры не наблюдается. При увеличении датасета норма параметров не меняется, т.к. модели не нужно запоминать новые примеры.
Для C_gen никакой структуры не наблюдается. При увеличении датасета норма параметров не меняется, т.к. модели не нужно запоминать новые примеры.
👍7❤3
При схожих весах для обоих circuits моделям требуется очень много времени, чтобы достичь высокого качества на тесте. Некоторые выходят на плато, а другие вообще не сходятся. Примечательно, что достаточно долгое обучение как правило приводит к идеальному качеству на тесте даже при маленьком датасете.
❤8
Для себя я сделал такие выводы:
* Нейросети способны изучать обобщаемые решения, т.е. они не просто статистические попугаи. Получается, что LLM вполне может строить настоящую модель мира, которая в пределе сходится к истине. Это так же подтверждается статьей, которую я не могу откопать, где модель играла в настольную игру, и покопавшись в ее мозгах ученые обнаружили, что она строит модель всей доски, а не только действий на шаг вперед.
* Существует критический размер датасета, который позволяет изучить обобщаемое решение. Если ты не наблюдаешь grokking, то или данных мало, или учишь недостаточно долго. К сожалению этот критический размер скорее всего очень большой.
* Внутри нейросети есть подсети, которые имеют обобщаемое решение. Было бы очень круто научиться их вытаскивать и выбрасывать все остальное. Вероятно мы увидим какой-то умный прунинг (умнее чем доступный сейчас), который позволит сжимать модели еще больше.
* Нейросети способны изучать обобщаемые решения, т.е. они не просто статистические попугаи. Получается, что LLM вполне может строить настоящую модель мира, которая в пределе сходится к истине. Это так же подтверждается статьей, которую я не могу откопать, где модель играла в настольную игру, и покопавшись в ее мозгах ученые обнаружили, что она строит модель всей доски, а не только действий на шаг вперед.
* Существует критический размер датасета, который позволяет изучить обобщаемое решение. Если ты не наблюдаешь grokking, то или данных мало, или учишь недостаточно долго. К сожалению этот критический размер скорее всего очень большой.
* Внутри нейросети есть подсети, которые имеют обобщаемое решение. Было бы очень круто научиться их вытаскивать и выбрасывать все остальное. Вероятно мы увидим какой-то умный прунинг (умнее чем доступный сейчас), который позволит сжимать модели еще больше.
👍53❤6🔥5🤔4
Ребята запускают курс для продактов. Когда-то я работал аналитиком продукта и учился на ходу. В то время мне бы пригодился такой интенсив, поэтому не жалко поделиться/порекламировать
🔥9👍2👎2
Планы на среду: прокачать SQL и расчет продуктовых метрик!
📣 20 сентября в 19:00 по Мск пройдет бесплатный live-интенсив по теме: “Расчет продуктовых метрик с помощью SQL”.
Мы проводили такой интенсив в прошлом месяце, но многие не успели на него записаться, а очень хотели — поэтому мы решили, почему бы не провести его еще раз 😍
А еще он очень понравился участникам, и мы собрали много положительного фидбека 💫
👉🏻 На live-интенсиве мы с вами подключимся к реальной облачной базе PostgreSQL и с помощью SQL рассчитаем основные продуктовые метрики онлайн-сервиса:
* Activation rate
* MAU
* ARPU и ARPPU
* другие метрики
На интенсиве вы узнаете:
◾️ Как используют SQL в реальной работе — вы сможете сохранить это в портфолио и показать на собеседовании: работодатель точно оценит 🤘🏻
◾️ Профессиональные фишки и лайфхаки SQL: мы копили их годами и хотим рассказать вам 😏
◾️ Как писать код на SQL, а также мы расскажем про продуктовые метрики — подробно объясним всё с нуля 😍
🔗 Регистрируйтесь по ссылке
Реклама. ООО АЙТИ РЕЗЮМЕ. Erid: LjN8KD9BM
📣 20 сентября в 19:00 по Мск пройдет бесплатный live-интенсив по теме: “Расчет продуктовых метрик с помощью SQL”.
Мы проводили такой интенсив в прошлом месяце, но многие не успели на него записаться, а очень хотели — поэтому мы решили, почему бы не провести его еще раз 😍
А еще он очень понравился участникам, и мы собрали много положительного фидбека 💫
👉🏻 На live-интенсиве мы с вами подключимся к реальной облачной базе PostgreSQL и с помощью SQL рассчитаем основные продуктовые метрики онлайн-сервиса:
* Activation rate
* MAU
* ARPU и ARPPU
* другие метрики
На интенсиве вы узнаете:
◾️ Как используют SQL в реальной работе — вы сможете сохранить это в портфолио и показать на собеседовании: работодатель точно оценит 🤘🏻
◾️ Профессиональные фишки и лайфхаки SQL: мы копили их годами и хотим рассказать вам 😏
◾️ Как писать код на SQL, а также мы расскажем про продуктовые метрики — подробно объясним всё с нуля 😍
🔗 Регистрируйтесь по ссылке
Реклама. ООО АЙТИ РЕЗЮМЕ. Erid: LjN8KD9BM
👎22👍7🔥3😈1
#лабораторный_журнал
Тихо праздную год в Planet Farms и чуть больше года в Португалии.
За это время я с нуля создал сервис, который принес в компанию компьютерное зрение, обрабатывает по 40к - 60к изображений в день, встроен в операции и собирает данные.
Теперь ML на паузе, я разрабатываю архитектуру Data Warehouse, придумываю Data Policies и всякое такое прочее. Придумал очень классную и, как мне кажется, неконвенциональную структуру для таблиц на основе Domain Driven Design. Но не буду рассказывать, потому что это явное нарушение NDA ( 🙁 ).
Жизнь не малина только по двум причинам: кажется мне недоплачивают за то какой я молодец (какой айтишник так не думает?) и мне не нравится в Португалии. К сожалению не зашло и это тяготит. Переход на удаленку практически невозможен.
Впереди новый проект включающий в себя одновременно робототехнику и детекцию. Говорят он откроет возможность производить новые продукты. Биздевы уже нашли тех, кто купит у нас фабрику, если все получится. Опять же из-за NDA не могу раскрывать подробности. Могу лишь сказать, что мне почему-то очень страшно, ведь я такого никогда и близко не делал. Но благо есть руководитель, который на этом собаку съел.
Тихо праздную год в Planet Farms и чуть больше года в Португалии.
За это время я с нуля создал сервис, который принес в компанию компьютерное зрение, обрабатывает по 40к - 60к изображений в день, встроен в операции и собирает данные.
Теперь ML на паузе, я разрабатываю архитектуру Data Warehouse, придумываю Data Policies и всякое такое прочее. Придумал очень классную и, как мне кажется, неконвенциональную структуру для таблиц на основе Domain Driven Design. Но не буду рассказывать, потому что это явное нарушение NDA ( 🙁 ).
Жизнь не малина только по двум причинам: кажется мне недоплачивают за то какой я молодец (какой айтишник так не думает?) и мне не нравится в Португалии. К сожалению не зашло и это тяготит. Переход на удаленку практически невозможен.
Впереди новый проект включающий в себя одновременно робототехнику и детекцию. Говорят он откроет возможность производить новые продукты. Биздевы уже нашли тех, кто купит у нас фабрику, если все получится. Опять же из-за NDA не могу раскрывать подробности. Могу лишь сказать, что мне почему-то очень страшно, ведь я такого никогда и близко не делал. Но благо есть руководитель, который на этом собаку съел.
👍64🔥26❤17😱2
Forwarded from Generative Anton
Нашёл еще лучшие практики.
Помимо собственно сообщения о том, что этот способ скоро перестанет работать, они вмёржили рандомайзер(!), который с 5%(!) шансом ронял ваш CI/CD билд. Интересно, сколько человекочасов было потрачено на исследование падений таких билдов (и сколько онкол инженеров было поднято из-за этого).
Это конечно кринж и лучше так не делать никогда. Еще лучше даже не думать о возможности так сделать (но теперь вы знаете, что так можно 🌚️️️️️️)
Proofs
poetry (лучший из всех худших пакетных менеджеров в Python-окружении) год назад решил сделать deprecation одного из способов установить poetry в CI/CD окружении. Помимо собственно сообщения о том, что этот способ скоро перестанет работать, они вмёржили рандомайзер(!), который с 5%(!) шансом ронял ваш CI/CD билд. Интересно, сколько человекочасов было потрачено на исследование падений таких билдов (и сколько онкол инженеров было поднято из-за этого).
Это конечно кринж и лучше так не делать никогда. Еще лучше даже не думать о возможности так сделать (но теперь вы знаете, что так можно 🌚️️️️️️)
Proofs
😁45👍1
# Catclysm: Dark Days Ahead
Многие здесь за профессиональным контентом, поэтому я редко пишу про игры. Но не спешите переключаться. Сегодня я расскажу про очень необычную игру, которая для меня входит в разряд значимых жизненных опытов, а не только развлечений. Для меня она во многих списках “самых самых”: самое большое количество контента, самый крутой реализм (часто через край), самая крутая RPG, и так далее.
Речь про open-source roguelike “Cataclysm: Dark Days Ahead.” Если одним предложением, то это чрезмерно реалистичный симулятор выживания в киберпанк постапокалипсисе с перманентной смертью и абсурдной свободой действий.
Я без преувеличения играю в нее уже десять лет (помню как будучи junior javascript разработчиком тайком играл в нее на работе, не надо так). Не постоянно конечно. Игра разрабатываетсяорганизованной группой психов open-source контрибьюторами, некоторые из которых работают над игрой каждый день последние десять лет. Раз в несколько месяцев игра изменяется, пополняется контентом, делится на форки. Я периодически возвращаюсь и залпом проглатываю все, что появилось с моего последнего визита, и, наигравшись, оставляю игру снова.
Короткой серией постов расскажу, что в этой игре такого интересного.
Многие здесь за профессиональным контентом, поэтому я редко пишу про игры. Но не спешите переключаться. Сегодня я расскажу про очень необычную игру, которая для меня входит в разряд значимых жизненных опытов, а не только развлечений. Для меня она во многих списках “самых самых”: самое большое количество контента, самый крутой реализм (часто через край), самая крутая RPG, и так далее.
Речь про open-source roguelike “Cataclysm: Dark Days Ahead.” Если одним предложением, то это чрезмерно реалистичный симулятор выживания в киберпанк постапокалипсисе с перманентной смертью и абсурдной свободой действий.
Я без преувеличения играю в нее уже десять лет (помню как будучи junior javascript разработчиком тайком играл в нее на работе, не надо так). Не постоянно конечно. Игра разрабатывается
Короткой серией постов расскажу, что в этой игре такого интересного.
cataclysmdda.org
Cataclysm: Dark Days Ahead
Official homepage of Cataclysm: Dark Days Ahead open source turn-based survival RPG development project. Hosts downloads of game and links to community sites...
🔥20👍1😁1😢1
## Символы
Сразу про слона в комнате. Это игра из классических Roguelike, а значит графика выглядит так, как на первом скриншоте.
Разве не видите? Это ночной лес, вон там человек, яма, деревья, кусты. Немногие поймут, в чем же тут дело)))
Это олдовый вариант, с которого я начинал играть. Сейчас уже завезли tileset-ы, которые заменяют СиМвОлЫ на картинки. На втором скрине тот же самый ночной лес, но уже с тайлсетом.
Но я бы всем советовал прочувствовать игру в оригинале. Сначала играть так чрезвычайно тяжело. Затем мозг привыкает и распознает объекты. На последней стадии вы уже не замечаете символов, потому что мозг берет на себя рендеринг и делает его прямо в воображении.
Отсутствие нормальной графики дает игре огромное преимущество: порог для разработки контента максимально низкий. Хочешь добавить монстра? Найди неиспользованную букву на клавиатуре. Но самое главное запрограммируй его. Таким образом игра жертвует графикой в пользу геймплея и разнообразия. В результате в игре есть такие механики, которых не встретишь нигде больше. Аналогичная история с более известным представителем жанра игр для поехавших, Dwarf Fortress.
Сразу про слона в комнате. Это игра из классических Roguelike, а значит графика выглядит так, как на первом скриншоте.
Разве не видите? Это ночной лес, вон там человек, яма, деревья, кусты. Немногие поймут, в чем же тут дело)))
Это олдовый вариант, с которого я начинал играть. Сейчас уже завезли tileset-ы, которые заменяют СиМвОлЫ на картинки. На втором скрине тот же самый ночной лес, но уже с тайлсетом.
Но я бы всем советовал прочувствовать игру в оригинале. Сначала играть так чрезвычайно тяжело. Затем мозг привыкает и распознает объекты. На последней стадии вы уже не замечаете символов, потому что мозг берет на себя рендеринг и делает его прямо в воображении.
Отсутствие нормальной графики дает игре огромное преимущество: порог для разработки контента максимально низкий. Хочешь добавить монстра? Найди неиспользованную букву на клавиатуре. Но самое главное запрограммируй его. Таким образом игра жертвует графикой в пользу геймплея и разнообразия. В результате в игре есть такие механики, которых не встретишь нигде больше. Аналогичная история с более известным представителем жанра игр для поехавших, Dwarf Fortress.
👍24🤔2😁1