Как стать автором
Обновить
792.82
Яндекс
Как мы делаем Яндекс
Сначала показывать

Осторожно, Combine! Откуда берутся утечки памяти, потеря эвентов, нестабильность операторов и что с этим всем делать

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

Привет, меня зовут Никита, я iOS‑разработчик в Яндекс Диске. В прошлый раз я рассказывал, как мы начали свой путь в SwiftUI. Теперь настало время рассказать ещё об одном фреймворке, который мы затащили в свой проект параллельно со SwiftUI, — Combine.

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

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

Полезные ссылки

Спидран в реальности: история робота, который быстрее всех в мире собирает кубик Рубика

Время на прочтение15 мин
Количество просмотров27K
Всего голосов 169: ↑168 и ↓1+219
Комментарии72

Математика надёжности. Доклад Яндекса

Уровень сложностиПростой
Время на прочтение18 мин
Количество просмотров13K
Всего голосов 76: ↑72 и ↓4+85
Комментарии28

Как устроен робот-доставщик Яндекса: от восприятия до планирования движения

Время на прочтение15 мин
Количество просмотров16K
Всего голосов 77: ↑74 и ↓3+88
Комментарии45

Как мы внедрили генеративную модель в объявления на Авто.ру. Доклад Яндекса

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

Фронтенд‑разработчики из Авто.ру Максим Алмаев и Дмитрий Размолодин рассказали на внутреннем митапе, как их команда запустила генерацию описаний машин в помощь тем, кто публикует объявления на сервисе. Вы узнаете, зачем разработчики лимитировали нагрузку, как победили проблему галлюцинаций и что помогло убедиться в корректной работе решения.

Переложили выступление ребят в текст для удобства читателей Хабра.

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

Динамические модули в приложениях на Android: опыт использования Dynamic Feature Delivery

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

Размер приложения часто играет важную роль в восприятии его пользователями и принятии ими решения о скачивании. Исследования показывают, что чем меньше размер APK, тем выше вероятность его установки и тем реже оно оказывается в списке на удаление. Конечно же, это важно для команды Яндекс Go, так как наше приложение непрерывно развивается.

Для внедрения одной из SDK, основанной на Flutter, мы прибегли к механизму Dynamic Feature Delivery (DFD). Но оказалось, что в русскоязычном сегменте информации о DFD крайне мало, поэтому я решил поделиться нашим опытом работы с этим механизмом на Android с Google Play Feature Delivery Library.

Сегодня мы подробно разберём, как интегрировать механизм DFD в современную архитектуру Android‑приложения с использованием корутинов, а также протестируем загрузку и установку динамического модуля, использующего Flutter.

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

Балуемся кластеризацией и синхронизацией: как устроена мгновенная загрузка фото в Яндекс Диске

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

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

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

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

Как Яндекс помогает астрофизикам изучать вспышки на красных карликах

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

Красные карлики — наиболее распространённый тип звёзд в нашей Галактике. Это не самые яркие объекты: они меньше нашего Солнца и светят слабее. Однако большинство планетных систем обнаружено именно вокруг звёзд этого класса.

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

В этом году мы запустили совместный проект со специалистами Государственного астрономического института имени П. К. Штернберга МГУ, Факультета Космических Исследований МГУ и Университета Карнеги‑Меллона, которые работают в международной команде SNAD. Центр технологий для общества Yandex Cloud помог учёным выстроить пайплайн машинного обучения для поиска звёздных вспышек с помощью облачного сервиса Yandex DataSphere и в итоге создать самую крупную выборку вспышек на красных карликах по данным наземных наблюдений.

Совместно с исследователями Анастасией Лаврухиной, Борисом Демковым, Константином Маланчевым @hombitи Марией Пружинской расскажем, как именно машинное обучение помогает астрофизикам, и какие новые научные прорывы это может обещать.

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

Как нарисовать квадрат 3 × 3 см на веб-странице*

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

* Не привлекая внимания санитаров

Меня зовут Илья, я занимаюсь фронтенд-разработкой вот уже 10 лет. Представьте, что вам нужно сделать стили для печати документов, а бегать к принтеру с линейкой, чтобы убедиться в корректности фактических размеров отдельных элементов, очень не хочется. Было бы куда проще иметь возможность приложить ту же линейку к экрану. Но размеры элементов на экране почти всегда не соответствуют их физическим размерам при печати. Казалось бы, зачем это вообще может быть кому-то нужно. Но это бывает важно. Например, в типографиях.

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

Что ж, вызов был брошен. И я поставил себе задачу (вы же тоже сами ставите себе задачи?) — нарисовать красивый красный квадратик размером 3 × 3 см. Тому, что у меня в итоге получилось, и посвящён мой необычный рассказ. 

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

VLM в Нейро: как мы создавали мультимодальную нейросеть для поиска по картинкам

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

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

Меня зовут Роман Исаченко, я работаю в команде компьютерного зрения Яндекса. В этой статье я расскажу, что такое визуально‑текстовые мультимодальные модели (Visual Language Models или VLM), как у нас в Яндексе организован процесс их обучения и какая у них архитектура. Вы узнаете, как Нейро работал с картинками и текстами раньше, и что изменилось с появлением VLM.

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

Markdown Editor: WYSIWYG и markup-редактор на базе Gravity UI

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

Привет, Хабр! Меня зовут Сергей Махнаткин, я работаю разработчиком в отделе User Experience в Yandex Cloud. В прошлом году мы писали о нашей дизайн-системе и библиотеке компонентов Gravity UI. С тех пор система не раз обновлялась и обрастала новыми функциями, и сегодня я хочу рассказать о новом инструменте — Markdown Editor, который значительно упрощает процесс работы с документацией.

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

Читать далее
Всего голосов 44: ↑43 и ↓1+61
Комментарии22

Как устроен робот-доставщик Яндекса: от восприятия до планирования движения

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

Уже пять лет по улицам Москвы колесят роботы‑курьеры Яндекса, доставляя нам еду из любимых ресторанов и магазинов быстрее, чем мы успеваем проголодаться. На пути им встречается много препятствий: от безобидной клумбы, которую можно просто объехать, до восторженных детей (и иногда взрослых), от которых порой не так просто уехать.

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

Привет, меня зовут Тая, и я ML‑разработчик в команде восприятия робота‑доставщика. Сегодня я впервые детально расскажу о технологиях, благодаря которым робот‑доставщик Яндекса успешно доставляет заказы. Разберу ключевые компоненты системы, от сенсоров до алгоритмов принятия решений, и объясню, как они взаимодействуют. Из статьи вы узнаете, что происходит «под капотом» нашего робота во время его путешествий по городу.

Готовы погрузиться в мир автономной доставки?

Поехали!
Всего голосов 77: ↑74 и ↓3+88
Комментарии45

Знакомьтесь, «Незнакомое». Как мы сделали новый режим для Моей волны

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

Привет! Меня зовут Савва Степурин, я старший разработчик в группе рекомендательных продуктов в Фантехе Яндекса. Сегодня расскажу вам про то, как мы сделали «Незнакомое» для Моей волны — специальный режим для активного поиска музыкальных открытий.

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

Под катом — техническая эволюция «Незнакомого» от фильтра до отдельного продукта, описание новой модели ранжирования и многое другое.

Читать далее
Всего голосов 53: ↑52 и ↓1+67
Комментарии68

Что делать, чтобы правильные вёдра правильно протекали: иерархический Token Bucket для XDP-программ в eBPF

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

Всем привет! Это Сергей Качеев, старший разработчик в отделе сетевой инфраструктуры Yandex Infrastructure. Наша команда создаёт технологии, на которых работают сервисы Яндекса. В прошлый раз я рассказал целый сетевой детектив о том, как мы искали баг, который убивал DNS‑сервер Unbound. И сегодня я расскажу не менее интересную историю.

Мне на развитие попала XDP eBPF‑программа, которая защищает DNS‑серверы от выхода из строя под слишком большой нагрузкой (другими словами, от DDoS). На ядре 5.4 алгоритм защиты был основан на EWMA‑статистике с вероятностными дропами, которые постоянно контролировались из Control Plane. Это делало eBPF‑программу неавтономной. К тому же если Control Plane падал, то сервер оставался в состоянии последнего удачного обновления eBPF. Это нужно было исправлять — было решено заменить это всё на Token Bucket. Этот момент и будем считать отправной точкой в нашей истории.

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

Встречаем нейроредактор в Браузере, или Как мы учили LLM-модели помогать пользователям с текстами

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

Наверное, каждый знает, насколько порой бывает сложно справиться с написанием и редактированием текста: будь то банальная прокрастинация, «проблема чистого листа» или поиск ошибок и опечаток по всем правилам русского языка. А порой нам просто нужно сделать текст чуть попроще, чтобы случайно не перегрузить его сложными оборотами, или покороче, чтобы он вместился в маленький пост в соцсетях.

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

Читать далее
Всего голосов 23: ↑20 и ↓3+25
Комментарии13

Как эволюционировало машинное зрение автономного транспорта. Доклад Яндекса

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

Всеволод Орлов, руководитель отдела в Яндекс Автономном транспорте, выступил на конференции «Я Железо 2024». Он рассказал, благодаря чему автономный транспорт видит окружающий мир, как его органы зрения менялись и эволюционировали и какой софт позволяет роботам и машинам успешно ездить без человека в кабине.

Переложили выступление в текст для удобства читателей Хабра.

Читать далее
Всего голосов 37: ↑34 и ↓3+42
Комментарии28

Enterprise 128: компьютер, который опоздал на рынок

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

Изрядная часть коллекции Яндекс Музея состоит из популярных экспонатов, которые знакомы многим посетителям: «Денди», PlayStation, Macintosh, ZX Spectrum. Но встречаются и довольно редкие устройства — как правило, не сильно преуспевшие на рынке. Одно из них — Enterprise 128. Это британский компьютер с очень интересной, пусть и не слишком весёлой судьбой.

В 1983 году британский рынок персональных компьютеров был в самом расцвете. Не так давно поступил в продажу легендарный ZX Spectrum, в начале года с гастролями из США приехал любимчик публики Commodore 64, а в 1984-м должен был объявиться Amstrad CPC 464 — как оказалось потом, тоже очень здорово продававшийся компьютер.

В этом контексте анонс очередного британского компьютера, да ещё и такого мощного, как Enterprise, был заметным событием. Судите сами: компьютер должен был работать на популярном процессоре Z80A с частотой 4 МГц (против 3,5 МГц у ZX Spectrum), обладать оперативной памятью 64 или 128 Кб (против 48 у того же Spectrum), а главное — щеголять выдающейся графикой и прекрасным звуком.

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

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

Как мы генерируем GPT-нейросетями миллиарды объявлений на малом количестве GPU. Доклад Яндекса

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

Привет! Меня зовут Ольга Зайкова, в Яндексе я руковожу группой автоматической генерации рекламы. Сегодня расскажу о соединении тяжёлых процессингов и GPU‑вычислений. Обсудим, как мы реализовали высоконагруженный процессинг, который обрабатывает миллиарды товаров и превращает их в объявления, используя тяжёлые модели, такие как YandexGPT, DSSM, CatBoost и другие. И, конечно, не обойду стороной тему проблем с нагрузкой: они возникали почти на каждом шагу.

Читать далее
Всего голосов 27: ↑22 и ↓5+24
Комментарии6

Как мы учили Yandex Code Assistant помогать разработчикам с написанием кода и делать их счастливыми

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

Привет, Хабр! Меня зовут Виктор Плошихин, я руковожу ML‑лабораторией в Yandex Infrastructure, команде, которая создаёт платформу для разработчиков Яндекса. Мой коллега Константин Моксин @kamoksin работает разработчиком‑аналитиком в этой же лаборатории — и мы сами пишем очень много кода. Этой осенью мы запустили Yandex Code Assistant — помощник для работы с кодом — и открыли к нему бесплатный доступ в режиме тестирования на платформе Yandex Cloud. И нам было важно не просто научить нейросеть писать код, но и сделать так, чтобы разработчики были довольны работой этого помощника.

В статье расскажем, для чего мы сделали кодового ассистента, как начинали с нуля, и как замеряли его качество метрикой «Счастье разработчиков».

Читать далее
Всего голосов 43: ↑41 и ↓2+45
Комментарии41

Как в Яндексе 16 человек управляют 1800 переговорками по всему миру

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

Привет! Меня зовут Данила Елагин. Я — технический менеджер проектов и продуктов во внутреннем подразделении ИТ Яндекса. Мы занимаемся не только техподдержкой сотрудников, но и вместе со смежными подразделениями выстраиваем и обслуживаем ИТ‑инфраструктуру.

Некоторое время назад я перешёл в отдел продуктового развития и получил в качестве подшефного продукта внутренний сервис — Паспорт переговорных. Его основная задача — позволить нашей компактной команде ВКС легко и эффективно управлять огромным парком переговорных: от больших залов до кабин, рассчитанных на пару человек. Кстати, помимо переговорок в Room Passport «живут» кабинеты массажистов и врачей, коворкинговые столы и даже спортзалы. Всего получается 1800 помещений в 125 офисах в 12 странах.

Как мы управляемся с таким количеством переговорок? Все ответы под катом.

Читать далее
Всего голосов 27: ↑22 и ↓5+21
Комментарии14

Основы Jetpack Compose: как обеспечить стабильность вашего кода

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

Привет, меня зовут Вера, я Android‑разработчик в Яндекс Диске. Мы в Диске сейчас активно работаем над переездом на Compose с использованием дизайн‑системы. Про стабильность в Compose есть немало статей, однако ошибки продолжают cовершаться, поэтому решила поделиться своим опытом в формате ликбез‑статьи.

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

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

Следим за производительностью SDK. Доклад Яндекса

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

Влад Бардин, iOS‑разработчик в команде Яндекс Маркета, выступил с докладом конференции Яндекс Go Dev Day&Night. Он рассказал, зачем следить за производительностью, когда вы разрабатываете такой фундаментальный SDK, какие метрики стоит собирать и как взаимодействовать с потребителями, а именно с продуктовыми командами, которые используют ваш SDK в своих приложениях.

Переложили выступление Влада в текст для удобства читателей Хабра.

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

Как Яндекс создавал новую end2end-модель генерации коротких видео

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

Приложение Шедеврум начало использовать новую end2end-модель YandexART (Vi). Она позволяет создавать видео по текстовому запросу и учитывает взаимосвязь между кадрами, делая видео более связными, плавными и реалистичными, чем при использовании предыдущей модели. Предыдущее решение было основано на использовании эвристик для добавления движения камеры, где видео создавалось кадр за кадром с применением модели генерации изображений, что приводило к значительным изменениям в содержании каждого кадра. 

В этой статье поделимся нашим опытом разработки первых версий end2end-модели YandexART (Vi): 

— расскажем, почему изначально выбрали работу в пиксельном пространстве;

— опишем методы инженерных оптимизаций, которые помогли в обучении моделей;

— обсудим проблемы, с которыми столкнулись в процессе разработки, и как их решали;

— в завершение расскажем, почему в итоге решили отказаться от пиксельного пространства в пользу латентного и поделимся нашими планами на будущее.

И так как на Хабре не принято вставлять гифки и видео до ката, примеры новой модели вас ждут под ним. 

Посмотреть примеры
Всего голосов 42: ↑41 и ↓1+55
Комментарии3
1
23 ...

Информация

Сайт
www.ya.ru
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия