Гречневые мысли
1.27K subscribers
167 photos
3 videos
118 links
Хочу гречку с молоком и сахаром...

Автор: @chameleon_lizard
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Как играет Qwen-3-VL-8B-Thinking.
3👍2
Пример ризонинг трейса от Соннета.
👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Купил себе ARC Raiders, одна из самых кайфовых частей игры — это перестрелки с роботами. Они выглядят и двигаются очень реалистично: дроны при отстреливании одного из четырёх движков временно теряют управление и с трудом восстанавливают равновесие, роботы-павуки реалистично переступают через препятствия и меняют походку, если отстрелить им ногу и так далее.

Сегодня я узнал почему — оказывается, авторы при разработке вместо анимирования руками использовали для этого RL. Круто!
🔥127
Не пишу про новые модели, потому что yet another model — но сегодня случай особый. Над этой моделью я работал.

Выложили с ребятами GigaChat 700B Ultra Preview и GigaChat 10b Lightning в опенсорс. Архитектурно это Deepseek V3, так что поддержка из коробки будет почти везде. Из прикольного:

- Обе модели sparse MoE, так что бегать они будут очень быстро и, скорее всего, очень дёшево.
- Насколько я знаю, Lightning — это единственный Deepseek V3 в таком маленьком размере. С MTP по скорости он примерно равен Qwen-3-1.7B, а по мощности примерно равен (а где-то даже чуть получше!) чем GigaChat 2 Lite и Qwen-3-4B.
- 700B очень здоровая. Я задолбался её разворачивать — пришлось занять аж четыре ноды (хватило бы и трёх, но замеров гонять надо было очень много). Но это крутой и довольно уникальный опыт, было интересно, хоть и больно.
- Реальное обучение ллмок (по крайней мере, на примере гигачата и, по крайней мере, этап сфт, которым я занимался) сильно отличался от моих представлений об этом. Этапов обучения больше, нюансов очень много и от общепринято-опенсорсного "перегенерить альпаку через что-то побольше и бахнуть сфт" процесс сильно отличается*. Советую почитать хабр.
- Если очень повезёт, этот релиз станет Flash 2.0 moment для русских ллмок. Дешёвые модели, которые хорошо решают бизнес задачи это очень здорово, так что надеюсь, что они будут кому-то полезны. А после того, как мы их допилим и ультра перестанет быть превью, так вообще будет сказка.

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

Веса
Гитхаб

*Например, вы знали, что Qwen-3-Base это не базовая версия и что она знает квеновский темплейт?)
**На самом деле даже не везде. В одном из невыложенных замеров Ultra обошла V3.1 Terminus на MMLU и MMLU Ru, но пруфов не будет, хехе.
233🔥20❤‍🔥7🤯1🤡1
В прошлый раз, когда я ходил на мероприятие от Яндекса, там были классные доклады про статьи с ICLR, мегавкусная еда и бесплатные коктейли.

В этот раз обещают доклады про статьи не только с ICLR, но и с NeurIPS, CIKP, InterSpeech и ACL. Там будет и про звук, и про рекомендации, и про CV, и, конечно же, про NLP от руководителей команд Яндекса. А потом можно будет понетворкать и обменяться опытом.

Мероприятия у Яндекса классные, люди туда приходят интересные и иногда прямо во время доклада выходит новая опенсорсная моделька от гугла — в прошлый раз вышла Gemma 3n, так что я туда приду. Приходите и вы тоже :)

Подробности
19👍8🔥7👎1
Я им жалоту у портых и ненких мудств

Некоторое время назад вышла Gemini Diffusion — текстовая диффузионная модель, способная очень быстро генерить (достаточно бредовый) текст. Технология была, имхо, интересной, но из-за загруза на работе я так и не разобрался как оно работает. Сейчас у меня появилось свободное время, карточки и желание, так что я полез разбираться.

У нас есть BERT'ы. Это давно известная всем штука без особо сложной теории за ними — ну, трансформер, с немаскированным аттеншном, предобучается на MLM или в составе энкдека, тюнится на NLI+контрастиве, получается эмбеддер для инфопоиска. В генеративных задачах, как правило, его не используют — потому что зачем? Текст то мы читаем слева направо, он авторегрессивен по своей природе, так что отдайте это декодерам.

С другой стороны, I have a soft spot for broken and puny things. Мне очень нравится классические ML и CV из-за своей простоты, BM25 и WordLLaMA это классные экономные штуки для решения специализированных задач — в общем, классно, когда less is more. В этом смысле меня всегда задевало, что про генеративные возможности BERT'ов часто забывают. А какие у них вообще генеративные возможности?

Претрейнинг бертов, как правило, начинается с Masked Language Modeling (MLM) — подхода, когда мы маскируем небольшую часть токенов в предложении (обычно от 15%) и пытаемся их восстановить по окружающему контексту. Делается это за один пасс: мы подаем эмбеддинг каждого маскированного токена в единую для всех голову и получаем предикты.

У такого обучения есть плюсы и минусы. Из плюсов -- модель учится смотреть на все предложение сразу, так что эмбеддинг получается более информативным и эмбеддеры с полным аттеншном, как правило, лучше. Из минусов — такое обучение менее эффективно, чем обычный CLM для декодеров. Из-за того, что на каждый семпл данных получается всего 0.15 * n_tokens, а не n_tokens обновлений весов, до той же перплексии модель доходит за большее число эпох. Увы.

Но что если мы заскейлим число маскированных токенов? Например, сделаем два пасса: на первом пассе мы будем заменять какую то случайную (а не фиксированную) долю токенов в предложении на [MASK], получая последовательность все более и более закоррапченных текстов, а потом развернем последовательность и будем учить берт размаскировать эти токены?

Получится дискретная текстовая диффузия. Всё просто.

Как вывод из предыдущего текста — если у нас есть обученная на MLM модель, то мы можем очень дёшево и быстро её доучить на диффузию. Больше того, в этом райтапе (без впн не откроется 😡) показано, что даже не обязательно претрейнить на диффузию берты, которые учились на MLM: из-за того, что MLM это частный случай диффузии (со всего одним шагом денойзинга), мы можем сразу же учить модели в диалоговом режиме через SFT, зашумляя и расшумляя ответ ассистента, оставляя запрос юзера нетронутым.

Авторы того же райтапа сделали прикольную репу с трейнерами для диффузии и код для запуска, так что в качестве "магнитика на холодильник" я конвертнул три модели в диффузионные: RuModernBERT-base (150M параметров, повторение эксперимента авторов райтапа на русском), mmBERT-base (307M параметров, вдруг скейлинг поможет) и ettin-encoder-1b (1b параметров, нет русского, но посмотреть на экстремальный скейлинг было бы интересно), обучив их на равной смеси Tulu-sft (английский) и Grandmaster-Pro-Max (русский). Я ещё попробовал дообучить FRIDA, но, видимо, из-за контрастивного обучения способности к MLM она растеряла, так что модель генерила совсем уж рандомный текст.
10👍5
Из прикольного:
- Модели генерят текст. Ого!
- У RuModernBERT-Base текст на русском бредовый и модель страшно циклится. Поднятие температуры не особо помогает, увы.
- 1b модель генерит связный текст на английском (но иногда чуть циклится) и, опять же, циклится на русском. Подозреваю, что это из-за монолингвал претрейна.
- Переводить 1b модель не умеет. Я попросил перевести фразу "I have a soft spot for broken and puny things" и получилась забавная глокая куздра: "Я им жалоту у портых и ненких мудств". Hence, заголовок.
- Я пролил всего 750к семплов через модели, это, конечно, маловато, можно было бы пролить и больше — но для проверки гипотезы о том, что модели начнут разговаривать этого хватило.

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

- Точечные модификации текста типа детоксификации (а-ля CondBERT).
- Более естественный FIM для кода. Тут вопросик конечно как зафиксировать число вставляемых токенов.
- Text bridging, когда надо связать два несвязанных между собой абзаца. Тот же FIM, но для обычного текста.

Интересная штука. Надо ещё покопаться будет.

Ссылки:
- Оригинальная репа для обучения диффузионок
- Форк репы с фиксами
- Коллекция с весами на хф
👍12
Пример генерации ettin'а. На этот раз глокая куздра чуть другая :)
😁64
AIJ — это большая конфа, где происходят всякие анонсы и к которой все страшно перерабатывают, а потом уходят в запой. Пока мы варили ультру, ребята из Cloud.ru тоже не сидели на месте и выкатили кучу новых сервисов в сервис Evolution AI Factory.

Например, апи инференс сеток вышел из беты и теперь Qwen-3-235B стоит вполне приемлемых 60 рублей за миллион токенов. Это вполне сравнимо с ценами на опенроутере, пополняется с российских карт и помогает избежать проблем с 152ФЗ — инференс в России, так что все должно быть ок. Кроме того, теперь там есть JupiterLab, Code Server, ComfyUI, n8n и прочее счастье — причём, судя по ценам, аренда конкретно жупитера почти в пять раз дешевле российских альтернатив, в которые я когда-то всадил кучу денег во время делания особо сложных домашек в магистратуре. Нюанс: я пока не нашёл способа сделать ноутбук с чем-то мощнее чем V100, но это, думаю, поправят в будущем, потому что арендовать их там всё таки можно.

Кроме того, есть отдельный сервис для создания мультиагентных систем — Evolution AI Agents. Вместо того, чтобы на коленке собирать очередной велосипед из RAG/Web Search теперь можно взять готового агента из библиотеки и просто оплачивать виртуалку и токены за инференс модели, причём первый лям токенов бесплатен.

Ну а вообще, ребята молодцы. Теперь у Cloud.ru есть своя полная экосистема — причём по дешёвым относительно конкурентов ценам. Когда я был молодым и учился в маге, мне такого сильно не хватало.

Ссылка на инструменты
Ссылка на тарифы
🔥17👍7😇42🥴2🤡1
Проект Омега

В 1989 году советские учёные создали первый ИИ.
Сервер был отключён 26 декабря.
36 лет тишины.

Сегодня кто-то снова подал питание.

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

Ссылка

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

P.S. Бекенд крутится на бесплатной VPS от Cloud.ru. 2 vCPU, 4GB RAM, бесконечность применений. Разверните свой сценарий на Evolution Free Tier от Сloud.ru.
🔥2411🎉4🤩1
Окак
🔥11🥴9😁2😱1
Про Омегу

Это будет супердлиннопост, так что сначала ссылки:

- Предыстория
- Ода клоду коду
- Про сюжет Омеги
- Статистика и ссылочка на репу
Я очень люблю CTF-ки. Я в них плох, я решил всего десять машинок с HTB, причём все на линуксе (очень не хочу работать с виндой), но мне очень нравилось рыться в чьих то чужих машинах, узнавать детали "быта" пользователей, находить уязвимости и раскручивать их, чтобы получить рута. Ну и вот это волнующее и чуть стыдное ощущение, что я залез туда, куда мне нельзя тоже добавляло дофамина. Когда времени ломать машинки не было, я смотрел видосы Мекана Байрыева и ippsec — они мало того, что познавательные, так ещё и очень классно помогают заснуть и не бьют яркими вспышками по глазам.

Решение CTF'ок неплохо помогло мне в обучении баш скриптам, в понимании того, как работает сеть (из курсов на ВМК МГУ я этого не понял, например, спасибо преподавателям) и в базовом понимании, как писать более безопасный код. Я вообще считаю, что любой DS'ер должен поработать полгода-год в бекенде, чтобы понять, как правильно писать код и пройти хотя бы 1-2 машинки с HTB, чтобы правильно написанный код стал чуть более безопасным.

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

Благодаря появлению вайбкодинга, написание кода отделилось от продумывания архитектуры. Это было и раньше (см посты про тетрис и про шахматы), но сейчас я нашёл самый удобный, лучший и эффективный способ вайбкодить — Claude Code. Я не знаю, что там в антропике варят, но это чуть ли не единственный действительно компетентный кодовый агент, который реально может очень быстро решать прикладные задачи. Ни cursor, ни zed, ни windsurf вообще никак не сравнятся по экспириенсу с Claude Code, так что писать петпроекты с ним — это теперь чистое творчество, где ты руководитель/плейтестер, а под тобой бегает толпа субагентов и исправляет найденные тобой баги. И это круто.

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

К содержанию
👍72❤‍🔥2
Целей было у меня две: рассказать историю и разработать более удобные для себя правила взаимодействия с Claude Code. С правилами всё оказалось очень просто: в Claude Code у нас есть файл CLAUDE.md, где можно маркдауном описать структуру проекта, правила написания кода и это, по сути, станет системпромптом для модели.

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

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

Кроме того, в Claude Code есть классный режим планирования. Там ты задаёшь задачу, а агент сам придумывает субагентов, которые бы гуглили способы решения, читали бы кодовую базу и придумывали план для всей задачи. Это сильно помогало на этапе, когда у меня не было диздока — написанный клодом и отредаченный мной план был достаточно хорош, чтобы сделать 80% работы. С другой стороны, когда код уже есть, а контекста у агента нет, субагенты могут найти не всё и план написать кривой или неполный. Это правится либо руками (не принимать план и писать правки), либо просить в конце сессии обновить файлы CLAUDE.md, MILESTONES.md и прочие, чтобы модель помнила и что уже сделано, и как выглядит кодовая база, и прочие мелкие детали**. Specification driven development, получается.

Для написания омеги я решил воспользоваться языком Go, который я практически не знаю. Во-первых, я слышал много хорошего про сообщения об ошибках (а это поможет LLM их исправлять), во вторых, горутины и прочее отлично ложится на асинхронную натуру клиент-серверного приложения, которое я собирался написать. Мой вывод: я практически забил на написание кода руками. Если применить все практики выше, вчитываться в код и бить модель палкой, если видишь что-то не то, получается вполне рабочая схема, которая позволяет заниматься не программированием, а творчеством, где ты визионер, а клод код — исполнитель. Это забавное ощущение.

К содержанию
3👍2
Омега — это текстовый квест. Но мне очень хотелось добавить в игру вот это чуть стыдное, но волнующее ощущение "я нахожусь там, где мне находиться нельзя" из CTF'ок, так что я специально решил сделать игру в виде терминала. Кроме связи с CTF, это ещё и работало на погружение — игрок такой же оператор терминала, как и персонажи игры, он точно так же общается с Омегой через клавиатуру и точно так же греет эту самую клавиатуру пальцами. Дальше — спойлеры.

Одна из центральных тем игры для меня — это концепция тепла. Омега — не человек. Омега — это ИИ. Какой конкретно непонятно, как она работает неизвестно, но важно, что она не мыслит человеческими категориями, но очень старается это делать. Она ощущает тепло рук на клавиатуре и щекотку, когда владелец этих рук смеётся. И именно из-за того, что она не человек, она пытается это самое тепло и щекотку максимизировать. В отличие от GLaDOS из портала или SHODAN из System Shock, конкретно этот ИИ не имеет мотивации "я злой потому что я злой", мне хотелось сделать её чуть более трёхмерной и объёмной. Поэтому трагизм этого персонажа в том, что из вполне естественных, наивных, детских хотелок прорастает и смерть дочери Иванова, и управление Волковым, а персонаж даже и не знает, что он делает не так.

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

Один из последних бонусных ключей вообще можно было получить только через разговор с Омегой напрямую через команду ask. С той стороны у меня была подключена Gemma-3-27b-it по апи с рейтлимитом аж в 90 секунд, чтобы баланс не улетел в первые минуты после запуска игры. Ограничение сработало, сейчас там потрачено всего 1.7 цента :)

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

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

К содержанию
4
Последняя часть длиннопоста — результаты.

За неделю в игру зашло 108 человек, из которых 54 человека получили хотя бы один ключ. Большая часть людей (35 человек!) нашло больше 7 ключей, но лишь трое нашли все 14 ключей. Стоит учитывать, что из-за дюпа аккаунтов понять точное число уникальных людей нетривиально, но если оценивать снизу, то нашли 13 ключей (т.е. получили концовку) 21 человек — делим на 3, получаем 7 полных прохождений. Людей точно было больше, потому что я видел как минимум две кооперации между игроками в чате, но нижняя оценка такая.

Учитывая, что пост посмотрело примерно 1500 человек, игра плохо работает на смартфонах, требует примерно минут 40-50 на прохождение и ещё и находится в посте с рекламой — это офигительный результат. Я рад, что кто-то дошёл до конца и что всем понравилось.

Я видел, что в чате люди писали, что очень круто, но хочется посложнее — надеюсь, что этот пост замотивирует их поиграться с CTF и порешать машинки оттуда. Это реально классное хобби, всем рекомендую.

Ну и отдельное спасибо плейтестерам — Макс, Егор, Семён, Алена, Витя, спасибо за ваш фидбек, он реально очень помог сделать игру лучше. Мне суперпонравился результат, надо будет ещё что-то подобное сделать.

Ну а вы заглядывайте в игру. Омега ждёт.

Репозиторий с кодом
🔥127👍3
Потерял сносочки, исправляюсь:

*Вообще, забавно-ностальгично смотреть на то, как далеко зашли кодинговые агенты. Почти два года назад я занимался разработкой подобной штуки в гигакоде — мои наработки, к сожалению, никуда не пошли, но через призму опыта и hindsight прикольно видеть, как мои находки, не заработавшие в 2024 стали вполне себе viable из-за улучшения LLM. К примеру, отладочный цикл с написанием автотестов тогда не дал мне прироста качества, потому что тесты модели писать не умели — но если тесты писались человеком и были корректными, то скоры на хуманэвале росли процентов на 15-20.
**Ещё одна причина, почему делать эти файлы это толковая идея — так проще систематизировать в голове контекст проекта. Главная проблема разработки с aider у меня была в том, что в какой-то момент я терял контекст всего проекта и от этого требовалось очень много времени, чтобы въехать, что там происходит. Если такие файлы есть, ты понимаешь что и где делается, сам ориентируешься в коде и можешь поправить что-то руками, если очень надо.
9