Как стать автором
Обновить
0
@Kirill_manankovread⁠-⁠only

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

Отправить сообщение

Обратный поиск по федеративному графу Netflix

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров1.1K

В Netflix было сделано много нового со времён выхода предыдущих материалов, посвящённых роли тех, кто отвечает за направление Content Engineering, в реализации поиска по нашему федеративному графу (federated graph). А именно, в первой статье мы идентифицировали проблему и рассказали об использовании инфраструктуры индексирования данных, а во второй мы углубились в вопрос о том, как мы пользуемся очередями. Мы дали доступ к Studio Search для всех инженеров компании, а не только для тех, кто занимается направлением Content Engineering, и переименовали этот проект в Graph Search. С Graph Search интегрировано более 100 приложений. В рамках этой системы поддерживается примерно 50 индексов. Мы продолжаем расширять её функционал. Как было обещано в предыдущем материале, здесь мы расскажем о том, как мы, объединив усилия с одной из команд, отвечающих за Studio Engineering, создавали обратный поиск (reverse search). Обратный поиск переворачивает с ног на голову стандартный подход к выполнению запросов: вместо того, чтобы искать документы, которые соответствуют запросу, он направлен на поиск запросов, соответствующих документу.

Читать далее
Всего голосов 4: ↑4 и ↓0+11
Комментарии0

Пишем и тестируем миграции БД с Alembic. Доклад Яндекса

Время на прочтение20 мин
Количество просмотров87K
Приложения на бэкенде могут работать с самыми разными базами данных: PostgreSQL, SQLite, MariaDB и другими. Перед разработчиками встает задача реализовать возможность легко и безопасно изменять состояние БД. Менять нужно как структуру базы, так и сами данные от одной версии приложения к другой.


В докладе я поделился опытом использования Alembic — хорошо себя зарекомендовавшего инструмента для управления миграциями. Почему стоит выбрать именно Alembic, как с его помощью подготовить миграции, как их запускать (автоматически или вручную), как решить проблемы необратимых изменений, зачем тестировать миграции, какие проблемы могут выявить тесты и как их реализовать — на все эти вопросы я постарался ответить. Заодно поделился несколькими лайфхаками, которые сделают работу с миграциями в Alembic легкой и приятной.
Читать дальше →
Всего голосов 8: ↑5 и ↓3+7
Комментарии14

ElasticSearch — как мы делали свою речевую аналитику

Время на прочтение10 мин
Количество просмотров12K

Привет! Меня зовут Аркадий. Последние пару лет я в основном занимаюсь развитием поиска по тексту в команде TQM (Tinkoff Quality Management) в банке Тинькофф. Наш продукт — это речевая аналитика по звонкам, чатам и другим активностям, контроль качества, анализ и прочее. Более подробно о продукте можно прочитать на странице бизнес-решений. Примерный объем нашего индекса в проде — 16 Тб, около 450 млрд сущностей.

Каждый раз, когда встает вопрос о полнотекстовом поиске, команда оказывается перед выбором: а надо ли? Уже есть полнотекстовый поиск в Postgres, а тут придется заказывать серверы, строить кластер. Но чем чаще пользователю требуется что-то найти, тем чаще приходится смотреть в сторону специализированных поисковых движков.

Как пишут сами разработчики Elasticsearch, он нужен именно «для поиска, вы же знаете» (you know, for search) и не сможет заменить полноценное хранилище данных. Зато достаточно быстрый, очень надежный и хорошо горизонтально масштабируется (при наших объемах). 

Мы в TQM используем Elastic потому, что он гибкий, широко известный, имеет удобный и простой синтаксис, множество библиотек для работы как на Python, так и на C# (NEST). Хорошо скейлится под наши объемы (1—30 Тб). Kibana также очень удобна, мы используем ее для мониторинга, консоль Kibana применяем для запросов. А еще по сравнению с тем же Sphinx, Elastic удобно масштабировать (просто добавляем шарды, ноды, и он сам распределяет данные по ним). В случае с тем же Sphinx нам пришлось бы писать этот распределенный поиск самим, и не факт, что у нас получилось бы хорошо с первого раза. 

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии9

ElasticSearch и поиск наоборот. Percolate API

Время на прочтение4 мин
Количество просмотров26K

Вопрос умной категоризации чего-либо встаёт остро при разработке очень многих сайтов. Конечно, всегда можно отдать это на заполнение человеку и результат поначалу будет куда лучше машинного, но, что если категоризировать нужно в реальном времени сотни и тысячи «товаров».
Придется отдать это на откуп машине. Тут вариантов не так много, а написание собственного ИИ для 99.9% задач пустая трата времени.

Заинтересовавшимся как это решить с помощью ElasticSearch прошу под кат.
Читать дальше →
Всего голосов 31: ↑30 и ↓1+29
Комментарии11

Создание 3D-сетки из изображения с помощью Python

Время на прочтение7 мин
Количество просмотров13K


Несколько лет назад генерация 3D-сетки из единственного двумерного изображения была сложной задачей. Но сегодня благодаря продвижению глубокого обучения разработано множество монокулярных моделей оценки глубины, дающих точную оценку карты глубины изображения. С помощью этой карты, выполнив реконструкцию поверхности, можно создать сетку. Подробности — к старту нашего курса по Fullstack-разработке на Python.

Читать дальше →
Всего голосов 11: ↑9 и ↓2+9
Комментарии6

LLM-чатбот в основе консьерж-сервиса

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров1.9K

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

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

Читать далее
Всего голосов 12: ↑9 и ↓3+9
Комментарии0

Entity resolution: как обстоят дела и какие open-source инструменты доступны

Время на прочтение13 мин
Количество просмотров2K

Всем привет!

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

Читать далее
Всего голосов 4: ↑3 и ↓1+5
Комментарии0

Intel Loihi 2. Нейроморфный процессор, следующее поколение

Время на прочтение4 мин
Количество просмотров12K


Спустя несколько десятилетий продвижения вглубь тайн вычислений мы вынуждены констатировать: компьютерные системы по-прежнему не могут соревноваться с биологическими нейронными цепями по эффективности мыслительного процесса. Но нам хочется думать, что когда-нибудь кремниевый мозг сравняется по своим возможностям с настоящим, и мы работаем в этом направлении. В авангарде прорыва — нейроморфные чипы, как, например, представленный совсем недавно Intel Loihi 2. В активе у новинки — ряд значительно улучшенных основных характеристик (скажем, количество нейронов на чип выросло почти в 10 раз по сравнению с Loihi 1), а также новый фреймворк Lava для удобства использования.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии2

RnD versus. Продуктовая разработка

Время на прочтение15 мин
Количество просмотров7.4K

Привет, Хабр! На связи программный комитет FrontendConf. Расскажем, как мы составляем программу нашей конференции и боремся за её актуальность — проводим исследования и общаемся с аудиторией.

FrontendConf = доклады + общение + опыт

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

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии7

Apache Airflow в связке с Kubernetes

Уровень сложностиСложный
Время на прочтение5 мин
Количество просмотров9.2K

Привет! Меня зовут Алексей Карпов, я DevOps-инженер (MLOps) отдела ML разработки в OKKO. Хочу поделиться опытом в работе с Apache Airflow в связке с Kubernetes. Расскажу, как установить Airflow в Kubernetes, настроить автоматическую синхронизацию DAG'ов с удалённым репозиторием, а также как отладить его работу. Всё это — на примере запуска простейшего DAGа. 

Читать далее
Всего голосов 10: ↑7 и ↓3+4
Комментарии2

Когда картинка дороже слов

Время на прочтение8 мин
Количество просмотров4.8K

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

В предыдущих постах WIDeText: A Multimodal Deep Learning Framework, Categorizing Listing Photos at Airbnb и Amenity Detection and Beyond — New Frontiers of Computer Vision at Airbnb мы рассказали о том, как используем компьютерное зрение для категоризации помещений и выявления удобств, чтобы сопоставлять фотографии предложений с таксономией дискретных концепций. В этом посте мы расскажем о том, как Airbnb использует эстетику и эмбеддинги изображений для оптимизации различных поверхностей продукта, включая содержимое рекламных объявлений, презентации и рекомендаций позиций.
Читать дальше →
Всего голосов 27: ↑23 и ↓4+33
Комментарии7

NLP. Проект по распознаванию адресов. Natasha, Pullenti, Stanza

Время на прочтение4 мин
Количество просмотров8.9K

Многие аналитики данных сталкиваются с задачей распознавания адресов, напечатанных на документах. Для решения этой задачи я обратился к инструментам выявления сущностей в тексте с помощью NLP: NLTK, Spacy, Flair, DeepPavlov, Polyglot, AdaptNLP, Stanza, AllenNLP, HanLP, PullEnti, Natasha и тд. Глаза начали разбегаться. И что же делать? Конечно, выбрать самое лучшее. Я принял решение выбрать несколько самых популярных библиотек, поддерживающих русский язык, и сравнить, какую же из них использовать? Natasha, Stanza и PullEnti привлекли мое внимание. Далее пойдет речь именно об этих библиотеках.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии1

Как построить свою систему поиска похожих изображений

Время на прочтение10 мин
Количество просмотров29K

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

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

Читать далее
Всего голосов 35: ↑34 и ↓1+49
Комментарии33

Как мы сделали матчер: тайтлы, БЕРТы и две сестры

Время на прочтение10 мин
Количество просмотров7.2K

Всем привет! Меня зовут Андрей Русланцев, я — Senior Machine Learning Engineer в команде матчера в AliExpress Россия. Я расскажу о том, как мы сделали матчер: какие проблемы нам пришлось решить, какие модели мы использовали, как выглядит наш текущий пайплайн, и почему наш матчинг действительно супер.

Читать далее
Всего голосов 18: ↑18 и ↓0+18
Комментарии17

LangСhain: создаем свой AI в несколько строк

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров51K

В этой данной статье познакомимся с LangChain, перспективным фреймворком для работы с языковыми моделями. С его помощью можно создать свой собственный аналог ChatGPT всего в несколько строк кода. Благодаря модульной структуре, LangChain позволяет быстро и легко разрабатывать AI приложения различной сложности.

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии8

Трансферное обучение с Т5

Время на прочтение7 мин
Количество просмотров4.8K

За последние несколько лет трансферное обучение дало толчок новой волне state-of-the-art результатов в обработке естественного языка (NLP). Эффективность трансферного обучения заключается в предварительном обучении модели на большом доступном неразмеченном корпусе текстов для одной из задач самообучения (self-supervised learning): например, языкового моделирования или заполнения пропусков в тексте. Затем модель может быть дообучена на меньших наборах данных и зачастую показывает (значительно) лучшие результаты, чем в случае обучения на одних только размеченных данных. Об успехах трансферного обучения стало известно еще в 2018 году, когда были представлены такие модели, как GPT, ULMFiT, ELMo, BERT, а в 2019 году успешность такого подхода стала еще более очевидна с разработкой новых моделей вроде XLNet, RoBERTa, ALBERT, Reformer и MT-DNN. Скорость, с которой эта сфера развивается, не позволяет, однако, с уверенностью сказать, какие из разработок оказали наибольшее влияние и насколько эффективно их можно комбинировать.

Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии1

Fine-Tune модели основанной на трансформерах (Rubert) для классификации текстов

Время на прочтение7 мин
Количество просмотров15K

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

А также сравню по точности два подхода - Fine-Tune Bert и получение предобученных эмбеддингов и их классификация с использованием полносвязной нейронной сети.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии10

Что я бы хотел знать про ML System Design раньше

Время на прочтение6 мин
Количество просмотров22K

Около года назад я начал проходить собеседования в разные компании на позицию Machine Learning Engineer. Одним из этапов в каждой компании было проектирование ML системы. В данной статье я делюсь опытом и ресурсами, которые помогли мне пройти собеседования. В том числе в команду MLE Ленты, в которой сейчас тружусь.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии8

Обзор на статью Visual Transformers — новый подход к тренировке моделей компьютерного зрения на основе visual tokens

Время на прочтение4 мин
Количество просмотров20K
Эта работа интересна тем, что авторы в ней предлагают новый подход к тренировке моделей на изображениях — использовать не только пиксели и свертки, но ещё и представлять изображения в виде визуальных токенов и тренировать на них трансформеры. По сравнению с использованием просто архитектуры ResNet предложенный подход уменьшает MAC (multiply and accumulate operations) в 6,9 раз и увеличивает топ-1 точность на 4,53 пункта на задаче классификации ImageNet.

image
Читать дальше →
Всего голосов 15: ↑14 и ↓1+16
Комментарии2

Инструменты для разработчиков ПО: открытые фреймворки и библиотеки машинного обучения

Время на прочтение3 мин
Количество просмотров9.8K
Продолжаем нашу серию материалов, посвященных открытым инструментам для разработчиков. Сегодня рассказываем о фреймворках и библиотеках для МО — Transformers, Accord.NET и MLflow.

Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии1
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность