Интересное что-то
522 subscribers
2.72K photos
253 videos
140 files
4.53K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
Forwarded from NLP Wanderer
Пока я готовлю некоторый основательный материал по распределенному обучению (вот, теперь я вам его пообещал, придется сделать...), можете посмотреть отличную библиотеку picotron с реализацией 4-D параллелизма на чистом torch.distributed от Huggingface,

Кроме того, это все сопровождается ongoing серией видео-туториалов от основного разработчика на его канале [ссылка на плейлист].

А еще есть более хардкорная версия 3-D параллелизма - nanotron, так же от HF.
Forwarded from rizzearch
Lightning Attention-2: A Free Lunch for Handling Unlimited Sequence Lengths in Large Language Models

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

при том второй аттеншн не абы какой, а лайтнинг (не тот слава Богу). в минимаксе используется первая версия, а почти одновременно с этой моделькой успела выйти и вторая версия

в чем вообще суть - вот у нас есть

softmax(Q @ K^T) @ V, где иннер продукт между запросами и ключами выдает матрицу seq_len x seq_len, что довольно много

→ приходит в голову идея линеаризовать аттеншн, то есть делаем просто из softmax(Q @ K^T) ~= phi(Q) @ phi(K^T) ⇒ [phi(Q) @ phi(K^T)] @ V, что можно переписать как из left product в right product

phi(Q) @ [ phi(K^T) @ V ], где не будем напрямую высчитывать seq_len x seq_len матрицу, а будет только hidden_dim x hidden_dim. profit?

не совсем, когда в дело приходит понятие каузальности, ибо тогда формула становится (phi убрал для удобства) снова left product

[Q @ K^T * causal_mask] @ V

снова получаем seq_len x seq_len момент, это дело можно исправить алгоритмом Linear Attention Right Product (на предпоследней фотке), но тогда встревает кумулятивная сумма, которую не распараллелить

ну и авторы довольно красивое решение предлагают в виде того, что как раз и называется Lightning Attention

- во-первых, го вычислять аттеншн по блокам, по которым и будет идти цикл как обычно
- а в каждом блоке будем одновременно вычислять аттеншны и первым, и вторым способом: через left product с каузальной маской будет вычисляться intra block (как я понял потому что он находится рядом с диагональными элементами как раз, где и нужна каузальная маска), а через right product inter block (который/которые не соприкасаются с диагональю и можно без каузальной маски их использовать, да еще и этот блок вычислить можно через накопленную кумулятивную сумму KV), а в конце просто просуммируем, не забыв обновить KV
- тут получаем трейдофф между лево- и правоматричным умножениями, который еще и к тому же нетяжело под хардвейр оптимизировать - перетаскивать поочередно блоки между High Bandwidth Memory & SRAM (последняя картинка для иллюстрации отсюда, по всем правилам - чем больше по памяти вмещается, тем медленее работает)

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

реализовано все на тритоне, метод в принципе применим не только к их ТрансНормеру

👀 link, code
Forwarded from epsilon correct
По случаю китайского нового года наши китайские товарищи подсуетились и выпустили сразу три интересных релиза. Хотелось бы собрать их в один пост, и заодно поспекулировать про наших слоняр китов DeepSeek.

Начнём с MiniMax-01 – первой сильной открытой модели с контекстным окном в 4 миллиона токенов. Напомню, что до этого рекорд держал наш Gemini Pro 1.5 с 2 миллионами, конкуренты ограничивались 100-200 тысячами. MoE архитектура, 456 миллиарда параметров, из них 46 активированных. По перформансу – облегчённая LLaMa 405b, но сильно шустрее. Прорывов по бенчмаркам особых нет, просто хорошая модель.

Продолжим не по порядку выпуска (чтобы подписчикам жизнь мёдом не казалась): вчера Alibaba анонсировал доступную пока только по API Qwen 2.5 Max. Пост на детали скуп, но поигравшись с интерфейсом на HuggingFace можно понять, что перед нами – сырая большая модель на 500-800 миллиардов параметров. Выглядит, как сигнал о том, что сильные базовые модели у Alibaba тоже есть.

Наконец, DeepSeek R1, про который не написал разве что ленивый. Самое удивительное в повальной волне хайпа в том, что результаты этой модели абсолютно предсказуемо вытекают из выпущенной в декабре DeepSeek-v3. Модель на 37 млрд. активированных из 671 млрд. параметров примерно соответсвует Gemini 1.5 Pro 002 в математике и общих знаниях на английском, но опережает в программировании (хоть до короля Sonnet 3.5 и не дотягивает). Вроде ничего особенно удивительного, компания много итерировала над моделями-специалистами для кода, перформанс на остальных бенчмарках не вызывает удивления.

На основе v3 выпустили "рассуждающую" модель R1, которая сильно подрезала по цене O1 от наших любимых конкурентов. Бенчмарки на уровне O1, цена – более чем в 10 раз меньше; помимо выпуска весов DeepSeek достаточно подробно описали весь свой пайплайн с довольно интересным устройством обучения с подкреплением. На первое время ещё и доступ оставили бесплатным – что на сайте, что в приложении. По бенчмаркам – примерно на уровне 2.0 Flash Thinking и O1, но открытые веса сделали своё дело и модель получила очень много пиара. Ответит ли чем нибудь OpenAI, Google и Anthropic? Скорее всего, скоро получим ответ.

Теперь про цену обучения – многие сми тиражируют стоимость затрат на обучение, составившую в сумме $5.5 миллиона. Я хочу объяснить, что в целом это не сильно неожиданная цифра: например, про неё отлично написал Дарио Амодей (CEO Antropic): инновации в архитектуре и процессе обучения делают обучение эквивалентных моделей менее затратным. Только вот вместо того (или вместе с тем), чтобы выпускать сверхдешёвые модели мы продолжаем увеличивать размер моделей, потому что ценность более способных моделей чаще всего сильно выше, чем у дешёвых, но менее способных. Как мне кажется, единственные акции, которые должны были упасть – это акции меты, ведь можно оценить что на тренировку LLaMa 405b они не так давно потратили ~$50 миллионов. Для сравнения, не очень успешная в тренировке LLMок компания DataBricks тренировала MoE модель с очень близкими 36 млрд. активированных параметров за $10 млн.

Почему на релиз классной, но не выдающейся открытой модели так бурно отреагировал мир? Мне кажется, хороший аналитический фреймворк представлен в книге "The Revolt of the Public and the Crisis of Authority in the New Millennium" Мартина Гурри. В ней представлен конфликт элит и "периферии", которые с развитием интернета и других современных технологий получили доступ к инструменам самоорганизации, получения, и распространения информации, которые раньше контролировались элитой. В результате – стойкая неприязнь к правительству, цепочка "фейсбучных революций", избрание Обамы и, затем, Трампа, фейк ньюз, ковидные конспирологические теории и вот все наши славные 2020е. Неприязнью к "элитным" провайдерам сильных LLMок, которые не делятся весами и способами тренировки, как мне кажется, и можно объяснить грохот в новостях. Кстати, доступ к передовым знаниям почти в любой области, как мне кажется, сильно недооценённый фактор будущего подрыва доверия к науке – ведь скоро каждый сможет проверить заявления экспертов.
ТОП 5 навыков системного аналитика в 2025

Сегодня поговорим о том, что учить аналитикам в 2025 году

Собрал информацию с технических собеседований на позицию системного аналитика и рассказал какие темы стоит повторить перед тем как идти на собеседование 🚀

Приятного просмотра 📺

Сохраняйте видео и делитесь с теми, кто планирует менять работу в 2025 📈

Не забывайте подписываться на канал и ставить пальцы вверх 🤍

📌 Telegram
📌 YouTube
📌 Мой курс по UML
📌 Консультации и менторство
Forwarded from 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
Forwarded from 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
👨‍💻 Нетипичные SQL-запросы

Какого было мое удивление 4 года назад, когда я устроился на стажировку аналитиком и выяснил — оказывается, мне не нужно писать хитрые SQL запросы, как на тогда еще популярном задачнике sql-ex.ru

Большинство задач закрывается следующим набором:
WITH (CTE), GROUP BY, COUNT, SUM и LEFT / INNER JOIN


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

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

Мне нужно было посчитать кол-во событий Х за каждый день из одной таблицы. Проблема в том, что данные были не за каждый день, а выводить нужно статистику по каждому дню (и для дней, в которых событий не было — показывать 0).

Тогда я узнал, что в SQL существуют рекурсивные запросы. С их помощью можно легко создать таблицу, в которой будет 1000 строк от 1 до 1000 или вывести все дни за 2024.

Вот так можно создать табличку, в которой построчно хранится каждый день января 2025 года:
with recursive days as (
select cast('2025-01-01' as date) as day_dt
union all
select day_dt + 1
from days
where day_dt < cast('2025-01-31' as date)
)
select
day_dt
from days
order by day_dt
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from ChillHouse (Alexey Moiseenkov)
Достаточно показательные данные о том, сколько процентов нужно отдавать всяким адвайзерам и советникам в вашем стартапе.

Не более 1% человеку и всего обычно не более 2-3% так сказать на всей дистанции.