Pull to refresh
53
0
Александр @netrain

CTO, backend developer

Send message

Еда будущего. Как изменится привычный рацион питания через 10 лет

Reading time7 min
Views16K

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

Читать далее
Total votes 17: ↑9 and ↓8+1
Comments35

Обзор методов создания эмбедингов предложений, Часть1

Reading time18 min
Views11K

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


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


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


Например две фразы 'эпл лучше самсунг' от 'самсунг лучше эпл', должны быть на противоположном конце по одному из значений вектора, но при этом совпадать по другим.


Можно привести аналогию с картинкой ниже. По шкале от кекса до собаки они находятся на разных концах, а по количеству чёрных точек и цвету объекта на одном.


https://cdn-media-1.freecodecamp.org/images/1*bt-E2YcPafjiPbZFDMMmNQ.jpeg

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

Новые архитектуры нейросетей

Reading time10 min
Views50K

Новые архитектуры нейросетей


Network


Предыдущая статья «Нейросети. Куда это все движется»


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


Статья не претендует на полноту охвата и хорошее понимание прочитанных «по диагонали» статей. Автор уверен, что пока писал эту статью, появилось еще много новых архитектур. Например, смотрите здесь: https://paperswithcode.com/area/computer-vision.

Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments4

Сотни тысяч маршрутов в секунду на ядро. Опыт Яндекс.Маршрутизации

Reading time5 min
Views14K


Пару недель назад Даня Тарарухин рассказал на Хабре, как появился наш сервис, Яндекс.Маршрутизация, и как он помогает компаниям с логистикой. Создавая платформу, мы решили несколько интересных проблем, одной из которых и посвящён сегодняшний пост. Я хочу поговорить о самом планировании маршрутов и необходимых для этого ресурсах.
Читать дальше →
Total votes 37: ↑33 and ↓4+29
Comments49

Повышение производительности с использованием uop-кэша на Sandy Bridge+

Reading time15 min
Views6.6K
В современных x86 процессорах Intel конвеер можно разделить на 2 части: Front End и Back End.

Front End отвечает за загрузку кода из памяти и его декодирование в микрооперации.

Back End отвечает за выполнение микроопераций, пришедших от Front End. Поскольку эти микрооперации могут выполняться ядром не по порядку, то Back End также следит за тем, чтобы результат выполнения этих микроопераций строго соответствовал порядку в котором они идут в коде.

В большинстве случаев неэффективное использование Front End'a не оказывает заметного влияние на производительность. Пиковая пропускная способность на большинстве процессоров Intel — 4 микрооперации за такт, поэтому, например, для Memory/L3-bound кода ЦПУ не сможет полностью ее утилизировать.

Про относительно новый Ice Lake
Если верить официальной документации, то пиковая пропускная способность у Ice Lake была увеличена с 4 до 5 микроопераций за такт. К сожалению, доступа к этой модели цпу у меня нет, поэтому убедиться в этом на практике не представляется возможным.

Однако в некоторых случаях различие в производительности может быть достаточно существенно. Под катом — анализ влияния кэша микроопераций на производительность.
Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments4

Ультрафиолетовая стерилизационная коробка для повторного использования одноразовых масок

Reading time9 min
Views29K
В последнее время возник большой интерес к использованию ультрафиолетового излучения в качестве потенциального способа стерилизации защитного оборудования для повторного использования, например, такого как дорогостоящие маски типа «N95».

image

В этой статье я бы хотел описать сборку коробки для обеззараживания предметов ультрафиолетовым излучением и немного проанализировать методы ультрафиолетовой стерилизации.
Соблюдайте технику безопасности
Total votes 29: ↑22 and ↓7+15
Comments114

Конспект по методам прогнозирования

Reading time4 min
Views4.4K

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

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

Артур Хачуян: «Настоящая Big Data в рекламе»

Reading time31 min
Views24K
14 марта 2017 года в лектории BBDO выступил Артур Хачуян, генеральный директор Social Data Hub. Артур рассказал про интеллектуальный мониторинг, построение поведенческих моделей, распознавание фото- и видеоконтента, а также о других инструментах и исследованиях Social Data Hub, которые позволяют таргетировать аудиторию, используя социальные сети и технологии Big Data.

Total votes 37: ↑35 and ↓2+33
Comments10

Как сделать из нейросети журналиста, или «Секреты сокращения текста на Хабре без лишних слов»

Reading time10 min
Views13K
Только не удивляйтесь, но второй заголовок к этому посту сгенерировала нейросеть, а точнее алгоритм саммаризации. А что такое саммаризация?

Это одна из ключевых и классических задач Natural Language Processing (NLP). Она заключается в создании алгоритма, который принимает на вход текст и на выходе выдаёт его сокращённую версию. Причем в ней сохраняется корректная структура (соответствующая нормам языка) и правильно передается основная мысль текста.

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

