Pull to refresh
0
0
rhangelxs @rhangelxs

Пользователь

Send message

Трансформеры как графовые нейронные сети

Reading time 10 min
Views 14K
TL;DR: перевод поста Chaitanya Joshi "Transformers are Graph Neural Networks": схемы, формулы, идеи, важные ссылки. Публикуется с любезного разрешения автора.

Друзья-датасаентисты часто задают один и тот же вопрос: графовые нейронные сети (Graph Neural Networks) — прекрасная идея, но были ли у них хоть какие-то настоящие истории успеха? Есть ли у них какие-нибудь полезные на практике приложения?



Можно привести в пример и без того известные варианты — рекомендательные системы в Pinterest, Alibaba и Twitter. Но есть и более хитрая история успеха: штурмом взявшая промышленную обработку естественного языка архитектура Transformer.


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

Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 2

Network diagram as code / Схема сети как код

Reading time 6 min
Views 13K
В последние пару лет стал больше заниматься документацией. Написать поясняющий текст о том, как работает та или иная система — в целом, это достаточно просто. Нарисовать схему, на которой будут отображены все ключевые объекты, связи между этими объектами, тоже вполне легко.

Но самый проблемный момент — это поддерживать эту документацию в актуальном состоянии. И ладно бы текст, но схемы… Т.к. вся документация онлайн, т.е. в формате html, то к тексту прилагаются картинки gif/jpeg/png, на которых собственно изображены схемы. А схемы рисуются в различных программах типа Visio или онлайн-сервисах а-ля draw.io. Затем экспортируешь схему в графический формат и прилагаешь к html. Все просто.

В чем проблема?
Читать дальше →
Total votes 26: ↑25 and ↓1 +24
Comments 13

Бесполезный REPL. Доклад Яндекса

Reading time 10 min
Views 9.7K
REPL (read-eval-print loop) бесполезен в Python, даже если это волшебный IPython. Сегодня я предложу одно из возможных решений этой проблемы. В первую очередь доклад и мое расширение TheREPL будет полезны тем, кого интересует более быстрая и эффективная разработка, а также тем, кто пишет stateful-системы.


— Меня зовут Александр, я в Яндексе работаю программистом. Пишем мы в моей команде на Python, на Go пока не перешли. Но в свободное от работы время я, как ни странно, тоже программирую и делаю это на очень динамическом языке — Common Lisp. Он, пожалуй, даже более динамический, чем Python. Его особенность заключается в том, что сам процесс разработки устроен несколько иначе. Он более интерактивный и итеративный, потому что в REPL на Lisp вы можете делать всё: создавать новые и удалять старые модули, добавлять методы, классы и удалять их, переопределять классы и т. д.
Читать дальше →
Total votes 31: ↑30 and ↓1 +29
Comments 3

Плагин для мониторинга K8s-приложений DevOpsProdigy KubeGraf v1.3.0: новый релиз и новые фичи

Reading time 2 min
Views 3.1K
На этой неделе состоялся релиз новой версии нашего плагина для Grafana, предназначенного для мониторинга kubernetes-приложений DevOpsProdigy KubeGraf v1.3.0.

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

  • интеграция с k8s-api для построения карты ваших приложений, сгруппированных по неймспейсам / нодам-кластера + привязка к конкретным pod’ам/сервисам;
  • сводная страница со всеми ошибками / предупреждениями о работе нод и приложений кластера;
  • возможность инсталляции плагина с облачными k8s-провайдерами через авторизацию с помощью bearer-tokena.

Что нового в версии 1.3.0:
Читать дальше →
Total votes 18: ↑17 and ↓1 +16
Comments 1

Насколько детальной должна быть User Story?

Reading time 4 min
Views 15K

В agile-командах часто возникает спор, насколько детально должна быть проработана User Story, прежде чем ее следует передавать разработчикам.


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


Рассмотрим Agile-подход к решению этой проблемы.

Читать дальше →
Total votes 8: ↑7 and ↓1 +6
Comments 20

Знакомство с FastAPI

Reading time 5 min
Views 175K
Вместо предисловия

В нашей команде бытует хорошая практика фиксировать все изменения, которые отправляются в продакшен в гитхабовских релизах. Однако, не вся наша команда имеет доступ в гитхаб, а о релизах хочется знать всем. Так сложилась традиция релиз из гитхаба дублировать в рабочем чате команды в телеграме. Что хорошо, гитхаб позволяет с помощь маркдауна красиво оформить релиз с разделением на секции и ссылками на задачи, которые отправляются на выкатку. Что плохо, простым copy/paste всю эту красоту в телеграм не перенесёшь и приходится тратить время на довольно нудную работу по повторному оформлению релиза, но уже в телеграме. Ну а посколько программисты народ ленивый, я решил этот процесс автоматизировать.
 


Исходные данные:

  • Гитхаб умеет сообщать обо всём, что происходит в репозитории с помощью вебхуков
  • Вся необходимая для формирования релиза информация содержится в теле запроса, который кидает вебхук
  • Авторизация идёт через подпись запроса секретом, который проставляется в настройках вебхука

Соответственно, задача заключается в том, чтобы поднять HTTP API, который сможет принять POST запрос, проверить подпись, извлечь нужную информацию из тела запроса и передать её дальше по инстанции. Как тут не попробовать FastAPI, на который я давно глаз положил?


Кто такой FastAPI?


FastAPI — это фреймворк для создания лаконичных и довольно быстрых HTTP API-серверов со встроенными валидацией, сериализацией и асинхронностью,
что называется, из коробки. Стоит он на плечах двух других фреймворков: работой с web в FastAPI занимается Starlette, а за валидацию отвечает Pydantic.


Комбайн получился легким, неперегруженным и более, чем достаточным по функционалу.

Читать дальше →
Total votes 18: ↑16 and ↓2 +14
Comments 58

Почём быть Няшей?

Reading time 6 min
Views 13K
Большинство людей стремятся быть идеальными. Нет, не быть, а казаться. Прям красота вокруг, а не мир. Особенно сейчас, когда есть соц.сети.

И сам красавчик, и работает отлично, и с людьми ладит, и развивается постоянно, и книжки умные читает, и на морях отдыхает, и задачи решает в срок, и перспективный, и фильмы правильные смотрит (чтоб рейтинг на Кинопоиске был 7.5, не ниже), и в школе-институте учился отлично, а если не отлично, то я «просто был собой», и патриот, и правила дорожного движения не нарушает, и бабушкам дорогу перейти помогает. Няша.

При этом, если разобраться, то большинство из нас – действительно хорошие люди. У каждого есть не просто хорошие черты или навыки, каждый из нас – реально уникален. Звучит банально и избито, но это факт: у каждого есть дело, которое он делает лучше всех в мире.

Вроде, всё это ежу понятно. Каждый в чем-то хорош, в чем-то – средний, а к чему-то лучше бы не подходил. Ежу-то понятно, а людям не всегда. Люди стараются быть/казаться хорошими во всём.

Стоит оно того? Или не так: а чего оно стоит?
Читать дальше →
Total votes 64: ↑43 and ↓21 +22
Comments 49

Рекуррентные нейронные сети (RNN) с Keras

Reading time 11 min
Views 76K
Перевод руководства по рекуррентным нейросетям с сайта Tensorflow.org. В материале рассматриваются как встроенные возможности Keras/Tensorflow 2.0 по быстрому построению сеток, так и возможности кастомизации слоев и ячеек. Также рассматриваются случаи и ограничения использования ядра CuDNN позволяющего ускорить процесс обучения нейросети.


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

Аналитика для Telegram-ботов, написанных на Python

Reading time 4 min
Views 33K
На данный момент бум на создание телеграмм-ботов начал сходить, но тема их создания не теряет актуальности. Написано множество библиотек для облегчение взаимодействия с Telegram Bot API, но после создания бота я так и не нашёл скрипта(библиотеки) для получения статистики бота. Поэтому решил написать скрипт для всех ботов на Python. Статистику будем получать, логируя действия пользователей и обрабатывая логи в удобный вид.
Читать дальше →
Total votes 8: ↑7 and ↓1 +6
Comments 6

Как NLP-технологии ABBYY научились мониторить новости и управлять рисками

Reading time 8 min
Views 4.6K
Круг задач, которые можно решить с помощью технологий ABBYY, пополнился еще одной интересной возможностью. Мы обучили свой движок работе банковского андеррайтера – человека, который из гигантского потока новостей вылавливает события о контрагентах и оценивает риски.

Сейчас такие системы на базе технологий ABBYY используют уже несколько крупных российских банков. Мы хотим рассказать о нюансах внедрения этого решения – довольно нетривиальных и неожиданных вызовах, с которыми столкнулись наши онтоинженеры.
Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Comments 6

Transformer в картинках

Reading time 14 min
Views 109K

В прошлой статье мы рассматривали механизм внимания (attention) – чрезвычайно распространенный метод в современных моделях глубокого обучения, позволяющий улучшить показатели эффективности приложений нейронного машинного перевода. В данной статье мы рассмотрим Трансформер (Transformer) – модель, которая использует механизм внимания для повышения скорости обучения. Более того, для ряда задач Трансформеры превосходят модель нейронного машинного перевода от Google. Однако самое большое преимущество Трансформеров заключается в их высокой эффективности в условиях параллелизации (parallelization). Даже Google Cloud рекомендует использовать Трансформер в качестве модели при работе на Cloud TPU. Попробуем разобраться, из чего состоит модель и какие функции выполняет.


Впервые модель Трансформера была предложена в статье Attention is All You Need. Реализация на TensorFlow доступна как часть пакета Tensor2Tensor, кроме того, группа NLP-исследователей из Гарварда создали гид-аннотацию статьи с реализацией на PyTorch. В данном же руководстве мы попробуем максимально просто и последовательно изложить основные идеи и понятия, что, надеемся, поможет людям, не обладающим глубоким знанием предметной области, понять данную модель.

Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Comments 4

People meet recommender systems. Factorization

Reading time 11 min
Views 19K

Машинное обучение довольно сильно проникло в нашу обыденную жизнь. Некоторые уже не удивляются, когда им рассказывают про нейронные сети в их смартфонах. Одной из больших областей в этой науке являются рекомендательные системы. Они есть везде: когда вы слушаете музыку, читаете книги, смотрите сериалы или видео. Развитие этой науки происходит в компаниях гигантах, таких как YouTube, Spotify и Netfilx. Конечно же, все научные достижения в этой области публикуются как на известных конференциях NeurIPS или ICML, так и на чуть менее известной RecSys, заточенной на эту тематику. И в этой статье мы поговорим, как развивалась эта наука, какие методы применяются в рекомендациях тогда и сейчас и какая математика за всем этим стоит.


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

Каверзы при собеседовании на project manager'а или прогулка по минному полю чудес

Reading time 7 min
Views 48K
когда у меня спрашивают дичь
Безумие есть неспособность видеть швы, соединяющие бред и явь. Стивен Э. Кинг
Проходя в конце года собеседования на должность проджект менеджера, я повстречал много вопросов, которые могут показаться последним бредом и от лица hr’ов, и от лица квалифицированных специалистов. Конечно, каждая компания чудит по-своему, но цель некоторых вопросов до сих пор остается для меня загадкой.

Проджект менеджер — это специалист, который всегда должен находиться в контексте. Невозможно понять бизнес цели и бекграунд их реализации без вопросов: зачем? почему? как? На собеседовании цель менеджера — дать четкий ответ на поставленный вопрос, войдя в его контекст. Поэтому я всегда стараюсь не обращать внимание на “дичь”, которая присутствует на собеседованиях, и рассуждать даже на самые, казалось бы, дурацкие вопросы.
Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Comments 14

Разработка чрезвычайно быстрых программ на Python

Reading time 7 min
Views 68K
Ненавистники Python всегда говорят, что одной из причин того, что они не хотят использовать этот язык, является то, что Python — это медленно. Но то, что некая программа, независимо от используемого языка программирования, может считаться быстрой или медленной, очень сильно зависит от разработчика, который её написал, от его знаний и от умения создавать оптимизированный и высокопроизводительный код.



