Решил я тут подумать, кого ещё ChatGPT "может оставить без работы" и попросил написать законопроект "О запрете ношения бород в торговых центрах, музеях и автомастерских". Получилось очень похоже на правду. Остается только догадываться - это ChatGPT такой умный или законы настолько однотипные.
😁4
Прочитал я тут историю как один инженер перешел из Google в OpenAI и между делом заявил, что для обучение Bart (аналога ChatGPT от гугла) использовались ответы ChatGPT, которые выложены на сайте sharegpt.com. Google все отрицает, доказательств нет и все выглядит как слово одного против слова другого.
В 2011 году произошла похожая история. Только доказательств было больше. Google подозревал Microsoft, а точнее Bing в том, что они копирую их поисковую выдачу. Чтобы доказать это они сделали следующее. Выбрали 100 редких запросов, вроде
Занятно, что сейчас идет речь о том, что вообще нельзя пользоваться результатами ChatGPT для коммерческого использования, а в 2011 можно было, нельзя было в тупую копировать.
Интересно, а в ChatGPT уже заложены ханипоты? И будет ли Google получать ответы ChatGPT с помощью Хрома, у которого доля рынка 66%?
В 2011 году произошла похожая история. Только доказательств было больше. Google подозревал Microsoft, а точнее Bing в том, что они копирую их поисковую выдачу. Чтобы доказать это они сделали следующее. Выбрали 100 редких запросов, вроде
hiybbprqag, для которых или нет выдачи и руками захардкодили результаты в поиске. Потом попросили 20 своих инженеров из дома поискать по этим странным запросам в IE. Для 9 из этих 100 запросов Bing стал показывать то же самое. Инженеры из Google написали статью, мол Bing копирует нашу выдачу через Internet Explorer и Bing Toolbar. Напомню, что доля IE в 2011 была около 50%. Bing написал в ответ, что они только используют результаты поиска гугла, как сигнал, а не тупо копируют его. А еще накинул: “А вы сами данными Google Toolbar и Chrome не злоупотребляете?”.Занятно, что сейчас идет речь о том, что вообще нельзя пользоваться результатами ChatGPT для коммерческого использования, а в 2011 можно было, нельзя было в тупую копировать.
Интересно, а в ChatGPT уже заложены ханипоты? И будет ли Google получать ответы ChatGPT с помощью Хрома, у которого доля рынка 66%?
👍1🔥1
Как-то я работал в компании, которая занималась геоаналитикой. А когда ты занимаешь геоаналитикой, приходится собирать данные из самых разных источников. Одним их таких источников был "Яндекс API поиск по организациям", откуда мы собирали данные по координатам и некоторым атрибутам магазинов, кафе и т. д. Пользовательское соглашение запрещало сохранять эти данные. Разрешено было только показывать их на картах Яндекса и кешировать. Но мы собирали и никому не рассказывали) Чтобы получить список организаций нужно передать границы прямоугольника и текстовый запрос, например "супермаркеты", "кафе и т.д." Максимум API выдавало 500 организаций. А если их было больше, то приходилось разбивать прямоугольник на прямоугольники поменьше. У бесплатного ключа стояло ограничение на 500 запросов в сутки. Поэтому приходилось регистрировать десятки Яндекса, и для каждого из них создавать ключ.
Интересный факт. Самые популярные названия магазинов выглядели примерно так:
- Продукты
- Магазин продукты
- Магазин продуктов
Оказывается крупнейшая сеть магазинов это не Пятерочка или Магнит, а Продукты
Интересный факт. Самые популярные названия магазинов выглядели примерно так:
- Продукты
- Магазин продукты
- Магазин продуктов
Оказывается крупнейшая сеть магазинов это не Пятерочка или Магнит, а Продукты
🔥3👍1
В 2013 году я работал на выставке роботов. Тогда всем казалось, что будущее — это не чатботы и генераторы изображений. Тогда будущее виделось не в софте, а в железяках - то есть в роботах. Из названия можно понять, что этому и была посвящена выставка. Роботы были разные. Подробнее я может быть расскажу в следующих сериях, но сегодня я остановлюсь на роботе-художнике по имени Поль.
Поль — это реальная механическая рука, которая составлена из нескольких сервоприводов и держит самую обычную ручку. Ручку, а не карандаш, потому что карандаш может сломаться.
Работал робот, следующий образом: человек садиться перед веб камерой, робот его фотографирует и водит ручкой по бумаге. Причем алгоритм движения ручки не как у принтера сверху вниз, а как у реального художника. Вначале он намечает овал лица, потом отмечает крестиками глаза, нос, затем обозначает рот. После этого он дополняет портрет штрихами и линиями в разных частях портрета. Весь процесс занимает 30–40 минут. Это достаточно долго. Многие гости на выставке хотели себе портрет, но не каждый мог его получить. Все из-за того, что робот — это не принтер. Он работает далеко не по оптимальному алгоритму, а имитирует реального художника. Портреты получались своем авторском стиле. Этому стилю не мешают некоторые неточности или люфт механизмов.
Сейчас Поль продолжает свою творческую деятельности и не ограничивается портретами. Как и положено художнику широко не известен и проигрывает Midjourney и подобными нейронными сетями. Но что-то мне подсказывает, что человечество еще наиграется с нейронками и его время еще настанет.
https://vimeo.com/361093329
Поль — это реальная механическая рука, которая составлена из нескольких сервоприводов и держит самую обычную ручку. Ручку, а не карандаш, потому что карандаш может сломаться.
Работал робот, следующий образом: человек садиться перед веб камерой, робот его фотографирует и водит ручкой по бумаге. Причем алгоритм движения ручки не как у принтера сверху вниз, а как у реального художника. Вначале он намечает овал лица, потом отмечает крестиками глаза, нос, затем обозначает рот. После этого он дополняет портрет штрихами и линиями в разных частях портрета. Весь процесс занимает 30–40 минут. Это достаточно долго. Многие гости на выставке хотели себе портрет, но не каждый мог его получить. Все из-за того, что робот — это не принтер. Он работает далеко не по оптимальному алгоритму, а имитирует реального художника. Портреты получались своем авторском стиле. Этому стилю не мешают некоторые неточности или люфт механизмов.
Сейчас Поль продолжает свою творческую деятельности и не ограничивается портретами. Как и положено художнику широко не известен и проигрывает Midjourney и подобными нейронными сетями. Но что-то мне подсказывает, что человечество еще наиграется с нейронками и его время еще настанет.
https://vimeo.com/361093329
Vimeo
Human Study #2 by Patrick Tresset / Artistes & Robots, Grand Palais
Patrick Tresset artwork Human Study #2, La grande vanité au corbeau et au renard, 2018 Artistes & Robots exhibition, Grand Palais, Paris https://patricktresset.com Video/editing:…
👍2🔥2
Есть новости, которые можно хорошо описать табличкой. Но их зачем-то описывают в текстом. Недавно я увидел такую новость:
В ноябре продажи снизились на 2% по отношению к октябрю, составив 133 тыс. авто. Из них было продано 108,5 тыс. легковых машин (меньше на 3%), 11,1 тыс. LCV (рост на 5%), 12,1 тыс. грузовиков (меньше на 5%), 1,4 тыс. автобусов (рост на 18%).
Эти же данные можно представить в виде таблицы. В отчете, на основе которого написано новость, именно таблица. Зачем её переписывать?
В ноябре продажи снизились на 2% по отношению к октябрю, составив 133 тыс. авто. Из них было продано 108,5 тыс. легковых машин (меньше на 3%), 11,1 тыс. LCV (рост на 5%), 12,1 тыс. грузовиков (меньше на 5%), 1,4 тыс. автобусов (рост на 18%).
Эти же данные можно представить в виде таблицы. В отчете, на основе которого написано новость, именно таблица. Зачем её переписывать?
❤1
Решил я поиграться с Mojo - новым языком программирования, который позиционируется как более продвинутая альтернатива Python. Тем более недавно выкатили его SDK и теперь его можно запускать локально, а не в ноутбуке на облаке. Код, правда, писать можно только в VS Code. Туда завезли плагин для подсветки синтаксиса. Так что пришлось скачивать непривычную для меня IDE. В jupyter ноутбуке Mojo как бы можно запускать, но не в привычном всем виде, а опять таки через только через VS Code.
Я немного поигрался, почитал доку. Mojo как я понял пытается более эффективно работать с памятью. Но в отличие от других языков старается делать так, чтобы не было возможности выстрелить себе в ногу. При этом сохраняя совместимость с Python. Везде в доке написано примерно следуещее: можете делать как в Python, а можете по новому вот так.
Существует страница с проектами на Mojo. Но там в основном проекты, которые кто-то сел затащил в одиночку, а сейчас подзабросил. Это мне напомнило мои pet-проекты, поэтому не знаю взлетит все это в ближайшее время или нет)) Есть относительно популярный репозиторий для работы с датами morrow.mojo. У него 26 форков, но при этом всего 2 контрибьютора. При том что нет отрытых issue или pull requests. Зачем его форкают? По приколу?
Кто я такой чтобы делать прогнозы по поводу будущего языка. Но помоему сейчас вообще хз что с ним будет дальше. И нет смысла даже делать прогнозы.
Я немного поигрался, почитал доку. Mojo как я понял пытается более эффективно работать с памятью. Но в отличие от других языков старается делать так, чтобы не было возможности выстрелить себе в ногу. При этом сохраняя совместимость с Python. Везде в доке написано примерно следуещее: можете делать как в Python, а можете по новому вот так.
Существует страница с проектами на Mojo. Но там в основном проекты, которые кто-то сел затащил в одиночку, а сейчас подзабросил. Это мне напомнило мои pet-проекты, поэтому не знаю взлетит все это в ближайшее время или нет)) Есть относительно популярный репозиторий для работы с датами morrow.mojo. У него 26 форков, но при этом всего 2 контрибьютора. При том что нет отрытых issue или pull requests. Зачем его форкают? По приколу?
Кто я такой чтобы делать прогнозы по поводу будущего языка. Но помоему сейчас вообще хз что с ним будет дальше. И нет смысла даже делать прогнозы.
👍2
В далекую доковидную эпоху, до появления искусственного интеллекта, появился генератор "Генератор тупых новогодних поздравлений". Сейчас такой генератор никого не удивит. Чего мы только не видели за последнее время. Но давайте в наступающем году не забывать про if'ы, эвристики и прочие просты подходы.
https://maximilyahov.ru/generator-new-year/
https://maximilyahov.ru/generator-new-year/
❤🔥1
Недавно я потестил Copilot. У них есть бесплатный триал на один месяц, но для этого нужна карта. Пришлось воспользоваться одним из сервисом, который за 300 рублей дал мне на время карту, которую можно прикрепить. Я установил плагин в свой любимый PyCharm и начал тестировать.
Код он генерить - все как положено. Но вот сгенерировать что-то осмысленное я так и не смог. Я открыл свой пет-проект. Жму на кнопку, смотрю, что там Copilot предложит. Но ничего интересного он не предложил. Либо предложил, но что-то совсем не то. Может быть если бы я более детально написал промт, то он и написал бы, то что мне нужно. Но раз Copilot - "искусственный интеллект", пусть он за меня думает. Если уже нужно детально что-то прорабатывать, то я напишу код, а не супер подробное ТЗ.
Так что мне пока не зашло.
Код он генерить - все как положено. Но вот сгенерировать что-то осмысленное я так и не смог. Я открыл свой пет-проект. Жму на кнопку, смотрю, что там Copilot предложит. Но ничего интересного он не предложил. Либо предложил, но что-то совсем не то. Может быть если бы я более детально написал промт, то он и написал бы, то что мне нужно. Но раз Copilot - "искусственный интеллект", пусть он за меня думает. Если уже нужно детально что-то прорабатывать, то я напишу код, а не супер подробное ТЗ.
Так что мне пока не зашло.
❤1
Есть задачи, где нужно визуализировать геоданные. Часто такая визуализая - это цветные квадраты или шестиугольники. Это выглядит интересно. Но мне кажется было бы круче если бы это были не квадраты или шестиугольники, а многоугольники в границах дорог. Представьте, что у нас есть данные стоимости недвижимости. В таком случае прикольнее выглядят разукрашеные городские кварталы. Так эти данные проще воспринимать. А вот квадрат выглядит странно, если он захватил половину какого-то квадрата и еще вдобавок кусок реки и какого-то пустыря.
Конечно, кварталы имею разную площадь и поэтому оправданы только для средним значении, а не для сумму. Но не всегда нам нужно чтобы площадь плиток, на которые мы бьем карту, была одинаковой.
Но как сделать такие полигоны? В теории для этого идеально подойдет кадастровая карта. Я очень долго пытался достать хоть в каком-то виде границы этих полигонов. Но у меня ничего не получилось.
Только сравните как выглядит разбиение на полигоны от сервиса "Компас" с разбиением кадастрой карты на примере района Ясенево.
Конечно, кварталы имею разную площадь и поэтому оправданы только для средним значении, а не для сумму. Но не всегда нам нужно чтобы площадь плиток, на которые мы бьем карту, была одинаковой.
Но как сделать такие полигоны? В теории для этого идеально подойдет кадастровая карта. Я очень долго пытался достать хоть в каком-то виде границы этих полигонов. Но у меня ничего не получилось.
Только сравните как выглядит разбиение на полигоны от сервиса "Компас" с разбиением кадастрой карты на примере района Ясенево.
🔥2
Мой опыт использования новомодных моделей ограничивается не только Copilot'ом. Я решил попробовать использовать GhatGPT для генерации статей для Дзена. Мы все знаем что в Дзене статьи часто сомнительно качества. Поэтому написание статей туда звучит как посильная задача для нейронных сетей. Чтобы сгенерировать статью нужно придумать темы. Их можно тоже сгеренировать. Казалось бы, вот и все, но оказалось, что нужно тратить время больше чем хотелось бы.
Нужно выбрать темы. Их можно взять из головы или из ChatGPT. Но все равно их нужно было фильтровать, чтобы убрать откровенную хрень.
Дальше нужно ревьють статьи. Они не все получались. И в зависимости от того насколько плохая эта статья, либо не публиковать её, либо дать задание чату переписать или дописать её.
Так же необходима картинка. Нужно понять, что за картинку я хочу увидеть. Найти такую. И вставить в статью, предварительно подумав в какую часть статью её запихнуть.
Но главное почему я забросил это дело - это результат. У статей оказалось совсем мало просмотров. Может быть эта идя рабочая. И если погрузиться в специфику Дзена и промт-инжиниринг, то из этого что-то получится. Но ведь в таком случае ChatGPT не оставляет ни кого без работы, а всего лишь меняет её формат.
Поэтом будушее наступает, но не слишком быстро.
Нужно выбрать темы. Их можно взять из головы или из ChatGPT. Но все равно их нужно было фильтровать, чтобы убрать откровенную хрень.
Дальше нужно ревьють статьи. Они не все получались. И в зависимости от того насколько плохая эта статья, либо не публиковать её, либо дать задание чату переписать или дописать её.
Так же необходима картинка. Нужно понять, что за картинку я хочу увидеть. Найти такую. И вставить в статью, предварительно подумав в какую часть статью её запихнуть.
Но главное почему я забросил это дело - это результат. У статей оказалось совсем мало просмотров. Может быть эта идя рабочая. И если погрузиться в специфику Дзена и промт-инжиниринг, то из этого что-то получится. Но ведь в таком случае ChatGPT не оставляет ни кого без работы, а всего лишь меняет её формат.
Поэтом будушее наступает, но не слишком быстро.
👍1🎉1🥴1
Случай с одного из прошлых мест работы. У нас был пайплан в airflow, который работал каждый час. Однажды у нас этот пайплан сломался. Я уже не помню почему - главное что упал прод. Узнали мы о том, что все упало только в воскресенье. То есть спустся 2 дня. Почему-то не сработал мониторинг, который должен был написать нам в телеграм, что все плохо.
Не сработал он из-за того, что в процессе нижнее подчеркивание сломало сообщение об ошибки. А появилось это сообщение из-за того, что у нас появился новый сотрудник с _ в нике в телега. А в критичных случаях телеграм бот должен тегал всех DS'ов.
Потом я этому коллеге в шутку написал: "из-за тебя сломался мониторинг"
Не сработал он из-за того, что в процессе нижнее подчеркивание сломало сообщение об ошибки. А появилось это сообщение из-за того, что у нас появился новый сотрудник с _ в нике в телега. А в критичных случаях телеграм бот должен тегал всех DS'ов.
Потом я этому коллеге в шутку написал: "из-за тебя сломался мониторинг"
❤3👍1🤡1
Продолжение истории с одного из прошлых мест работы.
Суббота, день. Я бегу по беговой дорожке. Не думаю о работе, погрузился в свои мысли, смотрю на солнечный пейзаж в окне. И тут получаю сообщение от бота c алертами. Проблема при монтировании вольюма. И не просто сообщение, а сообщение, которое тегает меня. А теганье через @ продировается через все мьюты. И ты не можешь его не заменить.
В итоге я вышел из этого чата с алертами. Потом правда пришлось незаметно возвращаться, но это уже другая история.
Я прочитал в одном курсе про system design очень важные слова. Алертинг - это всегда призыв к действию. Иначе он не нужен. Как же это точно. Зачем мне этот алерт. Я не шарю что этот алерт значит, надо ли что-то чинить. А если и надо, то я не смогу, потому что я занимаюсь своими делами, И не должен потому что этом мой выходной. А дежурства тогда у нас не были предусмотрены.
Суббота, день. Я бегу по беговой дорожке. Не думаю о работе, погрузился в свои мысли, смотрю на солнечный пейзаж в окне. И тут получаю сообщение от бота c алертами. Проблема при монтировании вольюма. И не просто сообщение, а сообщение, которое тегает меня. А теганье через @ продировается через все мьюты. И ты не можешь его не заменить.
В итоге я вышел из этого чата с алертами. Потом правда пришлось незаметно возвращаться, но это уже другая история.
Я прочитал в одном курсе про system design очень важные слова. Алертинг - это всегда призыв к действию. Иначе он не нужен. Как же это точно. Зачем мне этот алерт. Я не шарю что этот алерт значит, надо ли что-то чинить. А если и надо, то я не смогу, потому что я занимаюсь своими делами, И не должен потому что этом мой выходной. А дежурства тогда у нас не были предусмотрены.
❤2
Есть такая библиотека pandas-profiling. Её суть в том, что ты берешь датафрейм и она выдает тепе EDA, то есть графики, гистограммы картинки про этот датафрейм по одному клику. Как понятно из названия датафрейм, который она принимает на вход - это pandas dataframe.
Много лет назад я искал аналог для spark'a. Тогда я обнаружил заглушку для библиотеки с названием spark-profiling https://pypi.org/project/spark-profiling. Там было написано To be released. С тех пор я каждые пол года захожу на эту страницу. Жду хоть каких-то обновление. а там все так же:
Много лет назад я искал аналог для spark'a. Тогда я обнаружил заглушку для библиотеки с названием spark-profiling https://pypi.org/project/spark-profiling. Там было написано To be released. С тех пор я каждые пол года захожу на эту страницу. Жду хоть каких-то обновление. а там все так же:
Released: Apr 27, 2020
Project description: To be releasedPyPI
spark-profiling
Generate profile report for spark DataFrame
❤3👍1
В скраме один из методов оценки задач в футболках. Не в каких-то числах, а в размерах футболок S, M, L. И это преподносится как классная интересная идея. Но это ничем не лучше цифр. Как-будто это придумали для неграмотных людей. Насколько большая задача? Как слон или как бегемот? Но зачем такое придумывать для грамотных людей, которые умеют считать и писать.
Есть в скраме оценка в цифрах. Но не в днях, а в стори поинтах. Стори поинты - уже цифры. Но это непонятная никому величина. Уже лучше - это не буквы цифры. Но стори поинты - это не дни, а некая абстрактная единица измерения сложности задачи. Причем стори поинты свои для каждой команды задачи. Из-за этого новые члены команды не понимают как оценивать задачи. И что такое 5 стори поинтов.
Точно оценивать задачи - крутой навык. Но если зачем развивать навык оценки задач в каких-то непонятных единицах, которые меняются от команды к команде. При переходе в другую команду этот навык пропадает, потому что в другой команде другие стори поинты. А вот навык оценки задач в днях пригодится везде, потому что единицы времени одинаковые везде.
Можно придумать десятки метрик для задачи. Можно оценивать сколько строчек кода потребуется написать, или сколько сообщений в чат придется написать и так далее. Но все от всех оценок нет никакого толка, потому что они не помогают помогают ответить на полезный вопрос. Как и оценка в сторипоинтах. А оценка в днях отвечает на вопросы “когда будет сделано” и “успеем ли мы сделать задачу к определенному моменту времени”.
Есть в скраме оценка в цифрах. Но не в днях, а в стори поинтах. Стори поинты - уже цифры. Но это непонятная никому величина. Уже лучше - это не буквы цифры. Но стори поинты - это не дни, а некая абстрактная единица измерения сложности задачи. Причем стори поинты свои для каждой команды задачи. Из-за этого новые члены команды не понимают как оценивать задачи. И что такое 5 стори поинтов.
Точно оценивать задачи - крутой навык. Но если зачем развивать навык оценки задач в каких-то непонятных единицах, которые меняются от команды к команде. При переходе в другую команду этот навык пропадает, потому что в другой команде другие стори поинты. А вот навык оценки задач в днях пригодится везде, потому что единицы времени одинаковые везде.
Можно придумать десятки метрик для задачи. Можно оценивать сколько строчек кода потребуется написать, или сколько сообщений в чат придется написать и так далее. Но все от всех оценок нет никакого толка, потому что они не помогают помогают ответить на полезный вопрос. Как и оценка в сторипоинтах. А оценка в днях отвечает на вопросы “когда будет сделано” и “успеем ли мы сделать задачу к определенному моменту времени”.
🔥3👍2
Еще одна часть скрама - то как оценивать задачи. В скраме есть момента как оцениваются дачи. Одна из них классная, другая меня бесит.
1.Все участники команды в закрытую оценивают задачи. Затем эти оценки вскрываются. Если оценки близкие или одинаковые, то берем среднее. Если оценки сильно отличаются, то происходит обсуждения, а после этого оценка повторяется до тех пор пока не сойдется к одной оценке.
Это классный метод. Есть исследования которые показывают, что у оценок постепенно снижается разброс. А среднее от всех оценок стремится к реальному значению.
Так же это лишает возможности одного человека задавить всех свои авторитетом. От себя добавлю, что это заставляет всех участников команды погрузится в задачу. Чтобы не оказаться в дураках приходится вникать про что задача. Не хочется оценит задачу в 1, когда все остальные оценят её в 10.
2.Теперь в плохому. Согласно скраму оценки должны быть только из последовательности Фибоначчи. То есть 1, 2, 3, 5, 8, 13… Я не понимаю зачем. Я слышал 2 версии. Первая - для того чтобы экономить время и не спорить на сколько оценить задачу на 7 или на 8. Звучит сомнительно.
Вторая - для того чтобы учесть неопределенность. По этой логике не важно 7 или 8, потому что оценка 8 - это на самом деле не ровно 8, а 8±2. А 3 это не 3, а 3±1. Но для этого понимая не нужны числа Фибоначчи. При желании 7 тоже можно расценивать как 7±2.
1.Все участники команды в закрытую оценивают задачи. Затем эти оценки вскрываются. Если оценки близкие или одинаковые, то берем среднее. Если оценки сильно отличаются, то происходит обсуждения, а после этого оценка повторяется до тех пор пока не сойдется к одной оценке.
Это классный метод. Есть исследования которые показывают, что у оценок постепенно снижается разброс. А среднее от всех оценок стремится к реальному значению.
Так же это лишает возможности одного человека задавить всех свои авторитетом. От себя добавлю, что это заставляет всех участников команды погрузится в задачу. Чтобы не оказаться в дураках приходится вникать про что задача. Не хочется оценит задачу в 1, когда все остальные оценят её в 10.
2.Теперь в плохому. Согласно скраму оценки должны быть только из последовательности Фибоначчи. То есть 1, 2, 3, 5, 8, 13… Я не понимаю зачем. Я слышал 2 версии. Первая - для того чтобы экономить время и не спорить на сколько оценить задачу на 7 или на 8. Звучит сомнительно.
Вторая - для того чтобы учесть неопределенность. По этой логике не важно 7 или 8, потому что оценка 8 - это на самом деле не ровно 8, а 8±2. А 3 это не 3, а 3±1. Но для этого понимая не нужны числа Фибоначчи. При желании 7 тоже можно расценивать как 7±2.
👍2❤1
Как-то давно Яндекс проводил митам, где собирался рассказывать про беспилотники. Даже обещал что-то показать. Из-за ажиотажа и нежелания того, чтобы на митап попали журналисты было тестовое задание. Причем в отличие от других митапов Яндекса это были не совсем простые вопросы на 5 минут, а достаточно сложная задача.
Заключалась она в следующем. Есть “игра” или “среда”, которая представляет собой двумерное поле из клеток. Есть клетки, по которым можно двигаться, есть стены, через которые нельзя двигаться. В этом пространстве двигается ровер - робот доставщик. На поле спавнятся заказы. Эти заказы нужно было быстро доставлять. Чем быстрее доставил, тем больше очков получил. Если не успел доставить заказ за указанное время, то получил 0 очков. Это соревнование проводилось на платформе Яндекс.Контест. Топ N участников по очкам попадали на митап.
Как решать задачу? Для начала нужно представить поле в виде графа. А дальше уже дело техники. Проблема была в том, что из библиотек был только pandas и numpy и ничего для графов. Не было у них библиотеки networkx или аналога. Нужно было писать самому. Пришлось залезть в исходники networkx и по их мотивам реализовать граф и поиск кратчайшего пути. В итоге я написал свой mini-networkx и реализовал свой бейзлайн для движения ровера. Проходили не все тест кейсы, где-то падал по времени, где-то алгоритм ломался при нескольких одновременных заказах. Но где-то в топе я оказался. Кто написал мне на почту с предложением купить этот код. Но я не продался.
В итоге я попал в заветные топ N, но не смог пойти на митап, так как уехал в Сочи.
Заключалась она в следующем. Есть “игра” или “среда”, которая представляет собой двумерное поле из клеток. Есть клетки, по которым можно двигаться, есть стены, через которые нельзя двигаться. В этом пространстве двигается ровер - робот доставщик. На поле спавнятся заказы. Эти заказы нужно было быстро доставлять. Чем быстрее доставил, тем больше очков получил. Если не успел доставить заказ за указанное время, то получил 0 очков. Это соревнование проводилось на платформе Яндекс.Контест. Топ N участников по очкам попадали на митап.
Как решать задачу? Для начала нужно представить поле в виде графа. А дальше уже дело техники. Проблема была в том, что из библиотек был только pandas и numpy и ничего для графов. Не было у них библиотеки networkx или аналога. Нужно было писать самому. Пришлось залезть в исходники networkx и по их мотивам реализовать граф и поиск кратчайшего пути. В итоге я написал свой mini-networkx и реализовал свой бейзлайн для движения ровера. Проходили не все тест кейсы, где-то падал по времени, где-то алгоритм ломался при нескольких одновременных заказах. Но где-то в топе я оказался. Кто написал мне на почту с предложением купить этот код. Но я не продался.
В итоге я попал в заветные топ N, но не смог пойти на митап, так как уехал в Сочи.
👍3🔥2
Вы наверняка знаете про компания X5 Retail Group. В нее входят Пятерочка и Перекресток. Но не все знают, что раньше этой компании принадлежала торговая сеть “Карусель”. Сейчас эта сеть закрыта, а часть магазинов переделали в Перекресток. Но когда “Карусель”, еще не объявила о своем закрытии я там работал DS’ом в управлении, которое отвечало за целевой маркетинг. Но речь пойдет не про то, как там работалось.
Я как-то лазил по корпоративному порталу и наткнулся на интересную страницу. На ней были регулярно обновляющие фотографии из столовой. По сути это было видео с fps один кадр в 2-3 секунды, но реализовано это было в виде обновляющихся фотографий.
Это была еще доковидная эпоха. Поэтому я ходил в офис, обедал в столовой. В столовой были очереди. Неплохо было бы иметь телеграм бот, который бы информировал об очередях.
Тогда я написал скрипт, который забирает эти картинки с корпоративного портала. Я взял готовую модель, распознающую людей на фото. Все это запустил в бесконечном цикле и добавил сохранения в postgres. Потом я добавил график в Tableau и все готово. До прогноза очередей я не добрался. В телегу из корпоративной сети просто так писать нельзя поэтому я остановился только на сборе данных.
Особо интересных инсайдом не было. Самый большой пик посещаемости был в обед. Еще один поменьше - утром. От погоды зависимости я не обнаружил.
Я как-то лазил по корпоративному порталу и наткнулся на интересную страницу. На ней были регулярно обновляющие фотографии из столовой. По сути это было видео с fps один кадр в 2-3 секунды, но реализовано это было в виде обновляющихся фотографий.
Это была еще доковидная эпоха. Поэтому я ходил в офис, обедал в столовой. В столовой были очереди. Неплохо было бы иметь телеграм бот, который бы информировал об очередях.
Тогда я написал скрипт, который забирает эти картинки с корпоративного портала. Я взял готовую модель, распознающую людей на фото. Все это запустил в бесконечном цикле и добавил сохранения в postgres. Потом я добавил график в Tableau и все готово. До прогноза очередей я не добрался. В телегу из корпоративной сети просто так писать нельзя поэтому я остановился только на сборе данных.
Особо интересных инсайдом не было. Самый большой пик посещаемости был в обед. Еще один поменьше - утром. От погоды зависимости я не обнаружил.
🔥3❤1👍1
Когда я искал работу, я, как и положено, много ходил по собеседованиям. И заметил что очень многие спрашиваю следующие вопросы.
- Чем отличается случайный лес от градиентного бустинга
- Что такое bias-variance tradeoff
- И как следствие двух предыдущих вопросов: где больше bias и variance в градиентном бустинге или случайном лесе
Причем спрашивали настолько часто, что я уже началинал все это рассказывать как только речь заходила про бустинг или случайный лес. Даже если меня не спрашивали.
- Чем отличается случайный лес от градиентного бустинга
- Что такое bias-variance tradeoff
- И как следствие двух предыдущих вопросов: где больше bias и variance в градиентном бустинге или случайном лесе
Причем спрашивали настолько часто, что я уже началинал все это рассказывать как только речь заходила про бустинг или случайный лес. Даже если меня не спрашивали.
Недавно в Сочи открылся новый ресторан под названием Lino. На 14 февраля он объявил конкурс с на лучшую фотографию. Фото нужно было выложить в инстаграме, отметить аккаунт ресторана. Мы с женой участвовали. Голосование проходило на сайте ресторана. Голосование не требовало регистрации, но проголосовать можно было только один раз. Не сложно догадаться, что очистка кэша позволяла проголосовать еще раз. Призы были существенные. Приз за первое место - отдых в люкс глэмпинге.
Естественно у нас возникла идея накрутить голоса.
- берешь selenium
- открываешь вкладку в режиме инкогнито, чтобы не нужно было очищать кэш
- голосуешь
- закрываешь вкладку
- повторить))
Наши голоса начали прирастать. Мы накрутили больше сотни голосов. Но голоса начали появляться не только у нас. Не я один айтишник среди участников конкурса)). У некоторых аккаунтов количество голосов перевалило за тысячу. Перегнать их реально. Можно накрутить голоса в 10 потоков и набить и 100 тысяч, если потребуется. Но в реальность таких голосов никто не поверит.
Пришлось выбрать другую тактики. Мы можем доказать, что наши соперники накручивали голоса. Для этого я каждые 5-10 минут делал скриншот сайта. Если у аккаунта за 10 минут не было ни одного голоса, потома за 5 минут появилось 3000 голосов, а потом снова тишина, то понятно что это накрутка. Если предположить, что в конкурсе участвует какой-то мега-блогер, который выложил у себя пост с просьбой поддержать, то всплески голосов объяснимы. Но голоса не могут резко прекратиться. Не все подписчики увидят пост сразу. Кто-то проголосует через 5 минут, 10 минут, час, два часа после публикации. Хвост еще долго должен тянуться. У наших же накрутчиков голоса обрывались и не переставали увеличиваться.
Я начал готовить скриншоты, чтобы с ними прийти к организаторам и забанить читеров. Но тут я увидел, что у нашей фотографии количество голосов появилось 7000 тысяч голосов. На всякий случай я проверил свой скипт. Это точно не я. Кто-то ошибся и добавил голоса нам. Проблема в том, что теперь и мы попадаем под критерий читерства.
Я начал думать что с этим делать. Потом в очередной раз обновил страницу с результатами. И увидел сообщние:
Естественно у нас возникла идея накрутить голоса.
- берешь selenium
- открываешь вкладку в режиме инкогнито, чтобы не нужно было очищать кэш
- голосуешь
- закрываешь вкладку
- повторить))
Наши голоса начали прирастать. Мы накрутили больше сотни голосов. Но голоса начали появляться не только у нас. Не я один айтишник среди участников конкурса)). У некоторых аккаунтов количество голосов перевалило за тысячу. Перегнать их реально. Можно накрутить голоса в 10 потоков и набить и 100 тысяч, если потребуется. Но в реальность таких голосов никто не поверит.
Пришлось выбрать другую тактики. Мы можем доказать, что наши соперники накручивали голоса. Для этого я каждые 5-10 минут делал скриншот сайта. Если у аккаунта за 10 минут не было ни одного голоса, потома за 5 минут появилось 3000 голосов, а потом снова тишина, то понятно что это накрутка. Если предположить, что в конкурсе участвует какой-то мега-блогер, который выложил у себя пост с просьбой поддержать, то всплески голосов объяснимы. Но голоса не могут резко прекратиться. Не все подписчики увидят пост сразу. Кто-то проголосует через 5 минут, 10 минут, час, два часа после публикации. Хвост еще долго должен тянуться. У наших же накрутчиков голоса обрывались и не переставали увеличиваться.
Я начал готовить скриншоты, чтобы с ними прийти к организаторам и забанить читеров. Но тут я увидел, что у нашей фотографии количество голосов появилось 7000 тысяч голосов. На всякий случай я проверил свой скипт. Это точно не я. Кто-то ошибся и добавил голоса нам. Проблема в том, что теперь и мы попадаем под критерий читерства.
Я начал думать что с этим делать. Потом в очередной раз обновил страницу с результатами. И увидел сообщние:
Из-за подозрительной активности голосование на сайте остановлено.
Конкурс переносится в социальные сети Lino😁8❤1🔥1