Борис опять – Telegram
Борис опять
15.1K subscribers
1.43K photos
72 videos
30 files
1.48K links
life = curiosity + irreducible noise

Whois: https://news.1rj.ru/str/boris_again/3400

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

Про тяжелую долю аналитика.

План по дате такой:
1. Найти самый простой и одновременно важный дата-продукт, который можно сделать. Грубо говоря наиболее полезный дешборд.
2. Придумать и построить всю архитектуру, необходимую для создания этого продукта. Но не одноразовую, а такую, будто мы такие продукты собираемся штамповать десятками.
3. Дождаться пока мы наймем дата инженера (настоящего, а не как я)
4. Вместе с ним посмотреть на архитектуру и сделать несколько итераций, пока не будет совсем хорошо.

Вот такой MVP подход к данным.

Самый сложный этап первый. Я копал-копал, ходил на встречи, получил список требований. Указано: надо сделать расчет эффективности климата и выводить его на дашборде. Как считается эффективность скажем температуры за день: доля часов, когда отклонение температуры от заданной больше чем x. Поглядел: затащить все нужные данные непросто будет. Решил удостовериться, что это точно нужная штука.

Иду выяснять: а зачем вам эта метрика? Оказывается, что по ней оценивают, будет ли недобор по массе произведенных растений или нет. Спрашиваю дальше: а как? Какая функция описывает зависимость выходной массы от этой эффективности?

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

Что делать все еще непонятно. Метрика не нужна, считать её я не хочу. А что надо считать не ясно. Скорее бы нанять аналитика, чтобы он выяснял такие вещи.
👍3812🔥1
Forwarded from AbstractDL
The Reversal Curse of LLM

Жаль, но похоже все языковые модели, независимо от размера, лажают на обобщениях фактов: A⠀is⠀B⠀→⠀B⠀is⠀A.

Авторы собрали несколько датасетов с такими логическими следствиями и проверили самые крутые модели (включая LlaMa и GPT-3). Оказалось, что обучаясь на факте "John is a son of Ann", модели не учат "Ann has a son John". А соответствующие логиты даже на капельку больше не становятся. Эта проблема есть и у GPT-4 (см. картинку).

Статья, GitHub
😢24🔥71
#работа

# Как я собеседую аналитиков

Я ML инженер, но на меня упала задача проводить технические собеседования на позицию аналитика данных. Компании требуется человек в Италии, который будет ходить по фабрике и искать как помочь людям с помощью данных. Разыскав что-то он будет доносить эту информацию до моей команды. После чего мы будем вместе придумывать откуда достать нужные данные, как их поместить в DWH и в каком виде презентовать. Мы ожидаем, что человек будет и автономно общаться с людьми, и сам делать анализ с помощью python, SQL и BI инструментов.

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

Я придумал: пусть лучше не я буду допрашивать кандидатов в чем они разбираются, а они будут объяснять это мне. Если человек хороший аналатик, то он сможет мне объяснить свою специфику так, что я пойму. Например, я не знаю тонкостей проведения A/B тестов. Но я точно пойму по рассказу кандидата, разбирается он в них достаточно, чтобы просто объяснить мне, или нет. Дополнительно это проверит навыки коммуникации, ведь на работе кандидату придется объяснять сложные вещи людям, которые понимают сильно меньше меня. Короче говоря можно задавать открытые вопросы вместо закрытых.

Существует небольшой шанс, что человек окажется отличным рассказчиком, а на деле не сможет написать “SELECT * FROM table”. Поэтому я добавил в процесс собеседования простую задачу на SQL. Для решения надо лишь сделать джоин таблицы с самой собой.

Итоговая структура собеседования такая:
1. Вступление, объяснение как будет проходить собеседование, рассказ о компании и команде.
2. Разговор про опыт кандидата. Выбираю один из его проектов и начинаю углубляться в детали. Составляю мнение об опыте и глубине знаний.
3. Кейс: представьте, что вы работаете в компании и вам нужно найти способ оценить эффективность фабрики так, чтобы можно было сравнить несколько фабрик. Явно говорю кандидату, что он может задавать любые вопросы. Что ожидаю: человек задает много вопросов, формулирует необходимость создания метрики, придумывает подходящую метрику. Понимает, что метрика должна быть нормализована, чтобы можно было сравнивать фабрики разных размеров и конфигураций. Один из правильных ответов: ROI (return on investement), но он не единственный. Составляю мнение о способностях кандидата решать задачи автономно.
4. Задача на SQL. Составляю мнение об уровне программирования и SQL.
5. Если остается время задаю дополнительный вопрос для проверки знания статистики.

Мне кажется это довольно простое собеседование. Однако мы уже отсмотрели семь кандидатов (не считая отсеянных на этапе скрининга). Метрику сформулировали только трое, причем ни один по моему мнению не задал достаточно вопросов. Задачу на SQL решили тоже двое. Пока никто не продемонстрировал знаний статистики на уровне “чтобы определить наличие статзначимой зависимости с помощью линейной регрессии применяется F-тест”.

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

UPD:
Я прикрепил ссылку не на ту SQL задачу и всех запутал.
Вот настоящая задача, которую я использую: https://leetcode.com/problems/employees-earning-more-than-their-managers/
40👍11👎2🔥2
# Помогу с поиском работы в EU/US за 50% от первой зарплаты

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

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

Что я предлагаю:
1. Помощь с резюме и презентацией опыта работы.
2. Референсы к знакомым.
3. Пробные собеседования.
4. Регулярные office hours по субботам, куда можно придти с любыми вопросами.
5. Помощь в переговорах. Помните как мне помогло послушать умного друга, не вовлеченного в ситуацию?
6. Ощущение, что вы не одни в этом аду.

Дисклеймеры: не могу помочь совсем джунам, не могу помочь с FAANG, гарантий нет, но и потерь в случае провала нет. Могу помочь только по направлениям Machine Learning Engineer/Scientist, Data Analyst/Scientist/Engineer, Python Backend.

Платеж разбивается на два или три месяца.

Алгоритм такой:
1. Пишите мне в лс (@btseytlin), присылайте резюме, кратко опишите, что ищете.
2. Если я не могу вам помочь, то сразу об этом скажу и мы попрощаемся.
3. Созваниваемся, намечаем план работы.

При сомнениях можете попросить меня направить к ребятам с предыдущего потока за отзывами.

В прошлый поток заметил, что много рекомендаций повторяются. В этот раз постараюсь сделать из накопленных материалов методичку по поиску работы и возможно выложу её в open-source.
👍67🔥1612👎3
😁43🤔14🔥4
10👍2😢1
😁474🔥3
Men be like “I am not gay” but then “Wow I love TRANSformers” and “Look, this langugage model is so LARGE ohhh”
😁78🐳14👎11😈4👀2
Я наконец добрался до записей с Practical ML Conf от Яндекса и теперь вместо работы смотрю доклады.

Что мне особенно приглянулось:
* Доклад о внутренностях LLM в Яндексе и релиз YandexGPT-2. Вторая версия той LLM, которая уже нашла место в разных сервисах компании и с которой можно общаться через Алису по команде "давай придумаем”.
* Доклад про Giga Chat в SberDevices от Дани Эль-Айясса. Все соревнуются своими LLMками. Очень подробно про обучение, с деталями вплоть до learning rate на этапе инструктивного файнтюнинга и на RLHF.
* Доклад об использовании внешней информации в генеративных моделях. Здесь конечно про Retrieval Augmented Generation.
* Доклад Алексея Морозова о распределенном DL и zero-fault tolerance. Яндекс как всегда круче всех в безумной распределенной инфре.
* Доклад про Kandinsky и text-2-image в Сбере, от Дениса Дмитрова. Внутри не только про Kandinsky, но и популярно про DALLE-2 и StableDiffusion.
* Доклад про CV в Маркете. Про роботов-инвентаризаторов, что релевантно для меня. Крутые детали про выбор камер, деплой моделей и что получилось.

Весь плейлист здесь.

Узнал про конфу в канале Яндекса про ML.
33👍9
#работа

# Что ты продаешь?

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

На собеседованиях очень часто спрашивают “расскажите о своём опыте” и я тоже так делаю. Цель этого вопроса в том, чтобы узнать, что человек может предложить компании, и чем компания может ему помочь. Понятное дело, что человек предлагает свои способности писать софт, но нас интересует конкретика. Какой именно софт? С какой степенью автономности? В каких условиях? И так далее.

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

Таким образом рассказ о себе должен быть в меру продающим. Сейчас собеседуя аналитиков я часто слышу в ответ что-то вроде: “Я учился в таком-то университете, работал в компании Х и занимался там этим, потом в компании Y и занимался там вот этим, сейчас в Z делаю дашборды и ещё мне нравятся прогнозные ML модели.” Послушав это так и хочется спросить: так что ты предлагаешь? Иначе говоря: что ты мне продаешь? Ты умеешь делать дашборды и планируешь заниматься ими, или ты хочешь заниматься ML? Ты уже умеешь делать ML модели или ты хочешь научиться? Для тебя критичен ML или ты пойдешь работать туда, где его нет? Много вопросов, так мало ответов.

Я считаю, что рассказ о себе лучше делать в обратном хронологическом порядке и сразу говорить, что ты продаешь. Например, я бы строил его примерно так:
1. Я тимлид ML в Planet Farms, моя команда занимается компьютерным зрением и ML Engineering для фабрик. В текущей комании я построил ML инфраструктуру с нуля.
2. У меня богатый опыт software engineering, data engineering, а так же есть опыт в ML рисерче. Я и ML делаю, и пишу хороший код.
3. Я ищу <вставить почему я ищу работу, чем хочу заниматься и куда расти>
4. О чем вы хотите услышать подробнее?

Не в тему поста:
Для аналитиков и сочувствующих советую почитать то, что пишет в своем канале Тагир, Senior Data Analyst в Альфе, у него как раз пост про дурацкие вопросы на собеседованиях вышел.
👍526🔥5👎1
Подборка 75 вопросов по алгоритмам для попадания в FAANG (или уже MANGA? Я давно запутался)

https://www.teamblind.com/post/New-Year-Gift---Curated-List-of-Top-75-LeetCode-Questions-to-Save-Your-Time-OaM1orEU
28👀2
Forwarded from Telegram Contests
🏆 Telegram ML Competition

Prize fund: $40,000 – from which the 1st place winner will receive $15,000 if any submissions qualify for 1st place.
Deadline: 23:59 on October 15th (Dubai time)
Who can participate: Everyone
Results: October 29th, 2023

Telegram is hosting a competition for ML engineers to identify programming and markup languages in code snippets.

The Task: implement a library that detects the programming and markup language of code snippets from message text. You can use any publicly available data to train your solution.

Details: https://contest.com/docs/ML-Competition-2023.

@ContestBot will begin accepting submissions at a later date. We will further clarify the submission instructions closer to the deadline.
Please open Telegram to view this post
VIEW IN TELEGRAM
18
Клевый и бесплатный движ для студентов. Слово авторам:

неУниверситет — это социальный проект для студентов 18-23 лет, позволяющий получить уникальные знания, навыки и ресурсы для построения карьеры и жизни.

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

Программа неУниверситета длится 2 года, занятия проходят два раза в неделю в вечернее время. Набор на программу длится до 15 октября 2023 года, а следующий набор на программу стартует не раньше 2025 года.

неУниверситет — это сообщество, знания и карьера для таких как ты. Подать заявку и пройти отбор можно на сайте neuniversitet.ru или через бот @neUniBot 🤘
👎24🔥191
ChatGPT это инструмент для написания сопроводительных писем, change my mind

https://news.ycombinator.com/item?id=37761045
👍23😁2😈1
#обзор_статьи #ml

# Language Models Represent Space And Time, Gurnee and Tegmark

Наша любимая тема “LLM это статистические попугаи или все-таки нет.”

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

Создают шесть датасетов содержащих названия мест или событий плюс координаты в пространстве и времени.

Используют замороженную Llama-2 на названиях мест и событий, далее обучают linear regression probes, то есть маленькие модели, которые принимают на вход активации трансформер блоков и предсказывают целевые переменные (место и время).

Как конкретно это работает
1. В каждом датасете прогоняем через модель названия сущностей (места или исторические личности), сохраняем последний вектор активаций каждого слоя. Т.к. это трансформер активации это набор векторов для каждого токена на входе, они берут только вектор соответствующий последнему токену. Получается матрица N x D_model для каждого слоя. Считайте простой табличный датасет.
2. Тренируем на этом табличном датасете линейную модель, где в качестве таргета берем время или географические координаты.

Обнаруживают:
* Визуализация 2D PCA преобразоания активаций дает картину очень похожую на карту мира (для датасета про весь мир).
* География и время очень хорошо предсказываются по активациям, с test R^2 близким к 1.0.
* Замена линейных пробов на нелинейные MLP не дает улучшений, поэтому делается вывод, что активации линейно связаны с географией и временем.
* Результаты сохраняются независимо от вариации промптов.
* Предполагают, что активации нейросети содержат информацию об относительном расположении объектов, а линейные пробы уже потом переводят это в абсолютные значения времени или координат. То есть внутри себя модель координат не содержит.
* Чем дальше слой от входа, тем больше информации активации содержат про время и пространство. Выходит на плато примерно в середине нейросети.
* Для более крупных моделей ошибка у линейных пробов меньше, то есть активации содержат больше информации про время и пространство.
* Есть отдельные нейроны, которые активируются в зависимости от времени или места.
25🔥14👍1👎1
9😁1