Telegram Web
Audio
Несколько лет назад я смотрел ролик на ютубе о самой загадочной песне в интернете. Ролик очень цепляющий. О том, как комьюнити на реддите несколько лет искало песню, записанную на аудиокассету где-то в первой половине 80-х годов. К сожалению, финалом того ролика было то, что сообщество, потратив кучу усилий и раздобыв тонны информации, все-таки зашло в тупик. Помню, именно тогда я начал обращать внимание на то, как люди, сплоченные одной целью, могут проводить расследования и находить ответы на сложные вопросы по довольно слабым зацепкам.

Ну, и вчера ютуб в рекомендациях мне подсунул свежий ролик от того же автора, который назывался "Эту песню искали 20 лет... И НАШЛИ". Я отложил просмотр, потому что был занят рабочими вопросами и, вот, только что посмотрел. Ну, во-первых, еще одно очень цепляющее видео с продолжением расследования. Здесь и мошенники, пытающиеся заработать на популярности песни неизвестной группы, и новички, считающие, что они нашли разгадку, тупо "прошазамив" песню, и тролли, подделывающие постеры, аудиозаписи и другие артефакты, чтобы увести расследование по ложному пути, и подозрения в мистификации, и полусекретные правительственные организации с большим архивом записей прослушек граждан. Крутейший детективный сюжет, по которому точно фильм надо снимать (или даже сериал). Во-вторых, песню (а точнее, ее авторов), таки, нашли. Буквально в этом месяце. Они оказались живы, хотя возраст уже за 70. Ну, а в-третьих, то, что подтолкнуло меня к написанию этого поста, кроме желания поделиться классной историей, это то, что в поисках очень помогла специально обученная на материалах расследования нейросеть, которая довольно быстро сделала верное предположение об авторстве песни и всячески помогала в поисках.

В общем, если любите такие истории - однозначно рекомендую к просмотру оба ролика. Они цепляют! Да и про способы применения ML заставляют в очередной раз подумать.

1-я часть (в целом, краткое содержание есть во второй части, но может быть интересно в исторической ретроспективе).
2-я часть.
В современном мире в обилии контента довольно легко потеряться и не так просто стало удивлять, поэтому новость о том, что прошел финал международного чемпионата по программированию Yandex Cup 2024 я начинал читать просто для галочки, чтобы быть в курсе того, что еще происходит в индустрии. Но когда я дошел до главной темы, вокруг которой объединились участники чемпионата, интерес проснулся.

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

Также зацепил "Музей Айтичности", где посетители могли представить, как через много лет могут выглядеть артефакты современной IT-культуры. Сразу вспомнилась история про то, что современные археологи тоже проводят раскопки древних городов, все описывают, каталогизируют, а затем... закапывают обратно. Три кофе-машины... два кулера... 15, нет, 16 ноутбуков. Записал? Закапывай 🙂

Все проходило в Ташкенте, участвовали специалисты из 90 стран, среди которых были даже юниоры (от 14 до 18 лет). Призовые места заняли 94 человека из России, Беларуси, Японии, США, Великобритании и Португалии и разделили между собой призовой фонд в 16 млн рублей. Особо внимание, кстати, уделили поддержке ML: количество финалистов увеличилось с 6 до 22, а к изначальной сумме призового фонда добавилось 3,5 млн рублей.
Каюсь, лежит у меня этот плейлист запланированным для просмотра довольно давно, но только сейчас дошли руки начать смотреть. И это просто кайф! Павел Кикин на проятяжении 10 роликов рассказывает о том, как должен быть устроен нормальный ML в компании. При этом Павел сам в ML пришел из бэкэнда, а поэтому очень много про версионирование, стиль кода, документацию, управление зависимостями... Очень структурированный и полезный материал! Смотрю уже четвертое занятие - еле оторвался мини-пост написать 🙂
MLOps и production подход к ML исследованиям 2.0
В предыдущем посте я хвалил курс по MLOps. В третьей или четвертой лекции был рассказ про шаблоны и cookiecutter. У меня сейчас как раз задача, связанная с обоснованием работы по шаблону, для которой понадобилось сделать мем, чтобы разбавить сухое повествование.

Что ж, могу сказать, что ChatGPT уже довольно неплохо генерирует мемы и некоторые, прям, получаются.

Вот, пример. Картинку пришлось немного почистить от лишних объектов в другом сервисе и заменить изначальную надпись. Заняло все это час времени где-то, если не считать, что пришлось фотошоп переустановить :)
Raspberry-Pi-74-Commands-4239584953.pdf
1.4 MB
Я, тут, с Raspberry Pi решил поиграться. Есть несколько задумок по автоматизации и добавлению ума дому. Нашел красиво оформленный cheat sheet с основными линуксовыми командами. Действительно, самые часто встречающиеся в работе на обычном линуксе плюс дополнительные полезные команды в контексте Raspberry.
С Наступающим Новым годом, друзья!

В эфире праздничный выпуск 🙂 В гостях Сергей Николенко - доктор физико-математических наук, старший научный сотрудник ПОМИ РАН, доцент ФМКН СПбГУ, Head of AI компании Synthesis AI, исследователь в области машинного обучения, в частности глубокого обучения, теоретической информатики и анализа алгоритмов, автор более 200 публикаций в этих и других областях информатики и математики, автор нескольких книг, в том числе бестселлера "Глубокое обучение" (Питер, 2018) и монографии "Synthetic Data for Deep Learning" (Springer, 2021). Почему математики в машинном обучении много, а машинное обучение в математике приходится искать? Могут ли программы перебирать другие программы для решения задач перебором? Почему до сих пор не автоматизировали поиск решений для задач тысячелетия? Решают ли большие языковые модели олимпиадные задачи по математике лучше олимпийцев? Как победить LLM на математической олимпиаде, подсунув ей задачи по геометрии? Можно ли автоматизировать учёного? Что лучшие математики современности думают о модели o1? Могут ли нейросети выводить физические законы? Как понять, что AGI уже здесь? А что делать, если уже здесь? Как написать системный промпт к очередной LLM так, чтобы она не захотела уничтожить человечество? На кого учиться, если кругом все делают роботы? Обо всем этом в выпуске!

https://mlpodcast.mave.digital/ep-67
Честно говоря, не думал раньше, что отдыхом в новогодние праздники буду считать решение задачек по алгоритмам. А оно, вон, оно как 🙂 Реально голова переключилась и, видимо, те отделы мозга, которые устали от рутины, теперь отдыхают на алгоритмах. Сразу хочется вспомнить базу, что, типа, лучший отдых - это смена деятельности. Но раньше я думал, что это про умственную активность заменить физической или наоборот, а теперь понял, что оказывается одну умственную еще и на другую менять можно, чтобы похожего эффекта достичь. А какие у вас планы на праздники?
Forwarded from Mikhail Kryzhanovskiy
Друзья, я, тут, изложил, наконец-то свое видение базовых концепций асинхронности в Python, которые помогут избежать, уж, совсем элементарных ошибок, связанных с asyncio. Позже, вероятно, еще дополню модуль информацией и более сложными примерами, но, думаю, уже сейчас выложенные материалы будут полезны тем, кто не знает как подступиться к асинхронности и не понимает за счет чего может быть выигрыш в производительности при использовании async.
https://stepik.org/lesson/759396/step/1?unit=761412
Самый большой вопрос, который пока никто не снял - это как понять, что AGI - это уже AGI?
Удивительно до чего техника дошла!

Собрался я, значит, потратить вечер на запуск Raspberry Pi. Ну, с линуксом же никогда не бывает просто, да? В итоге запустил все минут за 10! С официального сайта скачал прогу для мака Raspberry Pi Imager, указал модель платы, желаемую ОС и флешку. Сразу при создании образа автоматически подтянулся публичный ключ и настройки WiFi. Минут 5 записывался образ (1.2 Gb). Вытащил флешку из компа, вставил в плату, включил питание, нашел в веб-морде роутера IP-адрес нового устройства, подключился по SSH и... Всё просто работает! Из коробки питон 3.11.2 с виртуаленвом, git 2.39.5. Система просто летает!

Очень приятно удивлён!
Забыл выложить подкаст с Сергеем Николенко в виде файла. Для тех, кто слушает прямо в телеграме. Исправляюсь.
Audio
Сергей Николенко. Про ML в математике и перспективы AGI.
До вчерашнего дня я любой графический интерфейс для своих задач делал на виджетах ipywidgets. Когда надо было датасет прокликать, чтобы разметить его с нуля или добавить какие-то дополнительные данные в разметку, когда заказчику надо было показать как примерно может выглядеть работа с моделью в проде, когда демонстрацию надо было какую-нибудь провести как модель учится, например. Довольно удобно и не требует от тебя разбираться в тонкостях HTML и CSS. Я хоть и немного разбираюсь, не скажу, что очень люблю это дело.

Так вот, вчера я познакомился с python-библиотекой gradio, в которой можно еще быстрее, удобнее и красивее собирать графические интерфейсы! Оказывается, всем известный веб-интерфейс AUTOMATIC1111 (не помню сколько там единиц) сделан на gradio и еще много всего. Короче, я залип и теперь все свои веб-интерфейсы буду делать на gradio. Работать проще, чем в ipywidgets. Документация хорошая. Наверное, немного не такая подробная как у ipywidgets, но разобраться в примерах не составляет труда. Возможно, даже попробую написать шаблон админки для ботов.

За наводку спасибо Юрию Окуловскому! В своем курсе, про который я писал здесь, он и упомянул данный инструмент. Красота!
Пятничный выпуск, друзья!

В гостях Дмитрий Берестнев - Chief Data Scientist/Head of ML музыкального сервиса Zvuk.com. Будем разговаривать про музыкальные рекомендации и немного затронем генерацию музыкальных треков. Как понять, что хочет пользователь, если он и сам не знает чего хочет? Как отличить негативный локальный фидбэк от негативного глобального? Какие признаки можно извлечь из музыкальных произведений? Надо ли распознавать тексты песен и что такое смысловой вектор? Как сверточные нейронные сети, которые работают с изображениями, применяют к музыке? Для чего заваривают плейлисты? Существует ли сезонность пользователя? Что произошло такого, что низкокачественный jukebox превратился в достойный suno? Можно ли генерировать музыку на лету, на основании предпочтений пользователей? Когда мы будем слушать полноценные новые альбомы от ушедших исполнителей? Как послушать сказку голосом любого персонажа? Обо всём этом в выпуске!
https://mlpodcast.mave.digital/ep-68
Audio
Дмитрий Берестнев. Про рекомендации и генерацию музыки
Хотел написать данный пост уже давно, как только сам узнал про данный способ кодирования прав на файлы в ОС Linux, но почему-то мне казалось, что все итак об этом знают. Но столкнувшись в очередной раз во время консультации, что команда chmod применяется как заклинание, без понимания, что за ней стоит, решил написать пост, на который можно будет ссылаться в дальнейшем.

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

У каждого файла в ОС Linux есть три категории доступа:

- Чтение (r - read)
- Запись (w - write)
- Выполнение (x - execute)


И при этом у каждого файла также есть группы пользователей:

- Владелец (Owner)
- Группа (Group)
- Другие (Others)


Проверить права на конкретный файл (или директорию, которая, как и всё в Linux, тоже файл) можно командой:


ls -la <file_name>


Вот, например, вывод сведений об одном из файлов на моей плате Raspberry Pi:


-rw-r--r-- 1 mikhail mikhail 57505220 Nov 19 16:36 BeginnersGuide-5thEd-Eng_v3.pdf


Обратите внимание на запись слева -rw-r--r--. Первый прочерк отвечает за тип файла. Если просто прочерк - это какой-то отдельный файл, если вместо прочерка d - это директория, если l - это "мягкая ссылка" и т.п. Дальше идёт запись, которую можно разбить на три группы по три символа rw-, r-- и r--. Это как раз те самые категории доступа для групп пользователей. Первая группа (самая левая) отвечает за права владельца, вторая за права группы и третья за права всех остальных. Таким образом данный файл могут читать все категории пользователей (у всех первый символ r - read). Писать в этот файл может только владелец (у него у единственного есть символ w - write), ну, а исполнять не может никто, потому что файл, в принципе, не исполняемый.

Здесь важно отметить, что в каждой группе символы r, w и x могут находиться только на своих местах. То есть всегда последовательность такая rwx. Нельзя записать эту последовательность по-другому, типа, wrx или xrw. И сейчас станет понятно почему. Наличие символа r, w или x в каждой группе пользователей говорит, что соответствующее право у этих пользователей есть. Можно обозначить такое право флагом 1. А прочерк говорит, что права нет - флаг 0. То есть запись из примера rw-r--r-- (первый символ, отвечающий за тип файла не рассматриваем) можно представить в виде последовательности флагов 110100100. Или, чтобы было нагляднее, так 110 100 100 (права владельца, права группы, права остальных). Несложно заметить, что если используется три бита на кодирование прав группы, то это ничто иное, как восьмеричная система счисления, ведь ровно столько бит нужно, чтобы представить каждую цифру в ней. Соответственно, если перевести флаги из двоичной системы в восьмеричную получится более компактная запись: 110 - 6(8), 100 - 4(8), 100 - 4(8) или, если объединить, 644.

В Linux через такую сокращенную запись можно удобно назначать права файлам и директориям. Если нужно выдать все права для всех, то команда такая:


chmod 777 <файл_или_директория>


Если оставить все права только владельцу - такая:


chmod 700 <файл_или_директория>


И так далее.

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

rwx4 + 2 + 1 = 7
rw-4 + 2 + 0 = 6
r--4 + 0 + 0 = 4
r-x4 + 0 + 1 = 5

В общем, когда вы в следующий раз встретитесь с записью типа sudo chmod 644 она больше не будет для вас магическим заклинанием 🙂
Строим рекомендательную систему фильмов на Kaggle

Вы когда-нибудь хотели сделать свою собственную систему рекомендаций фильмов? 🎬

Приходите на бесплатный вебинар, где Савелий Батурин, Senior ML-Engineer и преподаватель курса по ML школы Simulative в прямом эфире покажет как построить рекомендательную систему фильмов на Kaggle.

Что будем делать на вебинаре:
• Разберем имеющиеся данные фильмов с их оценками
• Проведем предобработку данных
• Построим рекомендательную систему на основе машинного обучения
•Проведем расчет и анализ метрик на основе результатов работы модели

🕗Встречаемся 21 января 19:00 по мск

Вебинар будет интересен как новичкам, так и уже опытным специалистам

Зарегистрироваться на бесплатный вебинар
Помните, что во многих сценариях сильный ИИ убеждает человечество давать ему всё больше и больше вычислительных мощностей? Так вот, он уже :)
Завтра с утра выйдет огненный подкаст с психологом Николаем Додоновым, в котором мы будем много говорить про наши страхи, а еще больше про финансы. Разберёмся, например, почему даже хорошие хард-скиллы не гарантируют хорошей зарплаты. Или как разрешить классическую проблему, когда не берут на работу из-за отсутствия опыта. Или почему всё время кажется, что мало знаний для поиска работы и как понять, что их уже достаточно. В общем, очень полезный разговор получился.

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

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

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

Новый подкаст ждите завтра с утра! Думаю, многие получат достаточно конкретные ответы на частые вопросы!
2025/02/23 21:10:25
Back to Top
HTML Embed Code: