Deep Learn Me
СтатистикаЧат: https://t.me/deeplearnme_chat Канал про IT, ML, DL, Research, Python и к ним прилегающее YouTube: https://www.youtube.com/channel/UCs46uHl7ngm6TTjpFzQHfqA Канал про мою жизнь в Нью-Йорке: https://t.me/korney3_travel
- Последний пост
- 26 мар. 2025 г.
- Последнее чтение
- 13 авг.
- Постов за неделю
- 0
- Всего постов
- 20
- Тип
- открытый
- Язык
- русский
- В каталоге с
- 13 авг.
- 1/24сутки в ленте
- —
- 1/48двое суток
- —
- 1/72трое суток
- —
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
POV: тебя настигают дедлайны (но ты быстрее!), поэтому тратишь весь вечер на выбор красивой темы для нового терминала 👋 Или увидела у коллеги на работе новый терминал для зумеров (а я-то все сидела на iterm-е и думала, что я продвинутая....😐) В общем, для…
Начинаем понедельник с грустного В пятницу у меня случился коллапс на алгоритмическом интервью с медиум литкодом Задачка похожая на воть: https://leetcode.com/problems/swap-adjacent-in-lr-string/description/ Я долго сопротивлялась, но, кажется, придется все-таки ботать литкод 😢
без подписи
без подписи
Еще милоты с моей работы Во-первых, с прошедшим днем числа пи Во-вторых, команда, которая занимается одним из продуктов нашей компании, который называется PyMol (уже чувствуете, куда это идет??), сделала релиз новой версии на той неделе В общем, номер релиза 3.1.4 (вау!), так что релиз тематический - https://www.schrodinger.com/platform/products/pymol/ Py от python (наверное) превращается в pi, Mol от molecule в mole, который крот Так что маскот релиза - это очаровательнейший кротик с пирогом (потому что pi еще и pie 🥧 ) И у последнего релиза даже иконку поменяли на кротика с куском молекулы Короче, если продукты и разрабатывать, то только с милыми маскотами 🥰🥰🥰 Всем таких же няшных релизов :3 #release #pretty_staff #memes #deeplearnme_work
без подписи
POV: тебя настигают дедлайны (но ты быстрее!), поэтому тратишь весь вечер на выбор красивой темы для нового терминала 👋 Или увидела у коллеги на работе новый терминал для зумеров (а я-то все сидела на iterm-е и думала, что я продвинутая....😐) В общем, для тех, кто в танке, как и я: создатель Terraform выпустил свой новый терминал - Ghostty 👻 https://ghostty.org/ Он написан на языке Zig (вы не знаете его? вот и я тоже...) Основные его фичи 1. Предполагается, что он СУПЕР быстрый, поскольку он написан с оптимизациями под использование гпу (я не знала, что скорость терминала - это проблема, нудаладно) 2. Работать с приятными настройками из коробки (когда я установила его голышом, не поняла, что в нем такого есть, чего нет в iTerm) 3. Иметь супер простой конфиг в текстовом файлике с синтаксом из пар ключ-знаение - это одобряем, кто-то даже сделал милый сайтик, где можно сделать свой конфиг потыкав кнопочки - смотреть туть https://ghostty.zerebos.com/ В общем, я поигралась на работе, и сейчас пришла еще на свой ноут поставила 💃 Поскольку было настроение, решила заодно попробовать oh-my-bash, чтобы сделать красивый промпт. Поставила себе тему nekonight_moon, потому что у нее вайбы сейлор мун😳 Правда, пришлось внести в нее маленькое изменение, чтобы добавить conda environment, пусть тоже будет тут В общем, потестим-посмотрим #git_repo #terminal #pretty_staff #useful_links
😭😭😭😭 Если вы на этой неделе еще не выделили времени "для себя", чтобы позаниматься самобичеванием по поводу того, что вы делаете недостаточно - вечер пятницы отличное время для этого! Не благодарите #memes
без подписи
без подписи
все так #memes
Я вот жаловалась на докер а не наши кривые лапки в апреле Во-первых, я нажаловалась не на ту команду в Dockerfile 😂 Поэтому вношу коррективы. Во-вторых, оказывается, та команда, на которую я ругалась, на самом деле проблему решает, поэтому заодно рассказываю, как пофиксить 💃 TLDR: === У нас в Dockerfile была команда, которая устанавливала наш фреймворк `pip install`ом по ссылке, а-ля RUN pip install https://FILESERVER/PACKAGE_NAME.whl И, поскольку мы с командой все пользуем одну машину как docker host, у нас этот слой docker image был все время закэширован, даже когда файл по ссылке https://FILESERVER/PACKAGE_NAME.whl ОБНОВЛЯЛСЯ. Да-да, можно было версионировать название, но тогда для каждого обновления библиотеки, пришлось бы все докерфайлы обновлять === В общем, мы эту проблему решали хардкорно - каждый раз, когда PACKAGE_NAME.whl обновлялся, мы зачищали весь кэш у docker host, и ночью заново запускали билды наших 100500 имаджей Теперь к нам в команду завезли 4х индусов, которые работают из Индии, с которыми у нас разница 12 часов и теперь в принципе в команде нет времени, когда никто не работает и нельзя по 7 часов каждую неделю перекраивать наши докеры В общем, нам пришлось подойти к проблеме интеллектуально и все таки почитать доку чатгпт, чтобы найти решение получше и ОКАЗАЛОСЬ, что команда ADD https://FILESERVER/PACKAGE_NAME.whl PACKAGE_NAME.whl, на которую я набычила, на самом деле не виновата в кэшировании старого файла. Вообще говоря, слой ADD и не кэшируется, файл по ссылке будет скачиваться всегда, вне зависимости от того, обновился он там или нет А вот RUN pip install PACKAGE_NAME.whl файла, который теперь находится в локальной файловой системе, теперь будет проверять хэш PACKAGE_NAME.whl и если файл остался прежним - будет кэшировать слой, а если поменялся - будет билдить его с нуля ‼‼‼ не знаю, какая мораль истории кек Пожалуй, что решение проблемы в стиле "мартышка с гранатой" работает, но обязательно настанет момент, когда придется разбираться и делать нормально 🔦 #devops #docker
Кстати по ходу соревнования столкнулась с очевидной проблемой: входной сsv файл весил ~50gb, и после первых экспериментов я поняла, что, когда я использую его head для обучения, распределение данных вообще не похоже на тестовое, так что его надо было перемешать. Пока искала способы помешать гигантский csv, нашла такой прикольный алгоритм - merge shuffle. Он использует жесткий диск вместо того, чтобы загружать все в RAM. Суть как в mеrge sort - проверяем, влезает ли файл в RAM, если да - читаем его и мешаем, если нет - случайно разбиваем на 2 файла и записываем их на жесткий диск. Рекурсивно проводим эту операцию с полученными файлами, в конце в любом порядке append файлы друг к другу. Жесткий диск алгоритм жрет только в путь... Поэтому у меня на локальной машине у меня все intermediate файлы не влезли лол Я в итоге использовала тренировочные данные записанные в формате parquet - они записаны шардами, поэтому можно было кусками читать данные в RAM. И я просто перемешала индексы строк, случайно выбрала N индексов, и по очереди читая шарды, записывала строки по случайным индексам в отдельный файл 😇 Но идейно алгоритм обратной сортировки звучит прикольно 😆 #algorithms #useful_links
Еще недавно завершилось соревнование на Каггле по предсказанию молекулярных свойств, про которое я писала туть. Я даже лениво в нем поучаствовала, пытаясь организовать на моем маке обучение XGBoost модели на данных размером ~200*10^6 строк с использованием фичи в XGBoost, которая позволяет делать загрузку данных on-fly по типу даталоадеров для нейросеток (писала про фичу тут). Спойлер: для всех featurized данных моего жесткого диска не хватило, так что я просто делала downsample датасета по количеству позитивных примеров. Супер результата достичь не вышло, но поиграться с этой фичой было прикольно, код можно посмотреть туть. Ноооо, соревнование оказалось с сюрпризом. Вообще, на соревнованиях в Каггле обычно есть 2 лидерборда - private и public. Результаты решения на public лидерборде видны всегда, а private открывается после окончания соревнования. И они часто отличаются, поскольку люди оверфиттятся на скоре public лидерборда и могут упасть или подняться на 10-20-100 позиций за счет плохой генерализации на private лидерборде. Но в этот раз случился вообще цирк: 4 команды на первых местах взлетели на 800-1000 (!!!!!!) позиций, потому что молекулы в private части тестового датасета вообще не присутствовали ни в обучающем датасете, ни в public части тестовых данных. В такой ситуации, результаты больше похожи на лотерею... И что уж говорить о том, что такой сетап совершенно не похож на реальную ситуацию в drug discovery проектах. Соревнование взяли на NeurIPS и вообще оно было супер популярно на Kaggle, компания организатор сделала себе неплохую рекламу, но после результатов я бы сказала, что они либо не супер разбираются в том, как такие данные используют, либо сделали соревнование на отЪе-сь, что в любом случае говорит не в их пользу. Короче, реально от души сочувствую людям из топа public лидерборда, которые серьезно участвовали в соревновании и потратили много времени и сил🥲 #ml_drug_discovery #competitions #git_repo
без подписи
Вот начну с того, что мы уже год пишем статью, которую реджектнули на воркшоп NeurIPS в том году за то, что мы не опубликовали данные, на которых ставили эксперименты (оказывается (вот сюрприз!) пытаться заниматься наукой в рамках не академической среды очень запарно) Но вот мы наконец-то дошли до стадии оформления и подготовки к публикации. Это вот обложка, которую сгенерил мне DALL-E, и обложка, которую сгенерил мой мозг (если прогрОммистов все-таки заменят - пойду на панель рисовать научные иллюстрации) #deeplearnme_diary #deeplearnme_work
Ух, как-то я ушла в конце апреля в отпуск, и так отпустила, что вылетела из своего режима ведения паблика 🙁 Еще меня немного завалило апатией, потому что ровно в том же конце апреля мне пришел отказ от работы, куда я собеседовалась с января (!!!), прошла около 7 стадий интервью (3 технических + тестовое). Спустя огонь и воду, эйчары несколько недель капали мне на мозг, прося ответ на еще выданный оффер, организовывали мне звонки с тимлидом, фирмой, помогающей с переездом, пока оффер проходит стадию одобрения CEO... Ну, и когда я ментально уже запаковала чумоданы, меня этот самый CEO благополучно послал в пешее эротическое 😐😐😐😐 В общем, поскольку советы давать легче, чем им следовать, никому не советую до получения оффера развешивать уши, а еще точно не советую принимать отказы так близко к сердцу, даже если вы потратили на процесс отбора кучу сил и времени... Мб оно и к лучшему и это ред флег, и вам туда не надо 👍 Спустя пару месяцев самокопания и попыток порадовать внутреннего ребенка (я вот начала учить японский, например!🙂), я решила, что мне надо немного переформатировать канал. Поэтому пока что в тестовом режиме вместо попыток быть "новостным каналом про все на свете", буду писать про темы ближе к тому, чем я занимаюсь (потому что что-то у меня все время происходит, но не по расписанию :D ) как-то так, держу в курсе, всем чмок в пупок👋 #deeplearnme_diary
без подписи
Stealing Part of a Production Language Model Наткнулась тут на прикольную статью, которая хайпово называется КрАжА твоего сердечка КусОчКа ПродАкЩн LLM мОдеЛи. Звучит ну очень по-хацкерски, но на самом деле это просто отдельная область, которая называется attacks на нейросетевые модели, в частности LLM. В этой конкретной работе авторы при помощи ядерного оружия🌟 линейной алгебры и большого набора (стоимостью 20$ обращений к чатгпт апи) log probs ответов модели на промпты находят hidden size скрытого представления данных и “embedding projection layer of a transformer model” (я сильно глубоко не вчитывалась, но как будто это скрытое представление матрицы Q)🔦 Статья мне понравилась, потому что она опирается на базовый линал (в основном на собственные значения матриц и SVD - обожаю SVD!!!!). Единственное, чего я не оч понимаю - что все эти вычисления полагаются на то, что все вектора скрытых представлений живут в линейном пространстве (для которого все эти собственные значения и разложения работают). Не, ну мы все видели эту картинку про Word2Vec, где король-мужчина=королева, но насколько так же линейно все в пространстве скрытых представлений нейросетей…. Хз, я про это иногда думаю, но пока ничего не читала глубокого на тему.❓❓❓ В общем, хз, насколько нам ценны детали о размерностях продакшн ллм моделей, но раз OpenAI так ревностно инфу эту хранит, то почему бы им назло ее не раскопать? В любом случае интересный кейс применения линала и в целом область🙂 #paper #maths #research #llm
Блин, я ничего не понимаю в роботах и во мне умер инженер конструктор, но я правда считаю, что робототехника это одна из самых интересных областей для работы и для мл там сейчас простора дофига Вот показывают, как hugging face чуваки занимаются робототехникой как хобби 😳 Я сначала просто умильнулась, а потом такая "Погодите-ка!" Они реально сделали робота, который распознает свое окружение не классическими object detection моделями, а LLM, которая по изображению может написать, что находится на картинке 😮😮😮 Понятно, что это просто игрушка, но я за областью не слежу, теперь реально и обжект детекшон заменили ллм?❓ #llm #ai_applications #memes