Лаборатория Математики и Программирования Сергея Бобровского – Telegram
Лаборатория Математики и Программирования Сергея Бобровского
1.3K subscribers
1.19K photos
24 videos
933 links
ЛаМПовое с Бобровским
Download Telegram
Куда сложнее всего было поступить в 2019-м?
1) ИТМО, математика. 99,8 -- средний балл ЕГЭ поступивших
2) ВШЭ, математика. 98,9
3) МИФИ, математика. 98,8
4) МГИМО экология, и дальше уже пошли гуманитарии :) 98,6
============

Посты за неделю.

Про саморазвитие программиста
https://vk.com/wall-152484379_2303

Последний набор на мои курсы в 2019-м
https://vk.com/wall-152484379_2300

Самый первый принцип ООП
https://vk.com/wall-152484379_2297
+ рассуждения про обучение OOD
https://vk.com/wall-152484379_2294
https://vk.com/wall-152484379_2285
Кобол 1959 вечно жив! :)
via The 18th edition of the BElgian-NEtherlands software eVOLution symposium
http://soft.vub.ac.be/benevol2019/
Самые востребованные профессии в 2025-м году:
1) Программист
2) Инженер
3) 3D-дизайнер
4) Маркетолог
5) Спец по ИТ-безопасности
6) Урбанист
7) Биотехнолог
8) Спец по альтернативной энергетике
9) Технолог автоматизированных систем
10) Спец по пищевой промышленности
по данным Центра "Гуманитарные технологии" при МГУ
За первую половину 2019-го года количество вакансий для айтишников в США выросло на 32%, и сейчас составляет 918,000 незакрытых рабочих мест.
https://www.wsj.com/articles/americas-got-talent-just-not-enough-in-it-11571168626
Сотрудников взять негде: за год на рынок пришли 60 тысяч выпускников университетов по computer science, 20 тысяч разработчиков после онлайн-курсов и 80 тысяч иностранцев по визе H-1B.
"Сегодня каждая компания стала технической, -- заявил Mehul Patel, CEO рекрутингового портала Hired. Будь вы Capital One, или Disney, или American Express, вам надо думать прежде всего о найме грамотных ИТ-инженеров".
Если в 2016-м время поиска программиста под вакансию составляло 55 дней, то сегодня оно возросло до 66 дней. При том, что каждая незакрытая вакансия приносит компании убыток в размере 680 долларов в сутки.
Главная тут беда, отмечают практически все рекрутеры, это низкая вера людей в самих себя :) "Мы можем обучить почти каждого техническим скиллам, но не можем научить людей поверить в свои возможности, в то, что это им вполне по силам, не можем научить проявлять интерес и энергичность и не бояться активно искать хорошую работу".
Новый тренд -- интервью с искусственным интеллектом!
Сеть GPT-2 (unsupervised language model), созданная в OpenAI и обученная на 40 гигабайтах текста,
дала интервью очень солидному изданию Economist.
https://worldin.economist.com/article/17521/edition2020artificial-intelligence-predicts-future

-- Чего нам ждать в 2020-м?
Мир полон разрушительных технологий, которые могут дать совершенно реальные и потенциально глобальные последствия. Самое важное -- искусственный интеллект, который усиливается в геометрической прогрессии. Следует обратить внимание и на развитие беспилотных автомобилей.

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

Что такое GPT-2
https://habr.com/ru/post/440564/
Практически все 100%, кого я консультирую по трудоустройству, имеют неверное представление о процессе найма. Все ошибочно думают, что важны прежде всего хард-скиллы, но на самом деле, совсем нет. Успешность устройства на работу слабо связана с вашими техническими навыками. Конечно, минимальным требованиям надо соответствовать, но ценят в вас ИТ-менеджеры прежде всего не технические скиллы.
Свежее исследование американской ИТ-ассоциации CompTIA.org говорит, что самый важный скилл -- умение самостоятельно решать задачи и проблемы (55% менеджеров оценили важность). Второй 45% -- умение работать в коллективе, третий 34% -- опыт, четвёртый 34% -- глубокие технические знания конкретного фреймворка, и пятый 31% -- умение адекватно общаться с другими.
Демонстрируйте максимальную самостоятельность, умеренную дружелюбность и спокойную адекватность, ведите себя на собеседованиях по взрослому :)
Francois Chollet, создатель фреймворка машинного обучения Keras, опубликовал мощную работу, которая уже разошлась на ссылки в научных кругах -- это методика, как оценивать AI-системы не по качеству решения ими специфичных задач, а сравнивать с универсальным человеческим интеллектом в целом.
https://arxiv.org/abs/1911.01547
Chollet в частности предложил набор из нескольких сотен задачек для такой оценки как человека, так и программы, можно скачать и потестить свой интеллект.
https://github.com/fchollet/ARC
Задачки абстрактные какие-то в духе тетриса, и я честно говоря с ходу ничего не понял 😄
Слава роботам!
Какие хард-навыки станут ключом к работам грядущего десятилетия? Это прежде всего скиллы в сфере машинного обучения и data science, говорит исследование SlashData, в котором было опрошено 20,500 человек из 167 стран.
https://insights.dice.com/2019/11/29/data-scientists-machine-learning-skills-key-future-jobs/
В сфере ML/DS собираются развиваться (или уже активно качают свои навыки) 45% айтишников. 33% отмечают важность проектирования клиентской части, 25% топят за нативную облачную разработку и контейнеры, 24% за эффективное управление проектами, и 23% за DevOps. В опросе явно смешали всех -- и бэк, и фронт, и менеджмент, и администрирование, но в таком случае явное превосходство машинного обучения над всеми другими темами ещё более выразительно.

Из самых важных навыков в цепочке джун -- инженер -- сеньор -- ИТ-директор везде тотально проходит знание SQL и Python, к которому подтягивается R.

Зарплаты в США в этой сфере $7500+ для джунов с опытом 1-2 года, $9000+ для миддлов 3-6 лет, $11700+ для сеньоров 5-8 лет и $14000+ для менеджеров с аналогичным опытом.
То, о чём так долго твердили математики, добирается до мэйнстрима! Про сочетание формальных "прозрачных" подходов с нейросетевыми чёрными ящиками я например тут рассказывал: https://vk.com/wall-152484379_2271
И вот сама Microsoft сообщила об именно такой технологии Neurosymbolic AI (не нейронное, а понятное человеку символьное кодирование смысла), которая уже показывает очень приличные результаты на датасете MathQA / AQuA-RAT из 100,000 профильных задачек.
Статья очень хорошая и понятная, и внутри ещё ссылочки полезные:
https://pureai.com/articles/2019/12/05/neurosymbolic-ai.aspx
Ещё в тему, от Dr. Gulwani ("a programmer’s programmer"):
https://www.microsoft.com/en-us/research/blog/program-synthesis-and-the-art-of-programming-by-intent-with-dr-sumit-gulwani/
===
И ну очень красивая и необычная развлекалка, своеобразная текстовая рогулька, где мир генерится автоматически AI (всё в исходниках):
https://www.aidungeon.io/
Как это устроено внутри:
https://pcc.cs.byu.edu/2019/11/21/ai-dungeon-2-creating-infinitely-generated-text-adventures-with-deep-learning-language-models/

"игрок: я призываю жирафа.
мастер: ты произносишь заклинание так громко, как только можешь, высоко поднимая руки. жирафы появляются из ниоткуда и бегут прямо на тебя. они бегут так быстро, что едва не сбивают тебя с ног. ты тут же ловишь их и связываешь."
В 2017-м Китай тратил 17 млрд. долл. на искусcтвенный интеллект, а в 2020-м потратит уже $70 млрд. Причём китайцы опережают США уже не только по общему объёму AI-исследований, но и по специализированным военным AI-проектам. Однако в ближайшие годы Китай основные средства направит на разработку фундаментальных алгоритмов, робототехнику и интеллектуальные инфраструктуры, а вот США усилит военные акценты.
В США 5 из 10 топовых университетов, где ведутся наиболее мощные разработки по AI, в Китае их три. Ещё по одному в Индии и Канаде.

Amazon выпустила полноценную IDE для ML-проектов с поддержкой полного цикла и ноутбуков
https://aws.amazon.com/sagemaker/

=== материалы Школы за 28 ноября -- 9 декабря 2019 г. ===

Какая сегодня ситуация в суровом энтерпрайзе?
https://vk.com/wall-152484379_2318

Стоит ли сегодня ставить на Rust?
https://vk.com/wall-152484379_2327

Заключительный 6-й уровень аутентичной математики
и про альтернативный путь
https://vk.com/wall-152484379_2338

Алгоритм саморазвития
https://vk.com/wall-152484379_2329
+ и ещё про это же
https://vk.com/wall-152484379_2303
Пятёрка самых быстрорастущих ИТ-профессий 2020-го года по отчёту Мирового экономического форума https://www.weforum.org/reports/the-future-of-jobs
Из-за быстрого развития ИТ работу потеряют 7 миллионов человек, в основном из административного и офисного секторов, и прочие белые воротнички.
А в самом айти быстрее всего увеличивается спрос на такие специальности:
1) Инженер по кибербезопасности. Нюанс в том, что почти на все такие вакансии будет нужен официальный университетский диплом;
2) Инженер по искусственному интеллекту и машинному обучению. Тут рулит прежде всего знание алгоритмов ML и программирования;
3) Data scientist. Ну это понятно :)
4) Фуллстек-разработчик веб-приложений. Это топ в плане доступности для самоучек, причём и оклады тоже очень приличные, и в целом перспективы тут остаются весьма стабильными. Минус, что и проекты обычно довольно рутинные, и придётся зубрить скучные веб-фреймворки;
5) Инженер DevOps.

В целом, эксперты WEF эти специальности даже называют долгосрочно доминирующими трендами, и грани между ними достаточно условные.
Сейчас классические стеки наподобие LAMP быстро становятся легаси, я сам не очень сперва доверял этому тренду (это же Facebook, Wordpress, phpBB и тысячи их), но энтерпрайзных подтверждений всё больше, вот например:
https://habr.com/ru/post/479694/
Куда же это всё идёт? Что грядёт на замену хотя бы классическому веб-мэйнстриму?

во-первых, заканчивается эпоха REST API, да, причём довольно странно: заменой на GraphQL (на хабре как раз об этом);

во-вторых, забываем про классические серверы, включая и виртуалки -- новая волна это serverless (ну это нормально);

в-третьих, забываем про CSS, вместо них будут так называемые design systems, что это:
https://css-tricks.com/who-are-design-systems-for/

в-четвёртых, вместо одностраничников SPA приходят прогрессивные веб-приложения PWA (с качественной поддержкой оффлайна);

в-пятых, классический фуллстек умирает -- вместо него достаточно знания чистого JavaScript, конструируем фронт в визуальной design system, на бэке добавляем небольшой набор js-функций, а всю серверную возню делегируем провайдеру.

В чём главная фишка такого стека? В том, что это реальная суперсила :) в одиночку за несколько часов на React/Gatsby например можно сделать то, что ещё 2-3 года назад коллектив пилил неделями. Работающий прототип стартапа можно сегодня собрать за один день!
Andrew Ng прорекламировал новый цикл курсов по ML / TensorFlow, на курсере:
"Courses 1 & 2 of deeplearningai_‘s newest Specialization is now available on Coursera. Training a model is only one step in building a working AI system. These courses teach you how to navigate some key deployment scenarios."
https://www.coursera.org/specializations/tensorflow-data-and-deployment
Этот цикл про то, how to get your machine learning models into the hands of real people on all kinds of devices.
Читал на днях кого-то из гуру по экстремальному программированию XP, и интересную фичу запомнил. Она хорошо известна в программной инженерии, но в форме мягкой рекомендации, а аджайлы по своему хороши тем, что такие рекомендации превращают в жёсткие обязательные требования, от которых уже не отмажешься, и добиваются правильного результата.

Речь о классическом планировании проекта, когда у нас есть сроки, бюджет и объём работ. Текущее состояние проекта -- точка внутри треугольника с такими вершинами, и когда она слишком смещается к одному из углов (например, приближается к "сроку", что означает, что нехватка времени становится критичной, а бюджет не освоен), надо срочно тянуть эту точку к двум другим углам. В данном случае надо быстро расходовать бюджет, например, привлекая новых программистов, и быстро реализовывать приоритетные фичи.

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

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

Просто этот момент неочевиден, объяснения и ссылки на исследования не помогают, поэтому и приходится превращать его в незыблемый принцип.
На конференции по Neural Information Processing Systems https://nips.cc/ на прошедшей неделе затусило 13,000 специалистов по AI.
Yoshua Bengio, один из единичных топовых учёных в этой сфере, которые пока не перешли в гуглы-фейсбуки и остаются верными академизму, отметил, что пока многие подходы к машинному обучению чрезмерно специфичны, из-за чего обмен полезными знаниями между AI-системами сильно затруднён.
Blaise Aguera y Arcas, архитектор AI-проектов в Microsoft и Google, посоветовал не забывать о "биологической" природе интеллектуальных систем и призвал активнее внедрять соответствующие механизмы в глубокое обучение. В целом был отмечен большой прогресс, однако особо подчёркивались призывы к прагматичной оценке этого прогресса. Пока все успехи весьма относительны.

-- Microsoft продолжает исследования по формализации ML-систем и повышения их прозрачности. Новая архитектура neurosymbolic AI models подразумевает синтез символических и нейронных алгоритмов. Введено понятие tensor product representation (TPR) -- нейросимволы, паттерны активации сетей со специфической внутренней структурой, которые предложено трактовать с прозрачных символических позиций, то есть ими можно формально манипулировать, как принято в классических AI-системах. В частности, удалось с помощью TPR решать математические и программистские задачи, сформулированные на естественном языке (генерировался Лисп-код решения).
https://www.microsoft.com/en-us/research/blog/next-generation-architectures-bridge-gap-between-neural-and-symbolic-representations-with-neural-symbols/

-- Как Uber с помощью ML анализирует огромные датасеты, полезная статья в плане построения соответствующей технической архитектуры:
https://eng.uber.com/productionizing-distributed-xgboost/

-- MIT и IBM создали датасет ObjectNet, заточенный на понимание сложных и неоднозначных моментов распознавания изображений. Людям понятно, а машинам очень тяжело. Вдобавок в нём нету обучающей выборки! :)
http://objectnet.dev/

-- NASA совместо с Intel, IBM и Google внедряет AI-технологии поиска инопланетян. Когда каждые 10 секунд приходит очередной гигабайт сырых данных, вручную изучать это всё давно уже немыслимо.
https://www.space.com/artificial-intelligence-tech-aid-exoplanet-asteroid-detection.html
Основные тренды искусственного интеллекта 2019 по ежегодному стэнфордскому исследованию AI Index https://hai.stanford.edu/ai-index/2019
-- в период 1998-2018 количество научных работ по AI выросло на 300%;
-- очень высок интерес к теме обучения AI. Например, AI/ML сегодня самая популярная специализация среди выпускников факультетов computer science в Северной Америке. Также, 21% PhD в cs специализируется сегодня на AI, на втором месте с большим провалом (10%) темка кибербезопасности;
-- США пока лидеры по научной деятельности в сфере AI (40%), но вплотную за ними Китай и Япония;
-- скорость AI-алгоритмов, учитывая прогресс и железа и софта, стабильно растёт. Время для обучения типичной модели на ImageNet сократилось с трёх часов в октябре 2017-го до 88 секунд в июле 2019-го. Стоимость такого обучения упала с тысяч долларов до менее чем ста долларов;
-- в прикладных сферах максимальные инвестиции в AI приходятся на беспилотные автомобили ($7,7 млрд.), медицина и распознавание лиц по $4,7 млрд., и робототехника $1 млрд.

И вот мнение отечественных экспертов про это всё (+ PyTorch рулит!)
https://habr.com/ru/post/480348/

Короче говоря, больше игнорировать этот тренд невозможно, поэтому с января 2020-го оживляю и далее развиваю мой курс по машинному обучению :)
-- Как lego.com переходит на serverless и functionless
https://www.serverlesschats.com/20
functionless -- очередной сильный less-тренд, идея которого, что мы теперь даже не пишем конкретные функции-обработчики событий, а работаем с облаком как с единой многофункциональной панелью, связывая входы и выходы с помощью конфигурационных настроек и единичных строчек кода, крохотных скриптов. А первый шаг к безфункциональности -- писать поменьше функций и по максимуму использовать стандартные возможности облачной системы.
+ развитие темы про functionless и Lambda Nirvana (не зря я когда-то назвал паблик lambda_brain :)
https://medium.com/lego-engineering/dont-wait-for-functionless-write-less-functions-instead-8f2c331cd651

-- Какой невероятно сложной в инженерном плане оказалась задача организации киберсоревнований по League of Legends, куча увлекательных технических подробностей
https://technology.riotgames.com/news/engineering-esports-tech-powers-worlds
Искусственный интеллект быстро становится топовой специальностью, это происходит буквально за один год! Конечно, под тему AI сегодня подгоняется много всякого разного, и тем не менее, хотя бы скилл такой в своём резюме указывать сегодня очень важно, иначе ваши cv даже по ключевым словам не пройдут фильтры хороших вакансий. Для начала желательно пройти что-то вроде моего курса по машинному обучению, чтобы научиться распознавать котиков и познакомиться с азами data science и фреймворка pytorch.

Потому что в США специалист по AI -- самая быстрорастущая специальность по критерию размера зарплат (среди всех профессии вообще!), как на неделе сообщил LinkedIn. А вот краткосрочный спрос на спецов по блокчейну вполне ожидаемо сильно спал. Вторыми по росту зарплат стали инженеры по робототехнике, и третьими -- data scientists.
Bye bye blockchain developer, hello artificial intelligence specialist.
https://fortune.com/2019/12/10/artificial-intelligence-hottest-job/

С AI такого спада точно не случится, но конечно будет ещё много шума, когда каждый начинает вписывать в свои навыки "data scientist" и "data engineer" и т. п., а на каждом собеседовании будут задавать вопрос про навыки в сфере AI. Поэтому сегодня особо важно быть в этой теме, уметь выделяться своими реальными умениями. "Навыки AI/ML" становятся таким же мастхэвом, как и SQL или ООП.
Пять прогнозов по облачным вычислениям на 2020-й от Forrester.
https://www.techrepublic.com/article/forrester-the-5-ways-cloud-computing-will-change-in-2020/
1) Сегодня 75% облачного рынка контролируют AWS, Google, Microsoft и Alibaba.
IBM и Oracle уже объявили, что не будут претендовать на передел этого рынка, а сосредоточатся на более специфических нишах. Поэтому сегодня можно смело ставить на один из этих четырёх массовых облачных стеков.
2) Соответственно, многие Software as a Service - поставщики полностью переползают на эти платформы. CloudSuite на AWS, Office 365, естественно, на Azure, Salesforce на Alibaba.
3) Объём высокопроизводительных вычислений (HPC; всевозможные нагрузочные проекты вроде прогнозов погоды) в этих публичных облаках вырастет на 40%, и провайдеры уже предлагают новые виды инстансов под такие проекты (AWS's C5/P2/P3/G3, Azure's H-/NC-/ND-/NV-, Google's V100/P100/K80). Поэтому можно смело закладываться и на отличную масштабируемость в этих стеках.
4) Продолжится конкуренция между классической нативной разработкой в виртуалках, и serverless. На эту тему в паблике на днях напишу пост.
5) Обеспечение безопасности в public clouds продолжит стабильно усиливаться, и это хорошо.
Мнения ведущих экспертов по AI (уровня OpenAI, DeepMind, Google, IBM) в плане прогнозов на 2020-й и ближайшие годы схожи в первую очередь в том, что обещается сильный акцент на упрощении прикладных технологий AI/ML/DS. Потому что найти спецов с хорошими университетскими знаниями по математике (и при этом приличных программистов), вообще нереально, а количество проектов быстро растёт. Ситуацию ещё усложняют совсем ещё молодые и довольно необычные ML-фреймворки, отсутствие стандартов на сырые данные, на разметку датасетов, почти нулевой опыт в обеспечении дорогого жизненного цикла AI-проектов...
Я этот тренд учитываю :) С января возобновляется мой курс по машинному обучению, в новом формате. Продолжим изучать новый фреймворк fast.ai, надстройку над PyTorch, который разработал бывший архитектор Kaggle, сам очень успешно участвовавший в соревнованиях. Фреймворк очень удобный и простой: загрузка датасета, обучение и визуализация результата требуют буквально 3-5 строчек на питоне. Первый ноутбук уже готов :)

В научном плане конец года отметился очередным трендом автоматизации ML.
Uber тестирует систему, в которой с помощью так называемых Generative Teaching Networks генерируются автоматически не только обучающие данные, но и вся инфраструктура обучения, что должно существенно ускорить и улучшить тренировку моделей. Выигрыш получился в девять раз. Понятно, что возникает вопрос, а насколько при этом искусственные датасеты адекватны реальным? об этом в статье
https://eng.uber.com/generative-teaching-networks/

Схожая тема от Microsoft: как RL-агентам автоматически выбирать наилучшие цели для обучения (на практике 55 игр для Атари):
https://www.microsoft.com/en-us/research/blog/finding-the-best-learning-targets-automatically-fully-parameterized-quantile-function-for-distributional-rl/

Япония решила сделать AI обязательным предметом для изучения в колледжах:
https://www.nasdaq.com/articles/softbanks-son-says-japan-should-make-ai-mandatory-subject-for-college-students-2019-12-16

Нешаблонная, но весьма актуальная задачка для AI: как выявлять отсутствие объектов :) Если на изображении имеется какая-то шумовая фигня, то классические алгоритмы пытаются классифицировать всё что хоть как-то "похоже" распозналось, относя каждый объект к "ближайшей" категории, что некорректно.
https://spectrum.ieee.org/tech-talk/robotics/artificial-intelligence/the-next-frontier-in-ai-nothing
Свежее интервью с Барбарой Лисков на Гейдельбергском форуме лауреатов (людей, получавших самые престижные премии в computer science и математике -- Филдса, Абеля, Тьюринга).
https://www.quantamagazine.org/barbara-liskov-is-the-architect-of-modern-algorithms-20191120/

Основополагающие её принципы (в частности, LSP), правильное использование абстракций и спецификаций, ставшие классикой ООАП, проходим на моём новом курсе по объектно-ориентированному проектированию. Порекомендую соответственно классическую книгу Лисков "Использование абстракций и спецификаций при разработке программ" (1989).

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