Время Валеры – Telegram
Время Валеры
28.9K subscribers
189 photos
6 videos
1 file
398 links
Мне платят за то, что я говорю другим людям что им делать.
Автор книги https://www.manning.com/books/machine-learning-system-design
https://venheads.io
https://www.linkedin.com/in/venheads
Download Telegram
Однажды я работал в очень большой компании с очень крутыми консультантами

Очень крутые консультанты работали над очень важными проектами по оптимизации промо акций, ассортимента и всего на свете.
Ребятами они были умными и приятными в общении. Читали разные книги, могли поддержать беседу и совсем ерунду почти никогда не предлагали.

К сожалению они не умели писать код, не знали что такое архитектура/дизайн и масштабирование систем.
Для них было неприятным открытием, что некоторые вещи при масштабировании в 15 000 раз - нежизнеспособны. Хотя казалось бы, все слышали про муравья, которого при увеличении раздавит под собственным весом.

Кульминацией послужил момент когда мне с гордостью вручили архитектуру проекта - большой листа формата А3, плотный картон, красивые цветные иллюстрации.

Я взял лист и начал его изучать. Многочисленные прямоугольники, изображенные на нем, внушали уважение. Приглядевшись к ним, я понял что типов прямоугольников два - excel и jupyter notebook, местами соединенные через планировщик задач.

Мороз пробежал по спине при мыслях о таком продакшене. Но надо было держать лыбу, ведь партнер от консультантов сидел рядом и внимательно наблюдал за моей реакцией. Благо я тоже читал книжки, в которых Сунь Цзы писал: Война – это путь обмана. Поэтому, если ты и можешь что-нибудь, показывай противнику, будто не можешь

Стоит ли удивляться, что большинство проектов неизмеримо разрослись, команды стали слишком большими и неповоротливыми, а один проект стал притчей во языцех с ежедневными стендапами в полтора часа
#Memoir
👍184😁70🤣25🔥12🍾10😈8👎4🤔3
На следующей неделе выступаю в рамках ML/AI Track на Linq Conference event. Тема - The First steps in designing ML systems. По факту - краткий пересказ первых трех глав книги Principles of ML System Design
👍142🎉18🐳11💩73🌚1
Получил награду внутри компании - communicate with candor. Меня правда во время объявления не было, летел в самолёте. Говорят, дали за то, что always direct, but communicate with respect

Награда приятная, но очень опасная, так и до loose canon недалеко, что в художественном переводе на русский означает - обезьяна с гранатой
🔥143🤡35👍19😁16🍌8🥴6❤‍🔥3🤔3👎1
Памятная дата. Чуть больше десяти лет назад я уехал продолжать обучение в Германию, в город Karlsruhe

Со мной были рюкзак и два чемодана. Один чемодан по прилёту забрали в аэропорту на проверку, что упростило дорогу до города.

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

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

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

Первая встреча была с немецким жуликом - жулик поводил меня по студенческим общагам, где в итоге он показал мне большую комнату, в которой не было мебели, а туалет и кухня были в общем холле. Комната стоила 350 евро в месяц, еще 700 евро нужно было отдать в виде депозита, 100 евро - как депозит за ключ (что меня удивило, при наличии предыдущего депозита) и еще 800 евро жулику за его услуги. Я сказал что предложение отличное, но мне нужно сходить в банкомат и был таков. Ушел я, понятное дело, не в банкомат, а на вторую запланированную встречу.

Вторая встреча была с чудесной девушкой Радмилой, которая сдавала комнату в своей квартире на полгода, до момента приезда ее Папы, профессора математики. Карлсруэ - город с большим количеством студентов, комнаты уходят как пирожки, поэтому Радмила была удивлена, что на ее предложение отозвался только один человек. Я не был удивлен, потому что за месяц до этого, письмо, отправленное на адрес Radmial@ вернулось с ошибкой, я быстро поменял адрес на Radmila@ и получил ответ. Судя по всему, с этой задачей справился только один человек. Призом была комната за 350 евро, с мебелью, кухней, ванной и всем остальным, всего в двух остановках трамвая от университета (впрочем и пешком было недалеко). Спустя пару дней мой чемодан вернули из заточения и жизнь стала налаживаться

К слову, немецкого жулика я встретил в этом трамвае четыре месяца спустя, когда пришло время искать новое жилье. Но о том, как я познакомился с солисткой Мариинского театра и стал снимать у нее квартиру - в другой раз
#Memoir
👍507🔥96😁32🍾1613👏8🤔4👎2
Все мы были детьми, кроме тех, кто ими еще являются. Меня сия участь тоже не миновала
Как только появляются дети, возникает вопрос, что с ними делать? Решением этого вопроса занимались многие, от Аристотеля и Платона, до Монтессори, Корчака и Макаренко.

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

История, правда, не о цветовой сегрегации. История о том, как пользуясь служебным положением, я украл честь третьего отряда во время Зарницы.

В 2004 году меня отправили в Лагерь, на три смены подряд. Во время первой смены мне удалось захватил власть и стать председателем штаба Лагеря. Тоже самое произошло и во вторую смену. Власть вскружила мне голову и я стал терроризировать пионервожатых. Будучи умным ребенком я терроризировал их в рамках закона и поэтому выгнать меня из лагеря у них не получилось. Не выдержав морально давления, взрослые побежали жаловаться директору лагеря. К счастью и она не имела материала на руках, позволяющего меня выгнать, поэтому, чтобы спасти вожатых, ей пришлось переселить меня в свой коттедж. Поддавшись разврату роскоши я начал позже ложиться и позже вставать. Ведь завтрак приносили прямо в коттедж директора и не было необходимости маршировать в столовую, а вся жизнь в лагере крутилась вокруг еды. К сожалению, собрания штаба шли сразу после завтрака и их я тоже прогуливал, поэтому в третью смену мои позиции пошатнулись и вместо председателя штаба, мне удалось стать лишь заместителем председателя. Что уже само по себе было немыслимым. Это никак не билось с планами главной пионервожатой, которая хотела избежать эпохи террора, но моя закулисная игра нарушила ее планы

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

Все участвующие получили звание и погоны, от низшего - рядового, до самого высшего - полковника.
Главная пионер вожатая стала полковником, начальник штаба - подполковником, командиры отрядов - капитанами, пионервожатые - лейтенантами, командbhs взводов - младшими лейтенантами или сержантами. Я стал майором. Майорский погон, как и погон полковника, имеет две полоски, явный авторитет на фоне всех остальных, где одна полоска или ее вообще нет

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

Надо ли говорить, что тихий час, следовавший за обедом, был совсем не тихим для третьего отряда. Я собрал кружок единомышленников и отправился в радиорубку клуба, объявлять что знамя, а вместе с ним и безоговорочная победа, за нами.
Почему не пошел один? Потому что отбиваться от толпы лучше вместе с группой крепких пацанов. Впрочем это вызвало ярость не только третьего отряда, но и главной пионервожатой, которая мечтала провести зарницу без захвата знамени. Впрочем, не впервые #Memoir
🔥281😁95👍41🏆14🤡7🤮6🥰5🐳4🤔2👏1
Нашел преподавателя для исправления своего акцента на английском. Через полгода расскажу об успехах
🔥122👍26👌16🍌7💩4🥴3
Большой день в мировой политике. Впервые салат одержал победу над премьер министром Великобритании
👍54🤣47🍾22🤡11💩64🐳4🤯31🔥1😁1
Прочитал занимательную статью Planting Undetectable Backdoors in Machine Learning Models

Решают следующую проблему:

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

Однако, даже если классификатор хорошо генерализует и выдает качественные предикты, указанный вид проверки никак не защищает от непредвиденного поведения не специализированном и редко встречаемом наборе данных. Более того, Snoogle может заложить backdoor mechanism, который позволяет при незначительном изменение входных данных получать нужный им результат, например всегда одобрять кредит. Что позволяет запустить бизнес по упрощенному получению кредитов у этого Банка.

Описывают два типа бэкдоров: black-box и white-box. Black - можно всячески крутить модель, white - в дополнение есть полный доступ к весам/структуре модели.
Concretely, suppose we have some idealized adversarially-robust training algorithm, that guarantees the returned classifier h is perfectly robust, i.e. has no adversarial examples. The existence of an undetectable backdoor for this training algorithm implies the existence of a classifier h˜, in which every input has an adversarial example, but no efficient algorithm can distinguish h˜ from the robust classifier h! This reasoning holds not only for existing robust learning algorithms, but also for any conceivable robust learning algorithm that may be developed in the future. We discuss the relation between backdoors and adversarial examples further in Section 2.1.

Обсуждают три способа помешать бэкдору, но и те не работают:

Verifiable Delegation of Learning
По факту можно удостовериться что вычисления прошли корректно, но все остальное должно предоставляться банком, крайне ограниченный сценарий

Persistence to Gradient Descent
Некоторые хитрецы, после получения модели и ее весов, могут захотеть прогнать еще пару итерациq обучения, чтобы стохастический градиентный спуск немного изменил веса. В статье показали, что можно создать Бэкдор, устойчивый к такому постпроцессингу (например для нейронной сети с ReLu активациями)

Randomized Evaluation
Самый перспективный способ на мой взгляд - добавляем шум во входные данные и сравниваем результат без шума и с ним. Чем-то похоже на оценку Decision Boundary Margin в SVM. Проблема в том что это работает только до определенного уровня шума, если добавлять слишком много шума - любая модель станет бессмысленной. Кроме того, шум бывает разный, если заранее знать как будут проверять, то можно под это подстроиться. Хотя тут как раз делается смелое допущение, откуда злодеи знают в каком диапазоне Банк будет проверять и какой тип шума добавлять, тем более можно добавлять много разных типов шума.

В целом ребята ставят свой целью показать, что существуют бэкдоры, которые невозможно поймать используя существующие методы. Считают что крайне важно обратить на это внимание в рамках сообществ связанных с машинным обучением и безопасностью, чтобы начать разрабатывать методы детекции. Рекомендую для всех интересующихся
#ArticleReview
👍141🔥36😍4👏2💩1
Я люблю читать и слушать различные вещи, связанные с историей.

Регулярно делаю это на ночь, потому что первые 30-60 минут все равно не могу заснуть

На русском языке мне больше всего понравились подкасты от Bushwacker

В какой-то момент я заметил, что слушаю их по десятому разу. Прослушал я не только его: Родину Слонов, Все Так на Эхо Москвы, Час Истории и т.д., поэтому решил посмотреть, может есть что-то интересное на английском языке.

Сказать что там оказалось гораздо больше материала, это ничего не сказать. Количество, детализированность и разнообразие - несравнимы.

После краткой разведки, выбор пал на Дэна Карлина и его Hardcore History Series. Вообще его подкаст платный, но всегда есть 5-7 бесплатных выпусков. Сейчас слушаю 13-часовой (3 эпизода) экскурс в персидскую империю, затем будет 25 часов (6 эпизодов) про Японию в 37-45 годах.

Затем попробую British History Podcast, 400 эпизодов по 30-60 минут. Начинают с того, что было 70 000 лет назад и уже подбираются ко временам нормандского завоевания. Про них пока ничего не знаю, а Дэна Карлина советую
👍223🔥57🐳135❤‍🔥4👎3🤔2🤩2😁1🙏1
Как раз планировал сегодня выложить небольшой разбор статьи про рекомендации от Тик Тока, как наткнулся на пост от директора из Гугла. Зато теперь знаю что статьи он не читает
😁265🤔11🤡84👍1🤯1
Исправился. Заменил any на only, может и статью прочитал?
😁133🍾29🤡25👍4
Ходят слухи что у тик тока хорошие рекомендации контента.

Прочитал статью от пацанов из tik-tok Monolith: Real Time Recommendation System WithCollisionless Embedding Table. Как мы знаем, прочитать статью - задача посильная не каждому директору

Решают две проблемы: Первая - разреженность признаков, то есть огромное число комбинацией(интеракции пользователи/видео) и соотвественно относительная редкость появления каждой конкретной комбинации.Вторая - динамичность среды, быстрая смена интересов, трендов и паттернов

Первая проблема часто приводит к коллизиями, так как комбинации путем хитрых манипуляций представляется в виде эмбедингов, а эмбединги хранятся в таблице конечного размера, соответсвенно будут коллизии и не все комбинации получат уникальные эмбединги. Следовательно надо создать collisionless hash table, которая поддерживала бы удаление неактуальных фичей.

Для того чтобы избежать коллизий используется Сuckoo Hashmap - сложность O(1) для просмотров/удалений и средняя амортизация до O(1) на вставку. Для того чтобы снизить размер таблицы - исключают редко встречаемые сущности, кроме того очищают от устаревших сущностей (что такое часто и что такое старый - настраиваемые параметры)

Обучение модели идет в две стадии.
1. Batch - всего 1 проход!
2. Online - ловят на лету, обновляют модель, обновленную модель переодически пушат в лайв

Вот пожалуй и все. Из интересного следующие тонкости:

Online Joiner - признаки и конечный результат действий - несихнронны. Пользователь может купить товар через несколько дней после его показа. Если фичи держать в памяти и ждать результата, никакого железа не хватит, поэтому большую часть грузим на диск, что то держим в памяти, когда приходит результат - смотрим и в диск и в память, затем джойним.

Negative Sampling - очень большой дисбаланс классов приводит к тому что нет смысла брать все негативные семплы. Но если брать не все - пойдет смещение в модели, чтобы это избежать, используют поправку из Nonuniform Negative Sampling and Log Odds Correction with Rare Events Data (хотя можно и проще калибровать, так мне кажется)

Модель тяжелая, весит террабайты, перекидывать всю модель после пары онлайн обновлений - довольно непрактично. К счастью, как мы помним, очень много разреженных признаков, соответсвенно обновлять нужно в каждый отдельный момент времени лишь небольшие их количество, а не всю модель. Те признаки, которые разреженными не являются - часто обновлять не надо, там дрифт происходит медленно

Результаты

Хэши проверяли
офлайн, хэш без коллизий победил везде
Data sparsity caused by collisionless embedding table will
not lead to model overfitting
Обновление модели
раз в час лучше, чем раз в 5 часов и даже чуть лучше, чем раз в 30 минут (правда не стат значимо) и всегда лучше чем без обновления, на горизонте в 50 часов
Онлайн обновление побило Batch training на 14-18% AUC в аб тесте (странная метрика для аб)

Хорошая инженерная статья и видимо именно поэтому рекомендаци Тик Тока хороши, не поленились и сделали онлайн обновления

Обучали DeepFM - DeepFM: A Factorization-Machine based Neural Network for CTR Prediction

P.S. лично для меня пару Фейсбук - Инстаграм побить тяжело. Но не по контенту, а по рекламе, сложно оценить сколько классных вещей я купил, увидев рекламу на этих площадках
👍140🔥30🐳8🤔3💩32🌚2🌭1🍌1
Интересные вещи происходят в крипто мире

FTX - 3-я по размеру крипто биржа в мире (объем около 20 млрд в день) призналась в отсутствии достаточного количества активов, чтобы покрыть свои обязательства и сейчас находится в процессе поглощения Binance (крупнейшей в мире крипто биржей и одним из первых инвесторов FTX), как же это случилось?

8 дней назад, 2 ноября, на Coindesk была опубликована информация про текущий баланс компании Alameda Research. Оказалось что между Хэдж Фондом, коим является Alameda и FTX есть очень прочная связь. Кроме того, корректность информации была подтверждена СЕО Alameda Кesearch.

В чем суть? Alameda Research основана тем же челом, что и FTX. Alameda была основана раньше и являлась крайнем успешным Хэдж Фондом, который заработал много денег на арбитраже Japanese Bitcoin premium. Затем они пивотнулись в Маркет Мейкеры, как только арбитраж пропал и заработали много денег на различных стратегиях, приобрели репутаци чуваков, которые делают отличную прибыль, но так себе работают с retail client.

Изначально FTX была создана как платформа for traders by traders, где Alameda стала первым Маркет Мейкером на FTX, предоставляя обменнику ликвидность. Их отношения на этом не закончились. Alameda также получила приоритет в своих ордерах, что по факту превращает тебя в идеальную машину по зарабатыванию денег, когда в твоем распоряжении одна из крупнейших бирж.

Это уже плохо, но дальше хуже. FTX стал для Alameda не только источником данных, но и банком. Сложно устоять, если у тебя есть мега выигрышные стратегии, но не хватает денег, а тут рядом крайне прибыльная биржа, которая тоже принадлежит тебе

Опубликованный баланс Alameda показал следующее: 5.8 млрд долларов из 14.6 лежали в токенах FTT, которые принадлежат FTX, практически все остальное лежало в токенах Solana. FTT токены давали следующие преимущества: уменьшение комиссией на торговлю, вывод денег без комиссий, вип доступ и всякие другие плюшки.

1/3 Дохода FTX использовались для покупки и сжигания токенов FTT, при этом ликвидность FTT была очень низкой. То есть, если бы Alameda понадобилось продать FTT на 5.8 млрд, они бы не смогли этого сделать, так у них токенов в 2-3 раза больше, чем их циркулирует суммарно в продаже. Интересно, что и с другими их активами творится тоже самое. Самое забавное, что основатель FTX и Alameda в одном из подкастов цинично описал такую скам стратегию как способо заработка.

Также это позволяет при аудите показать что у нас все хорошо, мы работаем порознь друг от друга, это вполне себе легальные отношения кредитор-заемщик. Единственное что может сломать эту схему, это если вдруг кто то начнет продавать огромное количество FTT и его цена пойдет вниз. Именно это и сделал владелец Binance, CZ.

6 ноября CZ заявил что продаст все FTT что у него есть, а это 500+ млн долларов.

Alameda публично предложили купить FTT over the counter по цене 22 доллара. Довольно странно так делать публично, учитывая что могли бы купить и дешевле. На что CZ отказался, что тоже довольно странно, учитывая что он в итоге продаст за меньшую цену. Очевидно это было сделано, чтобы понизить стоимость активов, что и случилось

Начались продажи, уровень в 22 доллара держался какое то время, но пал в 8 вечера по Нью Йорку, 7 ноября. Утром 8 ноября FTX остановила вывод всех средств с биржи. Alameda и сообщество вокруг FTX пытались удержать доверие, вкидывая ликвидность в вывод денег, а энергию и силы в мемы.

Опасения что FTX и Alameda повязаны привели к кризису ликвидности и предложению о покупке FTX. Однако зачем было пытаться защищать отметку в 22 доллара? Alameda были должны не только FTX, которые бы простили им все что угодно, но кроме были Voyager и Blockfi. Теперь понятно почему летом они выкупали неудачливых крипто заемщиков, им было необходимо поддержать собственные структуры и у них было достаточно ликвидности чтобы это сделать

С дыркой в миллиарды долларов FTX вынуждены были побежать к Binance за помощью и теперь у нас есть император крипты
Больше подробностей здесь
👍93🤯53🔥8💩8❤‍🔥1
В этом твиттер треде Dan Luu рассказывает про мудрых руководителей Майкрософта, которые доносили всегда ровно одно сообщение до своих сотрудников. Даже если им была нужна скорость и надежность, они сначала давили на скорость, затем спустя некоторое время давили на надежность. Если просить сразу и то и то, ничего не будет сделано. Отсутствие надежности будут объяснять необходимостью делать быстро, а медленную разработку - необходимостью надежности.

Meanwhile, the only message VPs communicated was the need for high velocity. When I asked why there was no communication about the thing considered the highest risk to the business, the answer was if they sent out a mixed message that included reliability, nothing would get done.

Затем он делает вывод, с которым я согласен полностью и который в очередной раз подтвердился на прошлой неделе - большинство комментаторов в интернете не способны понять конструкцию включающую И. Если в конструкции присутствует XOR (исключающее ИЛИ) - дело 100% гиблое

As noted previously, most internet commenters can't follow constructions as simple as an AND, and I don't want to be in the business of trying to convey what I'd like to convey to people who won't bother to understand an AND since I'd rather convey nuance

На прошлой неделе я выложил очень простое объявление:

We are hiring Data Engineers, Data Scientists and Machine Learning Engineers in the UK, EU, US, and Argentina. Please write to me.

Unfortunately, we do not provide any visa support at the moment.
You can work remotely, but the we can employ people only from country where we have an entity

За 12 часов написало примерно человек 300. Подавляющее большинство из них, безусловно, никакого права на работу не имеет.
- Право на работу есть?
- Нет, но ведь написано Remote
- Работать можно Remote, но ведь куда-то тебя надо нанять. Нанимать мы можем только там, где у нас есть Юр Лицо, список я приложил
- Понял, спасибо.

Кто то после этого еще писал, но у меня есть шенген, или что то подобное

Еще одна категория людей спрашивала есть ли visa support - и если мы наймем человека, это ведь достаточно чтобы получить визу?
Существенная часть людей писала по тем вакансиям, которых не было в посте, например - Data Analyst

Или
- Hi XXX, is it correct to assume that you have a right to work in US/UK/EU?
- No I need visa sponsorship.

С другой стороны, это отличное тестовое задание, не смог прочитать и понять пять строчек - не прошел.
А если смог написать сообщение из разряда: Я Петян, имею право на работу в месте из списка, вот мое резюме - то ты уже прошел первый этап, который отсеял 99% кандидатов
👍206😁38🤡10❤‍🔥2💩2