Pull to refresh
5
0
Send message

Алгебраические типы данных и Python

Reading time14 min
Views21K

Возможно, кто-то из читателей, увидев заголовок этой статьи, подумает что-нибудь вроде:

"Что?! Алгебраические типы данных?! Это же что-то из мира функциональных языков программирования. Python?! Ну нет... Где Python со своей динамической утиной типизацией, а где типы данных, и уж тем более алгебраические..."

Что-то в таком духе. Но, на самом деле, в Python есть своя система типов, кроме того Python считается языком со строгой типизацией, а благодаря mypy и аннотациям, корректность используемых типов может быть проверена статически без непосредственного запуска программы. Помимо всех этих достаточно интересных особенностей, в Python есть возможность работать и с алгебраическими типами данных. Так что же это за типы данных, как они выглядят в Python, и какую практическую пользу приносят — попробуем разобраться в этой статье.

Читать далее
Total votes 23: ↑22 and ↓1+26
Comments36

[Личный опыт] Куала-Лумпур, Малайзия: как русскому программисту живётся в азиатском киберпанке

Reading time11 min
Views72K


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


В итоге из Кипра он с женой переехал в Малайзию, где, спойлер, ему понравилось намно-оого больше. Про эту, во многом неизвестную в России, страну на этот раз и пойдет речь.


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

Читать дальше →
Total votes 55: ↑50 and ↓5+62
Comments64

Как работать с Big Data быстрее и эффективнее: Kubernetes для Data Science

Reading time10 min
Views9.9K


Big Data by Batjorge


Традиционный подход к построению работы с большими данными — развернуть Hadoop-кластер, установить дополнительные инструменты и построить на нем платформу для работы с данными. Но в таком подходе есть несколько ограничений, вроде невозможности разделения Storage- и Compute-слоев, сложностей масштабирования и изоляции сред для разных приложений. Даже несмотря на то, что Hadoop можно арендовать у облачного провайдера как сервис (aaS), такой подход все равно мало чем отличается от развертывания на собственном оборудовании.


Однако есть другой, Cloud-Native подход работы с большими данными. Он позволяет решить эти проблемы, а также получить дополнительные возможности от облачных технологий. Для этого используют Kubernetes, интегрируя его с различными инструментами.


Я Александр Волынский, архитектор облачной платформы Mail.ru Cloud Solutions. Расскажу, как Kubernetes помогает в работе с Big Data, какие используются инструменты и какие преимущества можно получить по сравнению с классическим развертыванием.


Также вы можете посмотреть видеовыступление на митапе «Большие данные: не хайп, а индустрия».
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments4

ruCLIP — мультимодальная модель для русского языка

Reading time5 min
Views14K

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

В начале этого года OpenAI опубликовала модель под названием CLIP (Contrastive Language–Image Pre-training). В статье авторы модели привели потрясающие результаты по точности zero-shot-классификации изображений, а также сопоставили тексты и картинки в рамках одной системы. Однако модель OpenAI работает только с английским языком. Можно ли быстро адаптировать её для работы с русским?

Команды R&D SberDevices и Sber AI увлеклись этим вопросом. В этой статье мы расскажем про первые результаты наших исследований CLIP для русского языка, опишем ключевые идеи предложенной модели и поделимся с вами кодом для её использования — решения задач zero-shot image classification.

Что же можно сделать с помощью ruCLIP?

Читать далее
Total votes 29: ↑29 and ↓0+29
Comments3

Обзор Lens — IDE для Kubernetes

Reading time6 min
Views59K

В прошлый раз я писал о том, как можно улучшить утилиту kubectl, дополнив и расширив ее функционал, а сегодня зайду с другой стороны: познакомимся с решением, которое позволит забыть о консольных командах и управлять Kubernetes-кластером в графическом интерфейсе. Речь пойдёт про Lens — бесплатное приложение с открытым кодом, которое позиционируется как полноценная Kubernetes IDE. Мы уже кратко рассматривали Lens в сравнительном обзоре GUI для K8s, а теперь попробуем это решение в деталях. Что ж, поехали!

Читать далее
Total votes 55: ↑55 and ↓0+55
Comments9

Сжимаем трансформеры: простые, универсальные и прикладные способы cделать их компактными и быстрыми

Reading time6 min
Views5.6K

transformer_press


Сейчас в сфере ML постоянно слышно про невероятные "успехи" трансформеров в разных областях. Но появляется все больше статей о том, что многие из этих успехов мягко говоря надуманы (из недавнего помню статью про пре-тренировку больших CNN в компьютерном зрении, огромную MLP сетку, статью про деконструкцию достижений в сфере трансформеров).


Если очень коротко просуммировать эти статьи — примерно все более менее эффективные нерекуррентные архитектуры на схожих вычислительных бюджетах, сценариях и данных будут показывать примерно похожие результаты.


Тем не менее у self-attention модуля есть ряд плюсов: (i) относительная простота при правильной реализации (ii) простота квантизации (iii) относительная эффективность на коротких (до нескольких сотен элементов) последовательностях и (iv) относительная популярность (но большая часть имплементаций имеет код раздутый раз в 5).


Также есть определенный пласт статей про улучшение именно асимптотических свойств self-attention модуля (например Linformer и его аналоги). Но несмотря на это, если например открыть список пре-тренированных языковых моделей на основе self-attention модулей, то окажется, что "эффективных" моделей там буквально пара штук и они были сделаны довольно давно. Да и последовательности длиннее 500 символов нужны не очень часто (если вы не Google).


Попробуем ответить на вопрос — а как существенно снизить размер и ускорить self-attention модуль и при этом еще удовлетворить ряду production-ready требований:

Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments13

17 интересных (и забавных) API для вашего проекта

Reading time7 min
Views130K


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

Читать дальше →
Total votes 44: ↑36 and ↓8+40
Comments7

Как Яндекс применил генеративные нейросети для поиска ответов

Reading time11 min
Views70K


Только что мы представили новую версию поиска Y1. Она включает в себя комплекс технологических изменений. В том числе улучшения в ранжировании за счёт более глубокого применения трансформеров. Подробнее об этом направлении мой коллега Саша Готманов уже рассказывал в нашем блоге. В новой версии модель стала мощнее: количество параметров возросло в 4 раза. Но сегодня мы поговорим о других изменениях.

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

Сегодня мы поделимся опытом создания и внедрения технологии YaLM (Yet another Language Model), которая теперь готовит ответы для Поиска и Алисы. В этом мне помогут её создатели — Алексей Петров petrovlesha и Николай Зинов nzinov. Эта история основана на их докладе с Data Fest 2021 и описывает опыт внедрения модели в реальные продукты, поэтому будет полезна и другим специалистам в области NLP. Передаю слово Алексею и Николаю.

Total votes 48: ↑46 and ↓2+66
Comments18

Альтернатива ML-Agents: интегрируем нейросети в Unity-проект с помощью PyTorch C++ API

Reading time9 min
Views5.5K


Кратко объясню, что будет происходить в этой статье:

  • покажу, как использовать PyTorch C++ API для интеграции нейросети в проект на движке Unity;
  • сам проект я подробно описывать не буду, это не имеет значения для данной статьи;
  • использую готовую модель нейросети, преобразовав её трассировку в бинарник, который будет подгружаться в рантайме;
  • покажу, что такой подход существенно облегчает деплой сложных проектов (например, нет проблем с синхронизацией сред Unity и Python).

Добро пожаловать в реальный мир


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

Другими словами, мне нужно превратить исследовательский проект на PyTorch в готовое решение, способное вместе с движком Unity работать в боевых условиях.
Читать дальше →
Total votes 12: ↑9 and ↓3+9
Comments0

Балет и роботы

Reading time11 min
Views8.6K

Оцветнение видео под капотом


Продолжаю рассказывать о своём необычном увлечении. Моё хобби заключается в алгоритмическом преобразовании древнего черно-белого видео в материал, который выглядит современно. Про мою первую работу написано в этой статье. Прошло время, мои навыки улучшились, и теперь я не смеюсь над мемом «Zoom and enhance».


Времяпрепровождение может показаться странным, но оно, правда, приносит удовольствие. Может дело в возможности быть волшебником, превращающим с помощью техномагии пепел прошлого в огонь, а может причина в множестве интеллектуальных ребусов, не имеющих готового решения, может быть это компенсация недостатка творческого самовыражения, может быть всё вместе. С каждым новым видео процесс обрастает деталями, растёт количество задействованных сторонних инструментов и скриптов.
Подробности оцветнения
Total votes 65: ↑65 and ↓0+65
Comments27

Топот маленьких ножек

Reading time6 min
Views30K

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

Как это началось? Многие иностранные компании восприняли «Маленькую победоносную войну» 08.08.08 как четкий и недвусмысленный сигнал, отменив планы по развитию бизнеса России. В их числе оказалась компания, в которой я работал начальником СДО — меня сократили, выплатив полугодовой оклад.

Деньги мы тут-же потратили, отправившись в Таиланд — я был востребованным специалистом и без труда находил работу. Вот только вернувшись в Россию, мы словно оказались в другой стране — рынок вакансий в Перми сократился в десятки раз. И если моя беременная подруга смогла найти работу (она химик), то у меня все было глухо.

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

Работа, которую нашла моя подруга, помимо сравнительно высокой по меркам кризисной Перми зарплаты имела и минусы — она была вахтовая. Так что заниматься новорождённым Андреем пришлось мне. И это оказалось неожиданно просто.

Оставшись тет-а-тет с младенцем, я несколько оробел. Младенец хныкал, бессмысленно таращился по сторонам, гугукал и пускал слюни. Я аккуратно взял его на руки, прижав к груди. Он слегка повозился, устраиваясь поудобнее. И уснул, предоставив мне возможность заниматься своими делами.

Читать далее
Total votes 178: ↑103 and ↓75+55
Comments343

Многоразовый шаблон логирования на Python для всех ваших приложений в Data Science

Reading time4 min
Views7.4K

Идеальный способ отлаживать и отслеживать приложения — хорошо определённые, информативные и удобно структурированные логи. Они являются необходимым компонентом любого — малого, среднего или крупного — проекта на любом языке программирования, не только на Python. Не используйте print() или корневой логгер по умолчанию, вместо этого настройте логирование на уровне проекта. К старту нового потока курса по Data Science, мы перевели статью, автор которой решил поделиться своим шаблоном для логирования. Не лишним будет сказать, что этот шаблон пришёлся по душе многим специалистам — от дата-сайентистов профессионалов и до разработчиков ПО разного уровня.

Читать далее
Total votes 8: ↑5 and ↓3+5
Comments4

Оцифровка мыслей, или рецепт быстрого приготовления блокнота в микроволновке

Reading time6 min
Views24K

Я люблю думать на бумаге. При работе это помогает мне усваивать большое количество новой информации, ведь, как говорят, «qui scribit, bis legit» («кто пишет, тот дважды читает»). Участвуя в обсуждениях, мозгоштурмах, рабочих встречах, я конспектирую основные моменты: рисую схемки, делаю пометки, записываю идеи. Так я разгружаю свою голову от лишней на текущий момент информации, чтобы сгенерировать новую. Кроме того, записи помогают не потерять что-то важное в потоке мысли. Я всегда могу к ним вернуться и взглянуть на них с общего плана, чтобы увидеть что-то новое. Это здорово помогает.

В статье я расскажу о своем поиске идеального решения для ведения записей и гаджете, в котором я в итоге его нашел.
Читать дальше →
Total votes 50: ↑46 and ↓4+52
Comments53

Лучшие фантастические циклы по версии «Хьюго». Кто претендует на премию в 2021 году?

Reading time5 min
Views26K

«Хьюго» — одна из самых известных и авторитетных премий в области фантастики. Она присуждается с 1953-го и победителями в различные годы становились Роджер Желязны, Филип К. Дик, Роберт Сильверберг, Урсула Ле Гуин и многие другие признанные мастера жанра.

Несколько лет назад список номинаций «Хьюго» пополнился новой — за лучшую серию. В этой категории победа уже доставалась «Саге о Форкосиганах» и «Шалиону» Лоис Макмастер Буджолд, «Странники» Бекки Чамберс и «Пространство» Джеймса Кори. Хочется рассказать о тех циклах, которые претендуют на награду в этом году — среди них немало примечательных, правда, к сожалению, пока не все изданы на русском языке.

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments15

Что посмотреть, пока выходные — старые передачи из 90-х и неспешные видео [можно в качестве фона]

Reading time3 min
Views4.7K

Ранее мы разобрались с тем, какую музыку слушали бразильцы в 40-х годах прошлого века и рассказали, какие радиостанции популярны на Тибете. Сегодня продолжаем тему находок и обсуждаем видеосервисы, позволяющие путешествовать, не вставая с кресла [привыкать к ним, конечно же, не нужно, а вот поискать что-то занимательное — вполне можно].

Читать далее
Total votes 8: ↑6 and ↓2+5
Comments0

Использование LoRa для интеграции кота в IoT

Reading time6 min
Views32K

Увлекательные приключения кота Барсика в нидерландской деревне и его интеграция в интернет вещей с помощью LoRa радио и The Things Network.

Читать далее
Total votes 134: ↑134 and ↓0+134
Comments106

Роботы-игрушки. Топ-10 проектов c Kickstarter для развития ребенка и обучения программированию

Reading time7 min
Views15K

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

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments2

Как проходит собеседование Python-разработчика: вопросы для джуниоров и мидлов

Reading time7 min
Views91K
Собеседование — одна из наиболее стрессовых тем для разработчиков, но только первые двадцать раз.

Привет! Меня зовут Руслан, я один из наставников курса «Мидл Python-разработчик» в Яндекс.Практикуме. Около 12 лет я занимаюсь разработкой, из них девять — на Python. За это время я собеседовался на разные позиции десятки раз и сам провёл примерно пару сотен собеседований. Не всегда успешно :/ В этой статье поговорим о том, как снизить вероятность провалов и к чему быть готовым.

Предположим, что вы уже определились с потенциальным работодателем и вам предстоит собеседование.

В посте я расскажу про три основных этапа:

  1. Подготовка к собеседованию: какую домашнюю работу провести, чтобы собеседование прошло легче.
  2. Собеседование: как оно проходит и какие вопросы ждать джунам и мидл-разработчикам.
  3. Что делать после собеседования и как быть, если вам отказали.


Читать дальше →
Total votes 20: ↑16 and ↓4+17
Comments13

Полезные консольные Linux утилиты

Reading time13 min
Views117K

В этой подборке представлены полезные малоизвестные консольные Linux утилиты. В списке не представлены Pentest утилиты, так как у них есть своя подборка.


Осторожно много скриншотов. Добавил до ката утилиту binenv.


binenv — cамая интересная утилита для установки новых популярных программ в linux, но которых нет в пакетном менеджере.

Читать дальше →
Total votes 96: ↑92 and ↓4+110
Comments110

Information

Rating
Does not participate
Registered
Activity