Борис опять
16.6K subscribers
1.54K photos
80 videos
35 files
1.61K links
life = curiosity + irreducible noise

Whois: https://xn--r1a.website/boris_again/3400

Лс: @btseytlin
Download Telegram
#лабораторный_журнал

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

Закончилась первая итерация нашей системы. Растения размечаются, результаты выводятся, модели указывают куда размечать, модели дообучаются. Но система не заменила старый подход целиком. Теперь люди и пользуются нашим решением, и ходят в комнаты с растениями (от чего мы пытались избавиться). Все потому, что новое решение закрыло не все потребности.

Настало время второй итерации, но кругом блокеры. Все проблемы не технические, а человеческие. Для полной полезности системы нам нужно измерять высоту растений, а значит надо установить сенсор высоты, но из-за некоторых политических вопросов устанавливать его не будут ещё месяц или два. Кроме того нам нужно выводить предикты моделей в еще одном месте, но это другое место огромный кусок дерьма легаси кода, который будет выпилен к новому году. Значит ничего приделывать к нему нет смысла. Так же нам нужно много разных данных для новых ML проектов, но инициатива построения data mesh (русск. нормальной архитектуры аналитики) захлебнулась на этапе найма лида под эту инициативу.

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

Скоро во второй раз полечу на фабрику под Миланом, чтобы провентилировать все эти вопросики.

P.S. Не помогает то, что у Итальянцев август это месяц, когда все уходят в отпуска. Прям вообще ВСЕ.
👍45🔥184
Forwarded from Adventures somewhere
Поделился неудачей в написании постов - поделюсь достижением.

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

Все уже знают про интервальное повторение, но если вы вдруг не знаете и используете что-то вроде Duolingo для изучения языков - лучше делать карточки (например, Anki). Преподаватель на italki + Anki пока непобедимая комбинация.

Говорю это как человек, закончивший курс китайского на дуолинго и тративший на это по ~20 минут в день в течение 685 дней: во-первых, я быстро всё забывал, во-вторых, когда я познакомился с китайцами (у нас есть на работе), меня вообще не поняли. Были способы потратить эти 300 часов с большей пользой (в том числе для изучения китайского).

Из интересных паттернов - видно, как я учил язык до рождения сына, чтобы была возможность объясниться в роддоме (на родах не пригодилось, а вот после было незаменимо - понять медсестру в 6 утра и всё такое). Видно, как после рождения всё пошло по... нехорошему пути. Видно, как потихонечку восстановился и начал заниматься более стабильно.

Сейчас я каждый вечер читаю Harry Potter y la piedra filosofal, за 15 минут успеваю устать и добавить штук 10 новых карточек (спустя несколько месяцев я уже на третьей главе😎🥲). Учу карточки в убере и в лифтах (у нас консьержи не пускают курьеров дальше подъезда, каждый раз катаюсь их встречать - пять минут повторений карточек). Дочитываю главу - прослушиваю её же в формате аудиокниги. И один-два раза в неделю учусь с преподом - аргентинкой, живущей в Лондоне.

Но я всё равно не могу понять наших консьержей🤷‍♂️
👍5811😁5🔥3😱1
Нашел еще одно применение ChatGPT для программиста: изучать дизайн паттерны, переводить примеры в книгах на свой язык.

Читаю сейчас книгу “Learning Domain-Driven Design” про архитектуру систем и там все примеры на Java. Описываются паттерны, например: transaction script, active record, event sourcing. Я такие вещи не могу понять пока не увижу кусок кода. Но в кусках кода на Java не ясно, где паттерн, а где просто бойлерплейт Java.

На помощь приходит наш любимый конвертер из текста в текст, ChatGPT. Очень удобно, что можно попросить привести пример паттерна, скажем active record, на Python и сразу получить нормальное объяснение
🔥42👍12🤔21😁1
#How_to_заботать алгоритмы для карьеры

Все слышали об историях успеха ребят, которые прорешали 300-500 задач с литкода и получили работу мечты: Яндекс, FAANG и тд. Немало таких ребят и из наших учеников. Потому наш преподаватель Тимур составил подборку материалов, исходя из своего опыта и опыта своих учеников в прохождении собесов. Если же вам кажется, что один вы не справитесь, то приглашаем на наш курс по алгоритмам, где вас ждут авторские материалы, талантливый преподаватель и заботливый контроль.

Асимптотика алгоритмов
Первое, что нужно уметь это оценивать асимтотику алгоритмов, чтобы различать, какие алгоритмы лучше для решений той или иной задачи. На эту темы можно посмотреть лекций Андрея Станкевича в ЛКШ или найти в книге Олимпиадное программирование Антии Лааксонен 3 главу

Главная характеристика алгоритма, спросят везде

Теории чисел
Теоретическая часть.
НОД двух чисел за логарифм
Проверка на простоту числа за корень
Решето Эратосфена
Нахождения ответа по какому-то простому модулю. (Полезно будет знать малую теорему ферма)
Если никогда не писали нахождения НОД или проверку числа на простоту, то для начала решаем задачи с acmp из раздела "НОД и НОК", "Простые числа", "Целые числа". Обязательно нужно прорешать более сложные задачи на leetcode. Лучше набивать руку именно на средних по сложности задачах, ибо именно такие дают на собесах.

Обычно прям задачи на нахождения НОД или проверку на простоту числа вам не дают, но дают такие задачи в которых эти знания необходимо использовать. Особенно такое любят спрашивать при отборе в какие-то лаборатории, научные институты или в тот же ШАД.

Префиксные суммы и два указателя
Теория на префиксные суммы по ссылке. В качестве задач порешайте задачи A, B, D по peltorator контесты. И конечно же задачи с leetcode
Всю теорию на тему двух указателей с задачами можно найти по ссылке. Там есть простые и более сложные задачи. Для понимания достаточно решить хотя-бы 6 задач на эту тему.

При отборе в Яндекс, FAANG и подобное вам встретиться хотя бы одна задача на эти темы. Оно неудивительно, ибо для оптимизации решения нередко используются именно префиксные суммы/ два указателя.

Бинарный поиск
Теорию можно посмотреть также от Пашки в codeforces. Там же есть практические задачи. А также подойдут набор задач из этого списка leetcode. Некоторые задачи от сюда даже попадались на собесах зарубежных компаний.

Предыдущие два пункта обычно спрашивают на ds, ml, аналитика и тд, ибо принципы несложные, а что-то спрашивать на алго секции все равно нужно..

Графы
Для начало нужно разобраться какие виды графов существуют. Советую посмотреть в codeforces
Обязательно научиться писать обходы, такие как "Обход в ширину/глубину". После научиться находить кратчайшие пути в графах. Для этого есть старый добрый e-maxx и в книге Олимпиадноепрограммирование Антти Лааксонен можно посмотреть 7 главу. Для практики подойдут тренировки от СПбГУ, а также простые и средние задачи из leetcode

Жадные алгоритмы и динамическое программирование
Жадные алгоритмы можно прочувствовать только при решение задач.
В качестве теории по ДП можно посмотреть Андрея Станкевича в ЛКШ и почитать 6 главу в книге Олимпиадноепрограммирование Антти Лааксонен. Для практики по жадным алгоритмам советую. Для практики по стандартным задачам по ДП можно использовать acmp, а также leetcode

Структуры данных
Важные темы. Бинарные деревья. Кучи. Система непересекающихся множеств. Дерево отрезков, а также дерево фенвика.
Полезно будет знать о существование:
Красно-черные деревья.
Sqrt-декомпозиция
Из этого списка чаще всего встречаются БИНАРНЫЕ ДЕРЕВЬЯ.
Теорию по ДО (дерево отрезков) можно посмотреть у ПАШКИ там же есть и вторая часть.
И СНМ (Система непересекающихся множеств) по ссылки
Задачи с литкод
На бинарные деревья, Дерево отрезков (некоторые задачи можно решать и деревом фенвика).

Предыдущие два пункта просто обожают спрашивать разработчиков, но нередко такое попадается и остальным
36👍12👎5🔥5😁1
​​Как изобрести всё. Создай цивилизацию с нуля

#книги

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

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

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

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

Однозначно рекомендую, ссылку прилагаю.
25👍3
Плацебо это просто регрессия к среднему?

https://twitter.com/jonatanpallesen/status/1693622595793334512
🤔19😱3👍2
Interesting numbers

More than 15 billion images created using text-to-image algorithms since last year. To put this in perspective, it took photographers 150 years, from the first photograph taken in 1826 until 1975, to reach the 15 billion mark.

https://journal.everypixel.com/ai-image-statistics
🤔82👏1👀1
Зарплата пришла
😁61🔥8👀8🐳3👍1
История про метрики и целевую функцию

Футбольный матч между сборными командами Барбадоса и Гренады, состоявшийся 27 января 1994 года, вошёл в историю неожиданными действиями игроков обеих сборных и привёл к пересмотру правил проведения Карибского кубка.

Команда Гренады была на первом месте, и ей необходимо было не проиграть Барбадосу или проиграть с разницей в один мяч. Барбадосцам же, чтобы занять первое место в группе, нужно было победить в очной встрече сборную Гренады, причём с разницей минимум в 2 мяча. Интригу в матч внесло существовавшее тогда правило турнира, по которому в случае ничьей в основное время назначался овертайм, а гол в дополнительное время («золотой гол») приравнивался к двум голам и немедленно завершал игру.

Команда Барбадоса, быстро забив два гола, повела в матче со счетом 2:0. Такой результат, устраивающий барбадосцев, держался до 83-й минуты основного времени матча, когда в одной из атак команде Гренады удалось поразить ворота Барбадоса, и счёт стал 2:1. Команда Гренады, которую устраивал такой итог встречи, всем составом перешла к своим воротам, отбиваясь от атак соперника — третий гол в их ворота привёл бы к невыходу из группы.

Барбадосцы, видя, что встреча близится к завершению и им не удаётся забить третий гол, на 87-й минуте матча умышленно забили гол в свои ворота, таким образом не проиграв в основное время и намереваясь перевести матч в дополнительные 30 минут. По правилам турнира забитый в овертайме «золотой гол» приравнивался к двум голам и приводил к окончанию всего матча, на что и полагались футболисты Барбадоса, чтобы выйти в следующий этап Карибского кубка. Команда Гренады поняла замысел соперника и решила в оставшееся основное время забить гол в любые ворота — или она победит со счётом 3:2 (взяв три очка) или проиграет 2:3 (проиграет с разницей менее чем в два гола) — в любом из этих случаев она выходила в следующий этап соревнований (во втором случае — по лучшей разнице забитых и пропущенных мячей). В последние минуты основного и четыре минуты добавленного времени действия игроков на поле приняли комический характер — гренадцы старались забить гол в любые ворота, а барбадосцы оборонялись как у своих ворот, так и у ворот соперника. Барбадос выстоял, и основное время матча закончилось со счётом 2:2.

План команды Барбадоса сработал в дополнительное время. Барбадосцы забили «золотой гол», матч сразу был окончен, со счётом 4:2 и по итоговой разнице мячей Барбадос вышел в финальную фазу Карибского кубка 1994 года.
🔥52😁18👍2👏1
#работа

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

https://interviewing.io/blog/sabotage-salary-negotiation-before-even-start
👍21🔥2
Андрей, крутой дата-инженер, написал настоящую пьесу (короткую, не пугайтесь) про проекты в IT. Там про внезапную идею добавить к машине пятое колесо. Очень рекомендую к прочтению. Правда это настолько жизненно, что опытным ребятам будет не столько смешно сколько больно это читать

https://www.linkedin.com/pulse/challenges-technical-leadership-andrey-kudryavets
👍124👏2😱1
"So, what does this mean? It means we need much better AI. Or we need much worse AI. The second point first: Much worse AI would have minimal worker displacement effects, making it less economically fraught in its effects, and given that the U.S. economy can work within those limits. We are in a middle zone, however, with AI able to displace huge numbers of workers quickly, but not provide compensatory and broader productivity benefits "

https://skventures.substack.com/p/ai-isnt-good-enough
👍6👎4🤔4
#лабораторный_журнал

Главное изменение по итогу коммандировки на фабрику: зона ответственности расширяется.

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

Решили сменить тактику. Самая близкая к данным команда это моя команда. Плюс у меня был опыт проектирования Data Warehouse в Start.ru, так что я оказался человеком с наиболее релевантным опытом (хотя я вообще не спец в дата инжиниринге). Наконец, у нас получился неплохой процесс найма для позиции ML инженера, поэтому его несложно адаптировать под найм других позиций в дате.

Решили сделать так:
1. Наша команда берет на себя роль дата команды, выбирает наиболее простой и одновременно полезный дата-продукт, делает MVP дата инфраструктуры под него. Во-первых мы сдвинем дело с места, во-вторых в процессе лучше поймем требования.
2. Параллельно с этим вместо поиска суперлида ищем двух человек: дата аналитика в Италию и дата инженера в нашу команду.
3. При проектировании инфры обращаемся к опытному консультанту, чтобы компенсировать недостаток комптенеций в дата инжиниринге.

Таким образом я становлюсь на ближайшее время главным по данным и вместо моделек буду заниматься наймом, проектированием, настройкой DWH и всем прочим.
👍51🔥174👏2😁2
Forwarded from AbstractDL
Qwen-VL: вероятно лучшая мультимодальная языковая модель (by Alibaba)

Мало того, что по текстовым метрикам Qwen-7b превосходит LlaMa2-13b, так ещё и картинки теперь понимает!

Правда архитектурно ничего нового тут нет:
ViT-G + однослойный Q-former + LLM
Изображения сжимаются в 256 эмбеддингов, которые идут прямо в контекст языковой модели (как во FROMAGe). Дополнительно Qwen-VL умеет в object detection — bbox'ы подаются и генерируются как обычный текст.

По точности она бьёт всё, что было до неё, причём с запасом (см. картинку). Модель обучается в 3 этапа: сначала размораживаются ViT и адаптер, затем размораживается LLM, а в конце тюнится одна только LLM (уже на самых чистых диалогах). Модель получилась мультиязычной, поэтому русский язык она тоже понимает.

Статья, GitHub
🔥23👍94🤔1