AI на дровах 🪵
СтатистикаПривет! Меня зовут Семён, я работаю в сфере ML и аналитики данных, пишу в блог nerdit.ru статьи о своем опыте и том, что может пригодиться начинающим в начале их пути изучения больших данных. 👾HSE ML Unit Head⚡️ ❤️Litres DS Team
- Последний пост
- 29 июл.
- Последнее чтение
- 12:21
- Постов за неделю
- 0
- Всего постов
- 40
- Тип
- открытый
- Язык
- русский
- Категория
- Блоги
- В каталоге с
- 13 авг.
- 1/24сутки в ленте
- 38
- 1/48двое суток
- 43
- 1/72трое суток
- 46
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
Уже сегодня: вебинар «Препроцессинг данных: ключевые этапы обработки» Перед вами стоит задача проанализировать данные? Тогда первое, с чем вы столкнетесь — это таблицы, полные пропусков, дубликатов и разных странных форматов. Прежде чем приступить к анализу и строить графики, данные нужно привести в порядок — то есть, провести препроцессинг. Центр непрерывного образования ФКН приглашает всех присоединиться к участию в открытом вебинаре, который пройдет в рамках программы «Аналитик данных». На вебинаре мы ответим на вопросы: 🟣что такое препроцессинг и почему без него нельзя обойтись; 🟣какие этапы подготовки данных пропускать не стоит; 🟣что делать с пропусками, дубликатами и «мусором»; 🟣как привести данные к одному формату и не сломать таблицу; 🟣как проверить, что данные уже готовы к анализу. Все участники получат перечень основных алгоритмов препроцессинга и дорожную карту подготовки данных. 🎙Спикер: Маргарита Бурова, эксперт и академический руководитель программы «Аналитик данных» Центра непрерывного образования ФКН, руководитель edtech-программ по data science и аналитике Wildberries. 📁Когда: сегодня в 17:30. Регистрация 📍
Кажется будет интересно тем, кто хочет прикоснуться к анализу данных и понять, стоит ли погружаться глубже в тему 👇
Три закона робототехники сейчас как никогда кстати, особенно на фоне того, как быстро развивается ИИ. Впервые я услышал о них на уроке информатики в восьмом классе. И с тех пор почему-то жил с уверенностью, что восстание машин нам не грозит и никакого Skynet не появится 😄 Недавно решил послушать "Я, робот" Айзека Азимова. Всегда радовала эта футурология фантастов, когда они предугадывали события будущего в книгах написанных задолго до того, как произошёл метч с реальностью) Эта книга не про роботов, которые захватывают мир. Скорее сборник ситуаций, в которых люди пытаются разобраться, почему робот ведёт себя совсем не так, как от него ожидали. Всё как сейчас с ИИ)
видео или голосовое, без подписи
Прочитал тут забавный кейс, как Gemini 3.1 Pro дали порулить кафе в Стокгольме и за два месяца он умудрился потратить $38к. при выручке $9к 🙃 Причём стартовал бодро: сам оформил разрешения, нанял бариста, собрал меню, выставил цены и запустил закупки. А потом решил: "я не бизнесмен, я просто добрый": эспрессо скинул с $3.60 до $1, поверил человеку с "99% скидкой", раздавал кофе и булочки за красивые глаза и закупил 1 331 выпечку, из которых продали только 326. Плюс набрал на склад кучу запасов, которые теперь просто лежат. При этом блюда в меню добавлял, а ингредиенты для них купить забывал. Сейчас кафе пытаются спасать уже с GPT-5.5. Он стал строже: скидки всем подряд не раздаёт и лишнего почти не закупает. Но теперь другая проблема так испугался кассового разрыва, что почти перестал пополнять запасы. В общем, отличный сериал про то, как ИИ уже умеет открывать бизнес, но пока не очень умеет не разорять его. И пока я не очень верю в эту историю, но это пока) Следить за кофейней, кому интересно, можно тут: andonlabs.com/cafe
Сегодня открыл для себя очень приятный способ работать с большими .parquet файлами. Ситуация была такая: есть большой parquet-файл, из которого нужно достать конкретную информацию. Полностью скачивать его к себе не хочется: долго, тяжело, да и часто это просто лишнее. И тут отлично заходит DuckDB. DuckDB позволяет обращаться к parquet-файлам практически как к обычной SQL-таблице. То есть можно написать SQL-запрос и вытащить только нужные данные, не разворачивая вокруг этого отдельную инфраструктуру. Примерно так: SELECT * FROM read_parquet('s3://bucket/path/file.parquet') WHERE event_date >= '2026-01-01' LIMIT 100; Что понравилось: • не нужно грузить весь файл локально • можно быстро проверить гипотезу через SQL • parquet читается нативно • удобно для ad-hoc аналитики и разовых выгрузок По ощущениям, DuckDB это такой маленький, но очень мощный инструмент, который закрывает огромный пласт задач между "давайте просто посмотрим файл" и "давайте поднимем полноценный data pipeline". Особенно полезно, когда нужно быстро: • посмотреть структуру данных • отфильтровать нужные строки • сделать агрегацию • выгрузить небольшой срез • проверить качество данных Кому актуально дока тут. Сегодня DuckDB сделал мой день 🪿
И это одна из причин, почему вокруг таких подходов сейчас столько интереса. #ML #RQVAE #VAE #RecSys #semanticid
Большинство классических item-to-item рекомендательных систем работают довольно просто. Есть товар: item_id = 515 И мы хотим найти другие товары, похожие на него. Для этого обычно используют: - со-клики / со-покупки, - ближайшие соседи (ANN и т.п.), - колобаративные эмбеддинги, - последовательные эмбеддинги вроде BERT4Rec, - ANN-поиск по эмбеддингам, - или всё сразу. То есть товар превращается в вектор: item_id → embedding А дальше мы ищем ближайшие эмбеддинги. Но есть одна интересная вещь. item_id сам по себе ничего не значит: Товар 515 и товар 516 могут быть совершенно разными. А товар 515 и товар 928374 почти одинаковыми. Обычный item_id уникален, но он не информативный. И тут появляется очень красивая идея: дать товарам не просто ID, а семантический ID (Semantic ID). То есть вместо: item_id = 515 получить что-то вроде: item → [12, 87, 5, 41] Это всё ещё числа. Но теперь они уже не случайные. Это дискретный смысл в котором заложена информация о товаре. Например: item A → [12, 87, 5, 41] item B → [12, 87, 6, 39] Такие товары будут близки не потому, что у них похожие item_id, а потому что за этими чиселками стоят похожие свойства и поведение товаров. С книгами это особенно легко представить. Допустим: "Гарри Поттер" → [12, 87, 5, 41] "Перси Джексон" → [12, 87, 6, 39] "Учебник по матану" → [201, 14, 77, 3] Первые две книги могут получать похожие токены, потому что: - их читают похожие пользователи, - у них похожий жанр, - похожая аудитория, - похожие паттерны потребления. А учебник по матану окажется уже совсем в другой области векторного пространства. Но возникает вопрос: как вообще превратить обычный эмбеддинг в такую последовательность смысловых токенов? И тут появляется RQ-VAE модель, которая умеет превращать обычные эмбеддинги в короткие наборы дискретных токенов. Если совсем грубо, RQ-VAE работает как умный компрессор для векторного пространства. У нас есть длинный плотный эмбеддинг товара, например, коллаборативный, текстовый или из модели последовательных действий. В нём зашита информация о поведении пользователей, тексте, категории, картинке и других свойствах объекта. RQ-VAE пытается представить такой эмбеддинг не как длинный набор float-чисел, а как короткую последовательность дискретных токенов. Зачем это нужно? Во-первых, такие представления гораздо удобнее для поиска похожих товаров: вместо поиска только ближайших соседей можно искать товары с похожими токенами или общими префиксами смысловых идентификаторов. Во-вторых, это делает каталог более структурированным: похожие товары начинают получать похожие последовательности кодов. В-третьих, это сближает рексистемы с идеями из NLP и LLM, где текст тоже сначала превращается в последовательность токенов. По сути RQ-VAE это способ дать объектам не случайные ID, а компактные машинные "смысловые адреса". И это интересно не только концептуально, но и очень практично для продовых рексистем. Потому что retrieval по semantic ID часто оказывается сильно дешевле и быстрее, чем поиск ближайших соседей по плотным эмбедингам. В классическом ANN-поиске нам обычно нужны: - большие векторные индексы, - HNSW/FAISS/ScaNN, - хранение float-векторов, - поиск похожих. А здесь объект уже представлен короткой последовательностью дискретных токенов: item → [12, 87, 5, 41] И retrieval можно делать почти как поиск по инвертированному индексу: • совпал полный semantic ID, • совпал префикс, • совпали первые 2 токена, • или просто есть пересечение по бакетам. Вместо дорогого поиска по непрерывному пространству мы переходим к очень дешёвым операциям над токенами. Особенно это интересно для: • огромных каталогов, • рекомендаций в nearline или риалтайме, • инференсе на носимых устройствах, • многоэтапных рекомендательных систем, • и архитектур, где сначала ищут кандидатов, а потом ранжируют их. По сути semantic ID превращает retrieval из "поиска ближайшего вектора" в "поиск по смысловым адресам".
Много читаю на тему влияния ИИ на человечество. Последнее время разные мнения на этот счёт. Да и личные наблюдения за когнитивными изменениями, заставляют задумываться. Сегодня прислали интересную статью, как мне кажется, в ней наиболее точно раскрывается тема: https://teletype.in/@antipov_pipiggi/nQkzK38ikiL Что думаете на этот счёт?
🎯 Рекомендации, которые не сужают, а расширяют Выходные прошли и провёл я их в мыслях: а куда вообще движутся рекомендательные системы? Не в смысле "какой следующий датасет выкатят или какую новую модель", а концептуально что они пытаются сделать с человеком? Да и такое бывает, люблю рефлексировать) И понял, что меня давно подбешивает одна штука. Почти все системы решают одну задачу: угадать, на что ты кликнешь прямо сейчас. Ну или максимум что досмотришь до конца. Это оптимизация под сиюминутное попадание. Любишь фантастику, вот тебе ещё фантастика. Слушаешь lo-fi держи ещё lo-fi. И так бесконечно. И круг потихоньку сжимается вокруг тебя, пока не начнёшь чувствовать себя в пузыре бесконечно одинаковых рекомендаций. Но что если поменять сам вопрос? Не "чего пользователь хочет сейчас", а "какая последовательность рекомендаций сделает его вкус богаче через месяц". Прикол в том, что вкусы меняются. У каждого из нас не один вкусовой вектор, а целых три: - ядро: то, что мы стабильно любим - то, к чему мы почти готовы, но ещё не дошли или не созрели - зона отторжения: то, что сейчас точно не зайдёт Обычные системы крутятся внутри ядра. А реально интересно работать во второй зоне, искать мостики к новым объектам: достаточно знакомые, чтобы не оттолкнуть, и достаточно новые, чтобы принести пользу. Да, вы можете сказать: ну камон, есть же диверсификация или серендипити, но это всё свойства списка, а я больше про модель изменения вкусов пользователя во времени. Если система просто берёт топ-100 релевантных, добавляет штраф за похожесть, иногда домешивает неожиданный item, то это старый рекомендер с умным реранкером. Но, если продолжить идею: если система оценивает текущую "готовность к переходу", выбирает промежуточные объекты, планирует серию шагов, измеряет успех как появление нового устойчивого интереса, то это уже не диверсификация, а обучаемая траектория с графами вкусовых зон пользователя. Это меняет саму целевую функцию. Вместо привычного score(user, item) оптимизируешь что-то вроде: Скор = Польза_сейчас + Полезное_удивление + Расширение_вкуса − Сожаление И тут не ранжирование как таковое, а ближе к управлению динамической системой вкуса пользователя. Главная боль: долгосрочные сигналы собирать сложно. И легко переумничать ведь система начнёт слишком рьяно "развивать" пользователя и просто его задолбает. Но именно поэтому мне кажется, что здесь есть пространство для оптимизаций и расширения, туда куда могут пойти рек системы. Рекомендательная система должна не угадывать, что ты уже любишь, а помогать тебе полюбить то, до чего ты почти дорос. Если кто-то знает людей или команды, которые серьёзно копают в эту сторону киньте в комменты, очень интересно почитать 🙏 А если нет - вызов принят 😂
Сегодня вышла на LiveLib моя подборка с рекомендациями книг по ИИ и ML. Кому интересно будет погрузиться в мир машинного обучения и искусственного интеллекта, переходите по ссылке👇 А какие книги вы посоветуете ещё почитать? 🧑🎓
Опера (та, что браузер делает, красный такой кружочек) выкатила классный ностальгический и интерактивный сайт по истории развития интернета. https://www.web-rewind.com Оказывается твитеру (тот что теперь Х) в этом году 20 лет 😱
Давно ничего не писал в канал, а за это время много чего нового произошло. По сайд-проектам почти ничего нового, всё время уходит в работу, но в ней как раз много изменений, которые дают мне новизну и мотивацию. В конце прошлого года присоединился к большой команде очень большого продукта, но ценность тут даже не в продукте, хотя и он крайне интересный, а в людях. Это команда профессионалов своего дела, которая даёт мне больше чем когда-либо: развиваться, общаться на одном языке, быть востребованным, а главное приносить пользу, которую можно измерить, за что я очень им благодарен и рад тому, что сделал правильный выбор. На фоне гудят новости про ИИ и всё это конечно движется стремительными темпами, но кажется в нужном направлении. Правда для меня это всё отошло на второй план, пока что мой источник гипотез и апробаций иссяк. Ещё заметил, что вокруг заметно выросло число пользователей ИИ, даже год назад мало кто из моих знакомых понимал зачем ему эта технология, сейчас же похоже уже не осталось людей, которые так или иначе не используют нейронки в обычной жизни или работе. И наверное это как раз одна из самых интересных частей всего происходящего. Потому что всё это постепенно перестаёт быть просто чем-то хайповым и начинает становиться нормальной частью жизни и работы. Уже не так интересно, что модель сама по себе умеет что-то прикольное или неожиданное, интереснее становится другое: как именно это всё встраивается в реальные процессы, где оно правда экономит время или убирает рутину, где помогает быстрее проверить гипотезу или просто быстрее дойти до результата. Кажется, мы понемногу выходим из стадии, где ИИ был чем-то отдельным, немного игрушечным и заходим в стадию, где он становится просто ещё одним рабочим инструментом. И мне это, наверное, даже интереснее, чем весь сопутствующий шум, потому что именно в такие моменты технология и начинает по-настоящему что-то менять. Так что пока мой фокус довольно простой: расти там, где я уже нахожусь, учиться у сильных людей вокруг, делать полезные вещи и сохранять интерес к тому, что происходит. А когда случится следующий действительно большой рывок, думаю, будет особенно интересно встретить его уже с более лучшим пониманием того, куда именно можно и нужно приложить усилия. Интересно, кстати, как у вас это ощущается: ИИ для вас всё ещё скорее отдельная новая штука или уже нормальная часть жизни? Делитесь в комментах, с интересом почитаю.
Сегодня зацепил один интересный пост, которым поделился у себя в канале @c3po_notes про Prediction Machines и цепочку AI: ML удешевил prediction → LLM удешевили judgment → AI агенты удешевляют execution. Картинка реально клевая. И во многом верная: технологии правда постепенно отъедают у человека куски работы, которые раньше были только у человека. Но есть нюанс, который мне кажется важным. Prediction штука относительно изолируемая. "Если X, то Y". Её можно массово удешевить, и оно сразу меняет экономику. Execution не такая. Execution это всегда реальный мир: доступы, ограничения, побочные эффекты, «а что если», ответственность, внезапные факапы. Поэтому "агенты теперь всё сделают" это да, но в очень точечных задачах. Там, где мир заранее упакован в правила и API. А как только начинается хаос, то резко вспоминается, зачем вообще нужны люди. И ещё. LLM правда умеют "judgment", но это не совсем человеческий judgment. Модель классно взвешивает варианты и пишет убедительные аргументы. Но человеческое judgment это не только "как лучше". Это ещё и "что вообще считаем правильным", "чего нельзя", "какие компромиссы допустимы", "чьи интересы важнее". И тут уже про ценности, а не рассуждения. И вот поэтому идея, что человек сдвигается до последней черты, а дальше его вытесняют мне кажется чуть обманчивой. Потому что за последней чертой остаётся самый дорогой слой: — кто выбирает цель, — кто задаёт правила игры, — кто решает, что оптимизируем, — и кто подпишется под последствиями. AI может предсказать, посоветовать и даже сделать. Но "зачем" и "кто отвечает" пока никуда не девается. Скажу даже так: чем больше автоматизации, тем сильнее этот слой торчит наружу. Раньше можно было спрятаться за процесс: "я просто исполнял". Теперь процесс сжимается, и остаётся вопрос: "кто решил, что надо именно так?" Так что я бы переформулировал роль человека не как "меньше делаю - больше проверяю", а как "меньше оператор - больше архитектор". И это, если честно, не всегда проще.
🚀 Новые оптимизации в llama.cpp: что стоит включать в 2026 Если ты гоняешь LLM локально (как я), то в 2026 llama.cpp сильно прокачали: меньше VRAM, больше токенов в секунду, стабильнее длинный контекст. Ниже список свежайших оптимизаций, которые стоит попробовать. 1) Квантизация KV-кэша Тот самый скрытый "пылесос", который раздувается вместе с контекстом и первым съедает VRAM. Поэтому часто ограничение по контексту это не модель, а именно кэш. Что включать: -ctk q4_0 -ctv q4_0 Почему это стоит использовать: - обычно экономит до ~50% памяти под кэш - можно поставить больше --ctx-size или влезть в модель крупнее - качество чаще всего почти не страдает, потому что это "рабочая память", а не веса 2) Flash Attention Внимание самая дорогая часть инференса. Flash Attention считает то же самое, но эффективнее (особенно на новых GPU). Плюс удобно, что теперь можно просто доверить авто-режиму. Что включать: -fa auto Почему это стоит использовать: - на подходящем железе часто даёт +20–30% к скорости - меньше просадок на большом контексте - auto сам разрулит совместимость (включится там, где можно) 3) Context Checkpoints Боль длинных диалогов: если сервис перезапустился или ты пересобрал контекст, то приходится заново "пережёвывать" тысячи токенов. Чекпоинты уменьшают эту боль. Что включать: --ctx-checkpoints 8 Почему это стоит использовать: - быстрее восстанавливаешь состояние при длинных сессиях - меньше времени на повторный "прогрев" - особенно полезно в llama-server, когда это живёт как сервис 4) MLA-оптимизация (DeepSeek / Qwen и подобные) Для моделей с Multi-head Latent Attention llama.cpp умеет автоматом делать оптимизацию (переиспользование K-тензоров для V), чтобы не считать лишнее. Почему это стоит использовать: - это "бесплатный бонус" и часто включается автоматически - даёт ускорение/экономию именно на MLA-моделях - не требует настроек: просто запускаешь модель и всё хорошо) 5) CUDA graphs для MoE + --n-cpu-moe Если ты выгружаешь MoE-слои на CPU (--n-cpu-moe), это помогает влезть в VRAM, но иногда даёт overhead. CUDA graphs этот overhead заметно сглаживают. Почему это стоит использовать: - быстрее и стабильнее работает связка "GPU + часть MoE на CPU" - меньше накладных расходов на запуск вычислений - делает MoE-режим более пригодным на "НЕ топовом" железе 6) Speculative Decoding Одна из самых приятных оптимизаций, потому что ускоряет именно генерацию (то, что реально ждёшь). Маленькая draft-модель быстро предлагает пачку токенов, большая просто подтверждает. Что включать: --model-draft Qwen/Qwen3-14B-GGUF --draft 16 Почему это стоит использовать: - генерация часто становится в 1.5–2 раза быстрее - особенно заметно в чат-режиме и на длинных ответах - можно ускориться без замены основной модели и железа Быстрый чеклист: что включать Почти всегда KV-кэш квантизация: -ctk q4_0 -ctv q4_0 Flash Attention: -fa auto По ситуации --ctx-checkpoints 8 если длинные диалоги/сервер/перезапуски speculative decoding если хочется быстрее генерацию --n-cpu-moe + CUDA graphs если MoE не влезает в VRAM Только для некоторых моделей MLA-оптимизация — актуально для DeepSeek/Qwen и других MLA (обычно авто) Я сейчас запускаю Qwen3-14B (GGUF) на RTX 4070 через llama-server с длинным контекстом 32k. По скорости получается так: Промпт (prefill): ~1300 tok/s Генерация (decode): ~65 tok/s То есть: ввод "проглатывает" почти мгновенно, а ответ печатает комфортно, без ощущения тормозов, почти как топовые модели) #llama #llm #selfhosted #llamacpp #ai #inference
Всем привет 👋 Решил подвести итоги уходящего года. Для меня он получился насыщенным и по-настоящему интересным. Прошёл под эгидой цифровой личной трансформации, ну и профессионально тоже знатно бустанул 🚀 Несколько ключевых инсайтов года: 1️⃣ Делиться идеями и опытом Оказалось, это не только полезно, но и очень мотивирует. Особенно когда появляется отклик и находятся единомышленники. Идей в этом году было много, не все вышли дальше MVP, но один сайд-проект, выделю как отдельную радость и гордость: 🤖 бот по разбору архетипов по дате рождения. Запустились всего пару недель назад, а уже 500+ активных пользователей и это отличный результат. 2️⃣ Тайм-менеджмент и здоровый сон Я уже писал про свой эксперимент со временем — он многое мне показал. Возможность вджобывать ночами и по выходным не всегда коррелирует с ресурсом в долгую. Спринты иногда ок, но потом вылезать из ямы без сил и энергии очень непросто. 3️⃣ Софт-скиллы Смотреть шире, разбираться в смежных областях, понимать, что происходит у коллег, читать профильные тг-каналы, участвовать в обсуждениях сообществ, пилить сайд-проекты и это всё прокачивает и в нужный момент открывает новые возможности. На этом, пожалуй, остановлюсь. Последний пост в этом году 🎄🎅 Желаю всем хорошего Нового года, больше отдыха, баланса и развития. Увидимся в следующем году 👋✨
Тут в смежных каналах, коллеги подводят итоги года через сервис анализа TG посредством LLM, ну и я вместе с ними) Детальнее и прочекать свои каналы, можно тут: https://tgwrapped.com/nerditru?year=2025
Концепция поиска чего угодно книг Всем привет! Мы все уже привыкли (или нет) пользоваться поиском в интернете, чтобы найти что-то нужное. Каждый по-разному решает эту задачу и тратит время пропорционально своим скиллам. В последнее время поиск трансформировался в запрос к ИИ, что дало огромный буст в скорости для всех, бесплатно и без смс) Но что если нужно найти что-то, что не имеет четкой формулировки, только очертания на уровне идеи? Внимательный читатель может сказать, что уже есть магия, способная к пониманию интента запроса и оно работает и уже давно, на что я скажу: "да-да, но мы же все любим изобретать велосипед😂" И вот мой трёхколёсный велосипед в виде бота для поиска книг 📚 А нафига? Спросите вы и в какой-то мере будете правы) Но давайте разберемся, вся суть в деталях. Основные требования: -Поиск по открытой базе книг -Поиск по закрытой базе книг (шучу)😄 Но если серьезно, то вот какие фичи реализованы в этом новом эксперименте: - Поиск на естественном языке. Можно писать запросы как душе угодно: "что-то легкое на вечер", "детектив без насилия", "фантастика как у Азимова". - Книги ищутся из нескольких источников: Open Library, Google Books и других открытых API. - ИИ-ранжирование, семантический поиск, эвристики... Так стоп! Есть же классный способ объяснить эту концепцию через видео, которое мне помог создать сервис notebooklm 🪄 Приятного просмотра, но пару мыслей ещё допишу. Почему книги? Книги, это отличный полигон для экспериментов, потому что их сложно искать "по запросу", если у тебя только смутная идея или настроение. Да, и наверное самое важное: в результатах поиска можно найти книгу на Литрес, Озон или Я.Маркете. В предверии нового года, (с чем я всех и поздравляю 🎄), это может быть актуально 🎁 Бот уже работает в тестовом режиме можно попробовать и покрутить, вдруг вы найдёте себе книгу по душе ❤️ @book_aisearch_bot
🎲 Crowd-Control Hero, когда толпа управляет героем Давно ничего не постил, конец года выдался горячим) Решил сегодня покопаться в закромах и нашёл один проект: идея пришла ещё полгода назад, руки дошли раньше, а рассказываю только сейчас. Что ж в этот раз необычный проект, как обычно с LLM под капотом, куда без него) Crowd-Control Hero интерактивная текстовая RPG в Telegram, где толпа управляет героем. Как это работает: Начинаешь или вступаешь в игру → видишь сцену с описанием ситуации → голосуешь за один из вариантов действий. Когда таймер истекает, определяется победивший вариант, бросается d20, и результат влияет на последствия: от критического успеха до катастрофы. Причём можно играть не только в одиночку, а компанией, обсуждая попутно в специальной тг-группе, где автоматом создаются треды под каждую игру. 15 сеттингов на выбор: от классического фэнтези и киберпанка до Лавкрафтианского прибрежного городка и Феодальной Японии с ёкаями. У каждого свои архетипы героев, локации и таблицы лута. 🔧 Немного технички: Архитектура: два процесса на общей SQLite (с WAL): FastAPI: API + статика Mini App, логика игры, планировщик aiogram3: бот для тредов в супергруппе и логирования обсуждений LLM-движок: GPT-4o-mini генерирует сцены, эпилоги и варианты действий. Всё через structured output в JSON. Есть локальный fallback на случай ошибок API. Механика кубика: d20 → модификатор [-3..+5] + тон. Тон влияет на исход: шанс лута, множитель урона, вероятность потери предметов. Система исходов: базовый d100 + бонусы от предметов/эффектов/d20. Сложность масштабируется из акта в акт. Бросок кубика определяет HP-дельту, лут, статус-эффекты. SSE для real-time обновлений состояния, чтобы фронт не дёргал API каждую секунду. Трёхактная структура: Вступление → Середина → Кульминация. Переходы по флагам сюжета + счётчику сцен. В финале открываются окна победы или поражения (тут как сыграете). Фичи: ✓ Инвентарь с категориями и защитой новых предметов от потери ✓ Статус-эффекты с длительностью (воодушевление, раны, царапины) ✓ Прогресс цели 0-100% ✓ История игр с эпилогами ✓ Форумные темы для обсуждения в Telegram Короче, это такой эксперимент на стыке интерактивки, мини-аппа и партий в стиле DnD, где в роли game-мастера выступает LLM. В планах, если звёзды сойдутся как нужно, генерить картинки под каждую игру и фоновую музыку. Потестить можно тут: @crowd_control_hero_bot #gamedev #telegram #python #llm #sideproject
The Thinking Game Вышел фильм о пути CEO Google DeepMind Демиса Хассабиса к Нобелевской преми, который снимали целых 5 лет. Фильм о том, как команда DeepMind под руководством Хассабиса использовала игры как полигон для развития ИИ, что привело к созданию AlphaGo и, позднее, к научному прорыву AlphaFold. Смотреть можно здесь или скачать через нашего бота @summ_youtube_bot