Автор статьи, перевод которой мы сегодня публикуем, предлагает доказать то, что те, кто называет Python медленным, неправы. Он хочет рассказать о том, как улучшить производительность Python-программ и сделать их по-настоящему быстрыми.
Читать дальше →
Total votes 90: ↑83 and ↓7 +76
Comments 47

«Правила роста: от джуниора до CTO», конспект вебинара Фёдора Борщёва

Reading time 6 min
Views 13K

Фёдор Борщёв — CTO в маркетплейсе стройматериалов «ГдеМатериал», сооснователь rumetr.com и популяризатор чистоты кода. Пишет в блог, телеграм-канал @pmdaily и в советы о разработке в Бюро Гобрунова.


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


За три часа Фёдор прошёлся по темам:


  • управление проектами;
  • общение с людьми;
  • продукт и бизнес;
  • личные цели.

Читать дальше →
Total votes 26: ↑18 and ↓8 +10
Comments 18

Управляя коллективом, нарушьте все правила

Reading time 23 min
Views 40K

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

Если ответы на эти вопросы вас интересуют, то вам стоит почитать книгу Маркуса Бакингема и Курта Коффмана «Сначала нарушьте все правила: Что лучшие в мире менеджеры делают по-другому». Эта книга могла бы стать для меня настольной, но перечитывать нет времени, поэтому я сделал выжимку, которой и хочу с вами поделиться.
Читать дальше →
Total votes 84: ↑81 and ↓3 +78
Comments 20

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

Reading time 7 min
Views 13K


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


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

Читать дальше →
Total votes 30: ↑30 and ↓0 +30
Comments 20

Письмо начинающему изучать Data Science

Reading time 2 min
Views 62K

Я бы хотел получить такое письмо три года назад, когда только начинал изучать Data Science (DS). Чтобы там были необходимые ссылки на полезные материалы. Статья не претендует на полноту охвата необъятной области DS. Однако для начинающего специалиста будет полезна.


Нейронные сети – это...

Читать дальше →
Total votes 62: ↑45 and ↓17 +28
Comments 21

Тимлид — Таков путь

Reading time 6 min
Views 20K
В преддверии нового года хочется всем тимлидам пожелать расслабиться, отпустить все трудности на работе и готовиться ĸ празднованию с семьей, с друзьями.

Чтобы направить вас на веселую и праздничную ноту, хочу поделиться с вами примерами тернистого пути тимлида с отсылкой ĸ сериалу Мандалорец.

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


Итак, немного о рабочих буднях тимлида:

  1. Берешь на работу джуна, учишь его, лелеешь. Вкладываешь в него силы и время, а через год он расправляет крылья и уходит искать лучшее место с зарплатой в три раза выше.
    Таков путь.
  2. Полгода отĸрыта ваĸансия на разработчиĸа без результата. На собеседования приходят мидлы, просят зарплату больше твоей и говорят, что уже есть офферы на эту сумму в других ĸомпаниях.
    Таков путь.

Читать дальше →
Total votes 74: ↑66 and ↓8 +58
Comments 47

Запуск команд в процессе доставки нового релиза приложения в Kubernetes

Reading time 7 min
Views 6.9K


В своей практике мы часто сталкиваемся с задачей адаптации клиентских приложений для запуска в Kubernetes. При проведении данных работ возникает ряд типовых проблем. Одну из них мы недавно осветили в статье Локальные файлы при переносе приложения в Kubernetes, а о другой, связанной уже с процессами CI/CD, — расскажем в этом материале.

Произвольные команды с Helm и werf


Приложение — это не только бизнес-логика и данные, но и набор произвольных команд, которые необходимо выполнить для успешного обновления. Это могут быть, например, миграции для баз данных, «ожидатели» готовности внешних ресурсов, какие-то перекодировщики или распаковщики, регистраторы во внешних Service Discovery — на разных проектах можно встретить разные задачи.

Что же предлагает Kubernetes для решения таких задач?
Читать дальше →
Total votes 36: ↑36 and ↓0 +36
Comments 10

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity