Sinекура – Telegram
Sinекура
3.33K subscribers
849 photos
11 videos
252 links
Канал Сергея Николенко обо всём, но в основном об AI.

Сайт с выступлениями, лекциями и публикациями: https://sergeynikolenko.ru/
Блог на сайте Synthesis AI: https://synthesis.ai/blog/
Download Telegram
Рубрика об играх становится традиционной. Сегодня расскажу вам про три небольшие инди-игры, выпущенные одной и той же маленькой студией Sigono Inc. в одной и той же вселенной. Наверное, лучшее прилагательное для этой серии — эмоциональные игры; они призваны вызывать эмоции подачей истории и при этом немного развлекать, но не напрягать геймплейной составляющей.

OPUS: Echo of Starsong — это визуальная новелла с небольшими элементами менеджмента ресурсов (написал и понял, как это звучит — oh well, no, not that kind of visual novel), самая большая из трёх и дающая больше всего бэкграунда про игровую вселенную и так далее. По сюжету и построению игрового мира это типичная японщина: много обёрнутой в научно-фантастические термины магии, которая по сути нужна только для того, чтобы рассказать эмоциональную историю взросления... но история отличная! Надо просто suspend all disbelief и немножко проникнуться, и OPUS действительно вызовет все те эмоции, которые собиралась. Нарисовано красиво, музыка завораживающая, рекомендую.

Две другие игры тоже из той же серии — OPUS: The Day We Found Earth и OPUS: Rocket of Whispers. Хотя они вышли раньше, чем Echo of Starsong, я всё-таки рекомендую начать с последней: она гораздо лучше объяснит, что вообще происходит в этом мире, и тогда то, что в двух первых играх подаётся вскользь и намёками, вызовет куда больше тех самых эмоций. По сути они тоже в основном сюжетные, но при этом имеют совсем другие механики: в одной вам нужно через телескоп искать похожие на Землю планеты, а другая похожа на выживалку с крафтом, хотя там, конечно, никакого геймплейного напряжения нет.

Echo of Starsong заняла у меня часов восемь, две другие — по три-четыре часа. Примерно такая продолжительность для сюжетных игр кажется мне идеальной: не успеваешь отложить игру и забыть, что там происходило, а 3-4 часа — это вообще может быть один вечер. В общем, Sigono Inc. молодцы; кстати, в каждой игре после прохождения открываются очень добрые и вдохновляющие комментарии разработчиков. Рекомендую.
❤‍🔥146🔥6👍3
Горькие уроки попыток репликации o1 — часть 1/3

Пишу очередной огромный пост, на этот раз про репликации o1 и вышедшую из этого DeepSeek-R1. Ссылку на пост тоже кину, когда он выйдет; но пока в процессе, поделюсь одной небольшой историей в трёх частях.

Естественно, как только появилась новая крутая штука — OpenAI o1, то есть large reasoning models (LRM), — все сразу начали пытаться её воспроизвести. Причём не просто скопировать код (его никто и не видел), а именно с нуля переизобрести и запустить в работу. Здесь начинается мини-сериал под названием "O1 Replication Journey" — в трёх статьях от Generative AI Research Lab (GAIR) при Шанхайском университете Цзяотун. Я своё описание тоже разобью на три поста; иллюстрации к ним — это таймлайны из трёх статей GAIR; very cute.

Первая статья (Qin et al., 2024) вышла в октябре 2024 года, буквально через месяц после выхода o1 и старта проекта (кстати, очень амбициозного). Коллеги придумали хорошее название — journey learning, где модель должна не просто давать ответ, а выдавать весь процесс рассуждений, с заходами в тупики, гипотезами и их проверкой.

Всё выглядело оптимистично. Они планировали использовать Monte Carlo tree search для построения "деревьев рассуждений" (tree of thought, это не метафора, а стандартная уже техника, в посте будет подробнее) и process reward models (PRM, процессуальные модели вознаграждений — они проверяют не только ответ, а ещё и весь ход рассуждений, там, где это возможно), чтобы улучшать ход рассуждений модели в реальном времени. Первая картинка — таймлайн из этой статьи. Уже на этом этапе, собрав датасет из буквально 327 примеров, они смогли заметно улучшить качество работы модели на некоторых математических бенчмарках.
❤‍🔥52🔥2
Горькие уроки попыток репликации o1 — часть 2/3

Как в хорошем сериале, вскоре всё перевернулось с ног на голову; впрочем, нашему мини-сериалу для этого хватило добраться до второй серии. Уже в декабре появляется вторая статья (Huang et al., 2024). Там учёные из GAIR сделали простое, но гениальное открытие: когда у тебя есть датасет reasoning traces (ответы и логика рассуждений o1), тебе больше ничего не нужно!

Они взяли ответы модели o1, сделали supervised fine-tuning на десятках тысяч примеров и... смогли обойти o1-preview на многих бенчмарках. Несколько неожиданно то, что хотя их модель обучалась сугубо на математике (датасетах олимпиадных задачек), она потом нормально справлялась с вопросами из открытых областей знаний и даже стала меньше поддаваться на провокации (авторы это называют sycophancy — известный эффект, когда модель соглашается со всем, о чём её спрашивают, даже если вопрос абсурдный или очевидно исходит из ложных посылок).

В сухом остатке:
— берёшь o1 или другую рассуждающую модель, набирает из него датасет reasoning traces;
— натравливаешь на них свою модель обычным дообучением;
— PROFIT.

Добрых полстатьи авторы рассуждают, в чём тут засада и почему это всё-таки bitter lesson, а не победа. Причины в целом очевидные:
— это не масштабируется, ты никогда не сделаешь модель умнее, чем модель-учитель;
— если все будут только копировать решения, а не думать с нуля, исследования застопорятся; прорывов не будет, если над этим работают только несколько секретных лабораторий;
— вся работа превращается в промпт-инжиниринг и поиск способов лучше использовать уже существующие топовые модели, а не в решение фундаментальных задач и рассуждения от первых принципов.

И тем не менее ничего поделать с этим они, не будучи сами топовой лабораторией с огромным запасом compute, не смогли...
❤‍🔥62🔥2
Горькие уроки попыток репликации o1 — часть 3/3

Третья серия сезона — январская статья (Huang et al., 2025), в которой коллеги переключились на медицинские применения. Здесь уже речь идёт о том, что inference-time scaling может помочь в диагностике и планировании лечения, не только решать задачи, но и улучшать принятие медицинских решений. Третий таймлайн выглядит гораздо беднее первых двух, да и вывод здесь основной в том, что в медицинском домене тоже, конечно, рассуждения могут помочь. А что, кто-то сомневался?..

Весь этот сериал — ещё одна иллюстрация важной проблемы: сейчас мир AI устроен так, что делать новые исследования очень сложно и очень дорого. Все говорили о том, что обучение DeepSeek-V3 стоило "всего $6M", но это, конечно, полная ерунда. Столько стоил последний запуск, который был кульминацией многочисленных экспериментов, проводившихся доброй сотней недешёвых учёных (посмотрите, сколько авторов у статей DeepSeek) на отдельно созданном (даже не арендованном, а именно купленном) кластере, который наверняка стоил сотни миллионов.

Так что да, у DeepSeek получилось много интересного, но это тоже очень богатая организация (хедж-фонд High-Flyer), и они занимались по сути попытками повторить уже вышедшую модель OpenAI. Через пару недель после DeepSeek-R1 OpenAI выпустила семейство o3 и o3-mini, которые ещё лучше, выкатила Deep Research и Operator, и всё, они снова на коне, причём довольно очевидно, что эти релизы были не за неделю подготовлены, а просто ждали своего часа.

Новые идеи, конечно, никто не запретит придумывать и нам с вами, но если это идеи об LLM, то проверять мы их, скорее всего, сможем только на игрушечных дистиллированных моделях на 2-7 миллиардов параметров, и "горький урок" состоит в том, что для этих моделей мы вряд ли сможем придумать что-то лучше обычной дистилляции. С другой стороны, "игрушечные модели на 7B параметров" — это фраза, которую трудно было себе представить даже пять лет назад. Да и кто знает, возможно, недолго осталось до того, как AI разорвёт этот цикл и сам научится делать новые открытия?

Как я всегда говорю, в интересные времена мы живём...
❤‍🔥10🔥54
Начался новый семестр на Факультете математики и компьютерных наук СПбГУ, а значит, на моём YouTube-канале появился новый плейлист. Второй семестр — самый большой в курсе, по две лекции в неделю, то есть фактически годовой стандартный курс. А всего у меня в курсе четыре семестра лекций, которые за счёт вот этого большого второго семестра укладываются в три календарных.

Первые лекции — про деревья принятия решений и бустинг. Enjoy:
https://www.youtube.com/watch?v=BJo-Zmg3Va0

Разумеется, как только у меня появилось место, где можно вам об этом рассказать, так сразу же что-то пошло не так. Пока слушал вопрос из зума, выключил в OBS Studio свой микрофон, а потом забыл включить, и в результате около 20 минут аудио пропали. Пришлось записать отдельно небольшое саммари того, что там говорилось, и овладеть ffmpeg'ом в достаточной мере, чтобы это саммари в нужный кусок вклеить. Впрочем, не важно, вряд ли кто-то из присутствующих реально будет это слушать, а тем более доберётся до отметки в 2 часа 50 минут. :)
🔥309❤‍🔥8
С тех самых пор, как мой курс искусственного интеллекта более или менее оформился, я мечтал написать книгу, учебник, который бы начинался от азов и понемногу строил здание машинного обучения Больших форм я никогда не боялся, так что начал книгу с энтузиазмом, но, как это всегда бывает, оказалось, что работы во много раз больше, чем представляется поначалу. Активно писал я её несколько лет, с большими перерывами и депрессивными эпизодами, потом ещё несколько месяцев доделывал вёрстку, вносил замечания редактора и всё такое.

И вот — готово. Книга "Машинное обучение: основы" подписана в печать, доступна для предзаказа, должна физически появиться во второй половине марта. 600 страниц (25 из них, правда, список литературы), шесть больших глав. Полное оглавление на сайте издательства тоже выложено.

https://www.piter.com/collection/all/product/mashinnoe-obuchenie-osnovy

Эта книга — существенно расширенный первый семестр моего курса. Кроме основ байесовского вывода, линейной и логистической регрессии и тому подобного, о чём я неизбежно рассказываю каждый год, в книге есть ещё много разных сюжетов — объясняющих, развивающих и иллюстрирующих. И продвинуто-математических, и более "общечеловеческих": история AI, эффект "горячей руки", кризис воспроизводимости в науке, разоблачение закона Ципфа, робастные виды регрессии, оценка Джеймса-Штейна, проспективные и ретроспективные исследования... Эпиграфы и котики тоже прилагаются. Главное для меня, наверное, в том, что я старался писать книгу, которую было бы интересно читать, даже (а может, особенно) если не пытаться проследить за всеми выводами и формулами.

Здесь наверняка будет ещё много постов об этой книге, уж точно сфотографирую, когда получу реальные экземпляры. И это как раз тот случай, когда очень прошу всех расшаривать, давать ссылки на канал и на книжку. Очень надеюсь, что успею написать что-нибудь ещё, пока писать книги ещё не вовсе бессмысленно; эту, кажется, успел.
❤‍🔥60🔥4221👍8👏1🤩1
Sinекура pinned «С тех самых пор, как мой курс искусственного интеллекта более или менее оформился, я мечтал написать книгу, учебник, который бы начинался от азов и понемногу строил здание машинного обучения Больших форм я никогда не боялся, так что начал книгу с энтузиазмом…»
Вчера читал лекции про SVM да RVM, и вот видео уже выложено, да и все материалы на странице курса доступны как обычно.

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

В этих лекциях вот рассказывал про SVM и kernel trick. Казалось бы, кому в эпоху нейросетей захочется самому придумывать ядра для нелинейной классификации и применять kernel trick — сеть же сама выучит нужное нелинейное преобразование. И действительно, может выучить, и базовые SVM сейчас редко встретишь в живой природе — но трюк отнюдь не умер! Это математическая идея, и она вовсе не об SVM, а о том, что скалярные произведения в пространствах признаков высокой размерности φ(x) эквивалентны нелинейным функциям от исходных векторов малой размерности x.

Так что когда в трансформерах понадобилось решать проблему квадратичной сложности, одним из подходов стал как раз kernel trick, только наоборот: если перейти от softmax(qk)⋅v в пространство признаков, где softmax будет линейным, φ(q)⋅φ(k) (приближённо, разумеется), то можно будет переставить скобочки и матрицу квадратичной от длины входа сложности не считать. Эта идея называется сейчас linear attention, и я об этом недавно подробно писал в посте про линейное внимание и Mamba.

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

https://www.youtube.com/watch?v=tHjg8mH0VSM
🔥33❤‍🔥13👍71
На дворе пятница, так что продолжим традицию игровых мини-обзоров. Две первые игры я прошёл за последнюю неделю, а третью взял из архивов, чтобы пост был пожирнее. Там, в архивах, ещё много.)

Knock on the Coffin's Lid

Когда карточный roguelike хорошо сделан — это кайф. Здесь на первый взгляд кажется, что это очередной клон Slay the Spire, и в чём-то это так и есть. Но не во всём: к разнообразным механикам карточного рогалика здесь добавили ещё и довольно годный сюжет. Как глобальный, так и локальный: на карте много событий, которые повторяются не в точности, а каждый раз с новыми вариациями; ваш персонаж погибает и перерождается, но сохраняет информацию о том, что произошло в прошлый раз, и когда воскресает в следующем забеге, может попробовать другие варианты.

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

While We Wait Here

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

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

Do Not Feed the Monkeys

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

Отдельное спасибо разработчикам за то, что игра закончилась ровно в тот момент, когда начал появляться элемент рутины (часа за три я дошёл до конца и получил концовку «Enlightened Monkey»). Но опять предупреждаю перфекционистов: насколько я понял, истории появляются случайным образом, так что бог знает, сколько раз нужно будет перезапускать игру, чтобы увидеть и пройти их все. В любом случае, игра интересная и очень необычная — как вы уже поняли, я такие люблю.)
🔥122❤‍🔥2
Сегодня рассказывал про EM-алгоритм; видео выложил, материалы как всегда на сайте. И снова, как в прошлый раз с kernel trick, EM — это вечная базовая идея, которую можно использовать в самых разных контекстах.

Например, весь self-supervised learning, в котором предсказания модели используются для дальнейшего обучения, — это частный случай EM-алгоритма. Год назад DeepMind выпустил статью про RestEM, где EM есть буквально в названии, и идея как раз в этом и заключается: породить ответы, отфильтровать их хоть как-нибудь и использовать отфильтрованное для следующей итерации обучения.

Для кластеризации, конечно, EM тоже используется до сих пор, но там это совсем прямолинейно: deep clustering — это когда нейросеть делает representation learning, а кластеризация происходит в латентном пространстве, так что там сам бог велел использовать EM-алгоритм.

Написал и подумал, что, наверное, EM можно использовать для обучения mixture-of-experts моделей, но, кажется, никто в мейнстриме так не делает. Нашёл только одну свежую, но довольно obscure статью; видимо, это или не так прямолинейно, как кажется, или просто не особо помогает. Слышали что-нибудь о таком? Или о других современных применениях EM-алгоритма? У меня в курсе будет несколько интересных примеров, но они не очень свежие, да и примеров много не бывает.

https://www.youtube.com/watch?v=x0m4e3MFSTs
🔥23❤‍🔥4💯3🤣1🖕1
Вышел мой большой пост про рассуждающие модели (large reasoning models, LRM), которые начались с OpenAI o1-preview в конце прошлого сентября, а самой громкой новостью начала года стал DeepSeek-R1.

https://synthesis.ai/2025/02/25/large-reasoning-models-how-o1-replications-turned-into-real-competition/

Как обычно, я постарался рассказать всю структуру происходящего:
— сначала про chain-of-thought методы и как они развивались;
— потом про o1 и новые законы масштабирования;
— в середине небольшое отступление про самые последние новости — модель s1, которая за $50 обучилась почти до того же уровня;
— а потом уже подробно о том, что происходит в DeepSeek-V3 и DeepSeek-R1;
— в частности, о том, как там используется RL и какой именно (здесь у DeepSeek тоже есть своё новшество, алгоритм GRPO).

Думаю, рассуждающие модели — это самое главное, что произошло в AI за последние несколько месяцев. И, как всегда в последнее время, прогресс невероятно быстрый: только появилось, а уже прочно вошло в обиход, у всех есть свои варианты reasoning models, а где-то уже есть и следующие уровни надстройки над этим вроде deep research. Надеюсь, пост тоже интересный получился — или хотя бы познавательный.)
❤‍🔥29🔥13👍81
Пока все AI-каналы пишут про GPT-4.5 (был бы рад тоже написать, да не знаю что, зачем вам от меня повторение тех же новостей...), я вам опять принёс пятничные мини-обзоры небольших, но интересных игр — тьфу-тьфу-тьфу, входит в традицию.

The Wreck


Эмоциональная короткая история о потере, примирении и взаимопонимании перед лицом смерти. Базовый геймплей здесь совсем простой — надо кликать по ключевым словам в коротких повествовательных сценках. А сама история... пожалуй, я бы назвал её уютной. Хотя сюжет посвящён трагическим событиям, он разворачивается в очень тёплом и любящем мире: здесь нет плохих или даже просто эгоистичных людей, нет материальных проблем (речь о семье известной художницы), все любят друг друга, принимают выбор каждого и делают всё возможное, чтобы помочь, одновременно справляясь со своими собственными проблемами.

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

No Case Should Remain Unsolved

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

Прозвучит тупо, но, честно говоря, единственной проблемой для меня стало то, что игра корейская — я, видимо, уже старенький, потому что у меня никак в голове не помещалось, кто там Choi Donggeon, кто Song Minyeong, а кто Seo Wonyeong, и даже кто из них мальчик, а кто девочка; всё это мгновенно вымывалось из головы, как только откладывал steam deck. Но в остальном я считаю, что механика очень крутая, и история тоже получилась в меру запутанная и в меру интересная, и я бы с удовольствием поиграл в следующие эпизоды в том же духе.

А Горюшко вслед собакою…

Очень короткая визуальная новелла, затрагивающая крайне тяжёлые темы (Великую отечественную) и очевидно претендующая на большую эмоциональную нагрузку. К сожалению, у меня игра сильных эмоций вызвать не смогла именно из-за своей краткости: у меня не было времени узнать что-то о персонажах, примерить их на себя, сформировать эмоциональную связь. Единственный момент, где игра для меня действительно сработала — финальная сцена, которая очень хорошо сделана, и идущие после неё титры, которые я не хочу спойлерить. Но если бы у нас было больше времени, чтобы проникнуться персонажами и историей, вся игра могла бы сработать так же хорошо...

Чуть обобщая, это как раз, на мой взгляд, хороший пример того, чем жанр игрового повествования отличается от, скажем, кино. В игре ты почти всегда проводишь с героями больше времени, чем в кино, причём это может быть quality time, в течение которого ты буквально вживаешься в героев. Мне кажется, именно это и должны давать игры, это их уникальная сильная сторона. И, например, недавно упоминавшаяся серия OPUS, в которой насквозь анимешные картонные персонажи живут в вымышленном фантастическом мире, тем не менее работает для меня лучше, чем эта игра, где речь идёт про абсолютно реальную огромную трагедию моего собственного народа — просто OPUS дал мне больше времени и лучше погрузил в контекст.
❤‍🔥11🔥54👍3👏1
Вчера выступал на митапе "Расскажи мне про ИИ", который был в Центре ИИ СПбГУ организован коллегами-журналистами. Записывали только аудио, сделал вот из него видео со слайдами; к сожалению, не записались вопросы после лекции, там тоже было интересное обсуждение. На лёгкий американский акцент, иногда переходящий в китайский язык, не обращайте внимания — это мой шумоподавитель слегка передавил.)

https://youtu.be/rsaIXXb7bKs

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

1. "Искусственный интеллект" — очень неудачное название для области науки, потому что оно смешивает область науки и её цель, продукт. Это всё равно что экспериментальная ядерная физика называлась бы "коллайдер" или "бозон Хиггса". Но это неудачное название мы с вами уже не изменим, так что остаётся как-то mitigate damage, и для этого надо использовать слова так, чтобы в голове читателя наука и её продукт не смешивались.

2. Например, когда пишут "ИИ научился..." или "ИИ теперь умеет...", это формально верно, можно метафорически сказать "физика теперь знает" или "медицина научилась"; если вы пишете об AI целую книгу, во введении к этой книге такая фраза может быть уместной. Но как заголовок статьи это создаёт у читателя не образ области науки с тысячами разных исследований, а образ какого-то единого монолитного "искусственного интеллекта", который где-то живёт и чему-то учится; лично я много раз видел этот образ в головах людей, и не надо эту ошибку усугублять. Вместо этого лучше говорить "учёные разработали новую модель" или "новый метод ИИ" — это сразу подчёркивает, что методов тысячи, и вот ещё один.

3. Но самая нелюбимая мной фраза — это "учёные применили искусственный интеллект". Это даже формально неграмотно — никто не напишет "учёные применили физику". Когда говорят "учёные применили", дальше должен идти конкретный метод, который используется как чёрный ящик: "археологи применили радиоуглеродный анализ" или "учёные применили алгоритм PPO для обучения с подкреплением". А когда пишут "учёные применили ИИ", на самом деле имеют в виду "учёные разработали новую модель машинного обучения" — и во всех остальных науках так бы и написали! Не "учёные применили медицину", а "учёные разработали новое лекарство", с акцентом на то, что люди придумали что-то новое. И только в нашей науке почему-то популяризаторы отнимают у людей-учёных их агентность раньше времени...
👍30🔥85❤‍🔥4🤣2
А вот и следующий пост про мою новую книжку. Пока авторских экземпляров у меня нет, но посмотрите, какое чудо мне вчера подарили! ❤️❤️❤️

Я весь растаял уже, очень-очень приятно.)

Напоминаю, что это про обложку книги "Машинное обучение: основы", которая уже доступна для заказа в издательстве "Питер"

https://www.piter.com/collection/biblioteka-programmista/product/mashinnoe-obuchenie-osnovy

Кто-то даже уже её физически получил - но пока не я.)
63❤‍🔥8👏8