К моему удивлению, на Хабре оказалось совсем немного статей о саммаризации, поэтому я решил поделиться своими исследованиями и результатами в этом направлении. В этом году я участвовал в соревновательной дорожке на конференции «Диалог» и ставил эксперименты над генераторами заголовков для новостных заметок и для стихов с помощью нейронных сетей. В этом посте я вначале вкратце пробегусь по теоретической части саммаризации, а затем приведу примеры с генерацией заголовков, расскажу, какие трудности возникают у моделей при сокращении текста и как можно эти модели улучшить, чтобы добиться выдачи более качественных заголовков.
Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments9

NLU по-русски: ELMo vs BERT

Reading time9 min
Views9.6K
В данной статье речь пойдет о машинном обучении как части искусственного интеллекта. ИИ во многом подразумевает под собой разговорную составляющую, ведь общение – то, что делает нас людьми. Соответственно, если мы будем делать системы, которые могут нас понимать, отвечать на наши слова, мы в какой-то степени приблизимся к разработке искусственного интеллекта. Однако это все теория на грани философии. Давайте перейдем к практике.


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

Julia NLP. Обрабатываем тексты

Reading time27 min
Views6K


Анализ и обработка текстов на естественном языке является постоянно актуальной задачей, которая решалась, решается и будет решаться всеми доступными способами. На сегодня хотелось бы поговорить о средствах решения для решения этой задачи, именно, на языке Julia. Безусловно, в виду молодости языка, здесь нет столь развитых средств анализа, как, например Stanford CoreNLP, Apache OpenNLP, GATE и пр., как, например, для языка Java. Однако, даже уже разработанные библиотеки, вполне могут использоваться как для решения типовых задач, так и быть рекомендованными в качестве точки входа для студентов, которым интересна область обработки текстов. А синтаксическая простота Julia и её развитые математические средства, позволяют с лёгкостью погрузиться в задачи кластеризации и классификации текстов.

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

RabbitMQ против Kafka: отказоустойчивость и высокая доступность в кластерах

Reading time14 min
Views38K


Отказоустойчивость и высокая доступность — большие темы, так что посвятим RabbitMQ и Kafka отдельные статьи. Данная статья о RabbitMQ, а следующая — о Kafka, в сравнении с RabbitMQ. Статья длинная, так что устраивайтесь поудобнее.

Рассмотрим стратегии отказоустойчивости, согласованности и высокой доступности (HA), а также компромиссы, на которые приходится идти в каждой стратегии. RabbitMQ может работать на кластере узлов — и тогда классифицируется как распределенная система. Когда речь заходит о распределенных системах, мы часто говорим о согласованности и доступности.

Эти понятия описывают, как система ведет себя при сбое. Сбой сетевого соединения, сбой сервера, сбой жесткого диска, временная недоступность сервера из-за сборки мусора, потеря пакетов или замедление сетевого соединения. Все это может привести к потере данных или конфликтам. Оказывается, практически невозможно поднять систему, одновременно и полностью непротиворечивую (без потери данных, без расхождения данных), и доступную (будет принимать операции чтения и записи) для всех вариантов сбоя.
Читать дальше →
Total votes 46: ↑45 and ↓1+44
Comments4

PDDM — Новый Model-Based Reinforcement Learning алгоритм с улучшенным планировщиком

Reading time7 min
Views7.3K


Обучение с подкреплением (Reinforcement Learning) делится на два больших класса: Model-Free и Model-Based. В первом случае действия оптимизируются напрямую по сигналу награды, а во втором нейросеть является только моделью реальности, а оптимальные действия выбираются с помощью внешнего планировщика. У каждого подхода есть свои достоинства и недостатки.


Разработчики из Berkeley и Google Brain представили Model-Based алгоритм PDDM с улучшенным планировщиком, позволяющий эффективно обучаться сложным движениям с большим числом степеней свободы на небольшом числе примеров. Чтобы научиться вращать мячи в роботизированной руке с реалистичными суставами пальцев с 24 степенями свободы, потребовалось всего 4 часа практики на реальном физическом роботе.

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

Как мы делали свой движок Workflow

Reading time9 min
Views7.3K
Мы в компании DIRECTUM занимаемся разработкой ECM-системы DirectumRX. Основным элементом модуля Workflow для ECM-системы является движок. Он отвечает за изменение состояния экземпляра процесса (инстанса) по ходу жизненного цикла. Перед тем, как начать разрабатывать модуль Workflow, стоит решить: взять готовый движок или написать свой. Изначально мы пошли по первому варианту. Мы взяли движок Windows Workflow Foundation (WF), и в целом он нас устраивал. Но со временем мы поняли, что нам нужен свой движок. Как это случилось, и что из этого вышло, расскажу ниже.
Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments8

Лучшие продукты отталкиваются от настоящих проблем: Intercom про Jobs-to-be-Done. Часть 2

Reading time14 min
Views7.2K


Вторая часть перевода книги Intercom про Jobs-to-be-Done — это продолжение повествования о том, как концепция Jobs-to-be-Done меняет принципы создания и улучшения IT-продукта. Главы с третьей по шестую.

Первая часть
Третья часть
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments0

Циклическая генерация подземелий на примере Unexplored

Reading time2 min
Views8.5K
image

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

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

В dungeon crawler'е Unexplored использован фундаментально иной подход (см. рисунок 1). Вместо линейных путей в качестве самой базовой структуры он изначально использует циклы. Разница оказывается поразительной: при старом подходе хорошие и интересные циклы могли возникать случайно, а в Unexplored они являются запланированной особенностью результата работы генератора.
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments0

Суд США полностью легализовал скрапинг сайтов и запретил ему технически препятствовать

Reading time3 min
Views70K
Вчера Апелляционный суд 9-го округа США принял решение (pdf), что скрапинг публичных сайтов не противоречит закону CFAA (Computer Fraud and Abuse Act).

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

Сейчас многие владельцы сайтов пытаются поставить технические препоны конкурентам, которые полностью копируют их информацию, не защищённую копирайтом. Например, цены на билеты, товарные лоты, открытые профили пользователей и т. д. Некоторые сайты считают эту информацию «своей», а скрапинг расценивают как «воровство». Юридически это не так, что теперь закреплено официально в США.
Читать дальше →
Total votes 70: ↑69 and ↓1+68
Comments403

Математическое расследование, как подделывали выборы губернатора в Приморье 16 сентября 2018 года

Reading time19 min
Views97K
Во втором туре выборов губернатора Приморского края 16 сентября 2018 года встречались действующий и.о. губернатора Андрей Тарасенко и занявший второе место в первом туре коммунист Андрей Ищенко. В ходе подсчета голосов на сайте ЦИК РФ отображалась информационная панель с растущим числом обработанных протоколов и голосов за кандидатов.

Публикация подробных данных по участкам на официальном сайте ЦИК www.izbirkom.ru замерла после ввода 1484 (95.74%) протоколов и не возобновлялась до самого конца. Поэтому когда в трансляции лидер голосования вдруг поменялся с Ищенко на Тарасенко, было неясно, как именно это могло произойти. В СМИ просто писали «после обработки 99,03% протоколов лидер сменился».

Однако, располагая промежуточными суммарными данными из информационной панели, с помощью простой математики и программирования можно подробно установить, что именно происходило с протоколами в ночь после выборов. Используем Python, Colab от Google и Z3 theorem prover от Microsoft Research. Ну и добьём всё обычной дедукцией.


И что же там можно расследовать?
Total votes 394: ↑388 and ↓6+382
Comments392

Как мы автоматизировали большой интернет-магазин и стали сопоставлять товары автоматически

Reading time21 min
Views23K
image

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

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

  • Работа с поставщиками. Чтобы продать что-то ненужное, нужно сначала купить что-то ненужное.
  • Управление каталогом. У кого-то узкая специализация, а кто-то продает сотни тысяч разных товаров.
  • Управление розничными ценами. Тут придется учесть и цены поставщиков, и цены конкурентов, и доступные финансовые инструменты.
  • Работа со складом. В принципе, можно и не иметь собственного склада, а забирать товар со складов партнеров, но так или иначе вопрос стоит.
  • Маркетинг. Тут наполнение сайта контентом, размещение на площадках, реклама (онлайн и офлайн), акции и много чего еще.
  • Прием и обработка заказов. Колл-центр, корзина на сайте, заказы через мессенджеры, заказы через площадки и маркетплейсы.
  • Доставка.
  • Бухгалтерия и прочие внутренние системы.

Магазин, о котором мы будем говорить, не имеет узкой специализации, а предлагает кучу всего от косметики до мини-трактора. Я расскажу, как у нас устроена работа с поставщиками, мониторинг конкурентов, управление каталогом и формирование цен (оптовых и розничных), работа с оптовыми клиентами. Немного затронем тему склада.

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

Так что рассматриваем отдельную систему, более-менее универсальную, с которой интегрирована остальная инфраструктура компании.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments33

Как создать приложение для сферы финансов: 5 API в помощь разработчику

Reading time2 min
Views14K


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

Для нового топика я подобрал пять API различных финансовых сервисов, которые позволяют как получать самые разные данные, так и непосредственно вести торговлю на бирже с помощью написанных роботов.
Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments1
1
23 ...

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity