В Netflix было сделано много нового со времён выхода предыдущих материалов, посвящённых роли тех, кто отвечает за направление Content Engineering, в реализации поиска по нашему федеративному графу (federated graph). А именно, в первой статье мы идентифицировали проблему и рассказали об использовании инфраструктуры индексирования данных, а во второй мы углубились в вопрос о том, как мы пользуемся очередями. Мы дали доступ к Studio Search для всех инженеров компании, а не только для тех, кто занимается направлением Content Engineering, и переименовали этот проект в Graph Search. С Graph Search интегрировано более 100 приложений. В рамках этой системы поддерживается примерно 50 индексов. Мы продолжаем расширять её функционал. Как было обещано в предыдущем материале, здесь мы расскажем о том, как мы, объединив усилия с одной из команд, отвечающих за Studio Engineering, создавали обратный поиск (reverse search). Обратный поиск переворачивает с ног на голову стандартный подход к выполнению запросов: вместо того, чтобы искать документы, которые соответствуют запросу, он направлен на поиск запросов, соответствующих документу.
Пользователь
Пишем и тестируем миграции БД с Alembic. Доклад Яндекса
В докладе я поделился опытом использования Alembic — хорошо себя зарекомендовавшего инструмента для управления миграциями. Почему стоит выбрать именно Alembic, как с его помощью подготовить миграции, как их запускать (автоматически или вручную), как решить проблемы необратимых изменений, зачем тестировать миграции, какие проблемы могут выявить тесты и как их реализовать — на все эти вопросы я постарался ответить. Заодно поделился несколькими лайфхаками, которые сделают работу с миграциями в Alembic легкой и приятной.
ElasticSearch — как мы делали свою речевую аналитику
Привет! Меня зовут Аркадий. Последние пару лет я в основном занимаюсь развитием поиска по тексту в команде TQM (Tinkoff Quality Management) в банке Тинькофф. Наш продукт — это речевая аналитика по звонкам, чатам и другим активностям, контроль качества, анализ и прочее. Более подробно о продукте можно прочитать на странице бизнес-решений. Примерный объем нашего индекса в проде — 16 Тб, около 450 млрд сущностей.
Каждый раз, когда встает вопрос о полнотекстовом поиске, команда оказывается перед выбором: а надо ли? Уже есть полнотекстовый поиск в Postgres, а тут придется заказывать серверы, строить кластер. Но чем чаще пользователю требуется что-то найти, тем чаще приходится смотреть в сторону специализированных поисковых движков.
Как пишут сами разработчики Elasticsearch, он нужен именно «для поиска, вы же знаете» (you know, for search) и не сможет заменить полноценное хранилище данных. Зато достаточно быстрый, очень надежный и хорошо горизонтально масштабируется (при наших объемах).
Мы в TQM используем Elastic потому, что он гибкий, широко известный, имеет удобный и простой синтаксис, множество библиотек для работы как на Python, так и на C# (NEST). Хорошо скейлится под наши объемы (1—30 Тб). Kibana также очень удобна, мы используем ее для мониторинга, консоль Kibana применяем для запросов. А еще по сравнению с тем же Sphinx, Elastic удобно масштабировать (просто добавляем шарды, ноды, и он сам распределяет данные по ним). В случае с тем же Sphinx нам пришлось бы писать этот распределенный поиск самим, и не факт, что у нас получилось бы хорошо с первого раза.
ElasticSearch и поиск наоборот. Percolate API
Вопрос умной категоризации чего-либо встаёт остро при разработке очень многих сайтов. Конечно, всегда можно отдать это на заполнение человеку и результат поначалу будет куда лучше машинного, но, что если категоризировать нужно в реальном времени сотни и тысячи «товаров».
Придется отдать это на откуп машине. Тут вариантов не так много, а написание собственного ИИ для 99.9% задач пустая трата времени.
Заинтересовавшимся как это решить с помощью ElasticSearch прошу под кат.
Создание 3D-сетки из изображения с помощью Python
Несколько лет назад генерация 3D-сетки из единственного двумерного изображения была сложной задачей. Но сегодня благодаря продвижению глубокого обучения разработано множество монокулярных моделей оценки глубины, дающих точную оценку карты глубины изображения. С помощью этой карты, выполнив реконструкцию поверхности, можно создать сетку. Подробности — к старту нашего курса по Fullstack-разработке на Python.
LLM-чатбот в основе консьерж-сервиса
Когда мы с командой брались за создание MVP нашего консьерж-сервиса для букинга отелей, казалось, что это область, в которой давно не осталось нерешенных, и при этом значимых проблем, суть лишь в том, чтобы сделать сам процесс гибче и удобнее. Но на практике, разумеется, все оказалось несколько сложнее.
Использование стандартного набора инструментов в сочетании с новыми коммерческими API открыло перед нами не только новые горизонты, но и обеспечило массу подводных камней, вполне традиционных для такого рода технологических стартапов. О том, как мы с ними справлялись, мы и решили написать эту небольшую статью. Надеемся, что наши уроки помогут вам избежать наших ошибок и ускорить разработку вашего прототипа.
Entity resolution: как обстоят дела и какие open-source инструменты доступны
Всем привет!
Мы хотим рассказать немного об entity resolution как об академической дисциплине, о доступных инструментах для решения этой задачи, и о нашем опыте с одним из инструментов.
Intel Loihi 2. Нейроморфный процессор, следующее поколение
Спустя несколько десятилетий продвижения вглубь тайн вычислений мы вынуждены констатировать: компьютерные системы по-прежнему не могут соревноваться с биологическими нейронными цепями по эффективности мыслительного процесса. Но нам хочется думать, что когда-нибудь кремниевый мозг сравняется по своим возможностям с настоящим, и мы работаем в этом направлении. В авангарде прорыва — нейроморфные чипы, как, например, представленный совсем недавно Intel Loihi 2. В активе у новинки — ряд значительно улучшенных основных характеристик (скажем, количество нейронов на чип выросло почти в 10 раз по сравнению с Loihi 1), а также новый фреймворк Lava для удобства использования.
RnD versus. Продуктовая разработка
Привет, Хабр! На связи программный комитет FrontendConf. Расскажем, как мы составляем программу нашей конференции и боремся за её актуальность — проводим исследования и общаемся с аудиторией.
FrontendConf = доклады + общение + опыт
Саму конференцию можно сравнить с продуктом, а участников — с пользователями, которые с его помощью достигают своих целей. Конференции — это не только доклады, но и получение опыта, общение с другими разработчиками, возможность завести новые знакомства, пообщаться с сотрудниками крупных компаний. При этом доклады остаются центральной частью мероприятия, причиной посетить именно эту конференцию и источником новых знаний.
Apache Airflow в связке с Kubernetes
Привет! Меня зовут Алексей Карпов, я DevOps-инженер (MLOps) отдела ML разработки в OKKO. Хочу поделиться опытом в работе с Apache Airflow в связке с Kubernetes. Расскажу, как установить Airflow в Kubernetes, настроить автоматическую синхронизацию DAG'ов с удалённым репозиторием, а также как отладить его работу. Всё это — на примере запуска простейшего DAGа.
Когда картинка дороже слов
Владельцы жилья оставляют на сайте 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 использует эстетику и эмбеддинги изображений для оптимизации различных поверхностей продукта, включая содержимое рекламных объявлений, презентации и рекомендаций позиций.
NLP. Проект по распознаванию адресов. Natasha, Pullenti, Stanza
Многие аналитики данных сталкиваются с задачей распознавания адресов, напечатанных на документах. Для решения этой задачи я обратился к инструментам выявления сущностей в тексте с помощью NLP: NLTK, Spacy, Flair, DeepPavlov, Polyglot, AdaptNLP, Stanza, AllenNLP, HanLP, PullEnti, Natasha и тд. Глаза начали разбегаться. И что же делать? Конечно, выбрать самое лучшее. Я принял решение выбрать несколько самых популярных библиотек, поддерживающих русский язык, и сравнить, какую же из них использовать? Natasha, Stanza и PullEnti привлекли мое внимание. Далее пойдет речь именно об этих библиотеках.
Как построить свою систему поиска похожих изображений
В интернете есть много информации о поиске похожих изображений и дубликатов. Но как построить свою систему? Какие современные подходы применять, на каких данных обучать, как валидировать качество поиска и куда смотреть при выводе в production?
В этой статье я собрал все необходимые компоненты поисковой системы на изображениях в одном месте, разбавив контент современными подходами.
Как мы сделали матчер: тайтлы, БЕРТы и две сестры
Всем привет! Меня зовут Андрей Русланцев, я — Senior Machine Learning Engineer в команде матчера в AliExpress Россия. Я расскажу о том, как мы сделали матчер: какие проблемы нам пришлось решить, какие модели мы использовали, как выглядит наш текущий пайплайн, и почему наш матчинг действительно супер.
LangСhain: создаем свой AI в несколько строк
В этой данной статье познакомимся с LangChain, перспективным фреймворком для работы с языковыми моделями. С его помощью можно создать свой собственный аналог ChatGPT всего в несколько строк кода. Благодаря модульной структуре, LangChain позволяет быстро и легко разрабатывать AI приложения различной сложности.
Трансферное обучение с Т5
За последние несколько лет трансферное обучение дало толчок новой волне state-of-the-art результатов в обработке естественного языка (NLP). Эффективность трансферного обучения заключается в предварительном обучении модели на большом доступном неразмеченном корпусе текстов для одной из задач самообучения (self-supervised learning): например, языкового моделирования или заполнения пропусков в тексте. Затем модель может быть дообучена на меньших наборах данных и зачастую показывает (значительно) лучшие результаты, чем в случае обучения на одних только размеченных данных. Об успехах трансферного обучения стало известно еще в 2018 году, когда были представлены такие модели, как GPT, ULMFiT, ELMo, BERT, а в 2019 году успешность такого подхода стала еще более очевидна с разработкой новых моделей вроде XLNet, RoBERTa, ALBERT, Reformer и MT-DNN. Скорость, с которой эта сфера развивается, не позволяет, однако, с уверенностью сказать, какие из разработок оказали наибольшее влияние и насколько эффективно их можно комбинировать.
Fine-Tune модели основанной на трансформерах (Rubert) для классификации текстов
Задача классификации текста уже давно является устоявшейся во многих компаниях. Она используется для определения настроения клиентов, разделение документов на заранее известные темы, детекции фейковых новостей и т.д. Сегодня я представлю state of the art подход для решения задачи бинарной классификации, а именно детекция сообщений, в которой присутствует жалоба на сотрудника.
А также сравню по точности два подхода - Fine-Tune Bert и получение предобученных эмбеддингов и их классификация с использованием полносвязной нейронной сети.
Что я бы хотел знать про ML System Design раньше
Около года назад я начал проходить собеседования в разные компании на позицию Machine Learning Engineer. Одним из этапов в каждой компании было проектирование ML системы. В данной статье я делюсь опытом и ресурсами, которые помогли мне пройти собеседования. В том числе в команду MLE Ленты, в которой сейчас тружусь.
Обзор на статью Visual Transformers — новый подход к тренировке моделей компьютерного зрения на основе visual tokens
Инструменты для разработчиков ПО: открытые фреймворки и библиотеки машинного обучения
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность