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

Как маленькая нейроязыковая модель в Клавиатуре победила серверные подсказки

Время на прочтение 9 мин
Количество просмотров 4.9K
Блог компании Яндекс Разработка мобильных приложений *Алгоритмы *Машинное обучение *Искусственный интеллект

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

Казалось бы, что между ними нет ничего общего, но это не так. Абсолютно все эти компоненты объединяет одно — языковая модель. Чем выше её качество, тем выше скорость ввода, а значит, и пользователь будет чуточку счастливее.

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

Читать далее
Всего голосов 37: ↑36 и ↓1 +35
Комментарии 26

Как мы научили Алису реагировать на быстрые команды

Время на прочтение 9 мин
Количество просмотров 9.7K
Блог компании Яндекс Машинное обучение *Искусственный интеллект Звук Голосовые интерфейсы *

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

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

Дальше!
Всего голосов 31: ↑31 и ↓0 +31
Комментарии 46

Три движка для одной Лавки: как эволюционировала система поиска в сервисе

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 2.7K
Блог компании Яндекс Поисковые технологии *Программирование *Машинное обучение *Распределённые системы *
Кейс

Лавка — сервис быстрой доставки продуктов. Один из важнейших сценариев использования сервиса для покупателя — это поиск. Примерно 30% товаров добавляются в корзину именно из его результатов. А ещё, если в пользовательской сессии был успешный запрос в поиск, вероятность совершения заказа вырастает на 10–15%. То есть, если клиенту нужен конкретный продукт и он его быстро находит через поиск, вероятность совершения заказа становится выше.

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

Найти товары!
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 0

Сказ о том, как два сервера изменили судьбу сетевой команды

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 16K
Блог компании Яндекс Блог компании Yandex Cloud & Yandex Infrastructure Системное администрирование *IT-инфраструктура *Сетевые технологии *
Кейс

Привет. Я Марат Сибгатулин — сетевик в Яндексе, работаю в команде Yandex Infrastructure. И сегодня я расскажу вам одну поучительную историю.

Жили были два сервера. Да и не сервера вовсе, а виртуальные машины. Жили не тужили, добро наживали, скриптами разными обрастали. Три года они трудились на славу облака да во имя автоматизации. Пока не наступили чёрные дни для RAID-массива на гипервизоре.

Это присказка, не сказка. Сказка впереди
Всего голосов 57: ↑56 и ↓1 +55
Комментарии 23

Если ваш фронтендер перестал бояться IE6, покажите ему SmartTV

Время на прочтение 7 мин
Количество просмотров 20K
Блог компании Яндекс Разработка веб-сайтов *CSS *JavaScript *Разработка под Tizen *

В декабре 2021 года под новогодние праздники в приложении Кинопоиска для SmartTV появился раздел с Яндекс Музыкой. Он позволил пользователям на телевизорах открывать новые для себя треки в Моей волне, включать популярные подборки и слушать собственную коллекцию на телевизорах.

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

Меня зовут Лена и я фронтенд-разработчик Яндекс Музыки. В этой статье я расскажу про особенности работы SmartTV и разработки под них на примере свежей фичи, которую мы назвали Время клипов. Теперь в приложении вы можете посмотреть клипы любимых артистов и открывать для себя новых исполнителей, которые подходят вам по настроению.

Под катом обсудим ключевые отличия работы фронтенда над вебом и SmartTV, поговорим про оптимизацию и вёрстку и посмотрим на фотографии множества пультов (без пакетиков).

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

Lock записей и шквал «пятисоток»: какие шишки мы набили на миграциях в Django и как вам этого избежать

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 3K
Блог компании Яндекс Блог компании Яндекс Практикум Python *PostgreSQL *Django *
Ретроспектива

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

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

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

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

«Мышеловка». Как менялись компьютерные мыши и зачем я собрал 170 из них в коллекцию

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 17K
Блог компании Яндекс Компьютерное железо История IT Старое железо Периферия
Ретроспектива


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

Привет, я Михаил Павлов. Я уже десять лет коллекционирую компьютерные мыши и трекболы. В этом посте я коротко напомню, какой путь они прошли, и покажу свою коллекцию. Посмотреть на неё вживую можно в Яндекс Музее на выставке «Мышеловка», которая в последние месяцы гастролировала между Москвой и Санкт-Петербургом. В ближайшие пару дней (до 12 июля включительно) её ещё можно увидеть в московском Музее на Павелецкой — познакомиться с большей частью экспонатов, а какие-то даже попробовать в действии.
Читать дальше →
Всего голосов 84: ↑84 и ↓0 +84
Комментарии 133

YandexGPT в Браузере: как мы учили модель суммаризировать статьи

Время на прочтение 7 мин
Количество просмотров 19K
Блог компании Яндекс Браузеры Машинное обучение *Искусственный интеллект IT-компании
Неделю назад на сайте 300.ya.ru мы продемонстрировали возможности языковой модели YandexGPT применительно к задаче суммаризации текстов. С тех пор многое изменилось: мы обучили новую, более качественную модель, в пересказах которой в 4 раза меньше ошибок. А сегодня мы внедрили её в Яндекс Браузер. Может показаться, что мы просто взяли ту же модель, о которой уже рассказывали сообществу на примере Алисы, и прикрутили к ней кнопку в Браузере. Но не всё так просто. Да, наша базовая модель уже понимала, что такое суммаризация в общих чертах. Но для нас было важно добиться результата в нужной нам форме и с предсказуемым качеством. И вот тут-то начинаются нюансы.

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



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

Как я написал конвертер 3D-моделей из подручных средств

Время на прочтение 18 мин
Количество просмотров 5.3K
Блог компании Яндекс Ненормальное программирование *Python *Работа с 3D-графикой *Разработка под AR и VR *

Всем привет! Меня зовут Шико, я работаю в Яндекс Маркете в команде Android-разработки. Сегодня я расскажу историю, которая случилась в 2021 году. Как-то раз я вызвался добавить в мобильное приложение AR (то есть, дополненную реальность). Оно нужно, чтобы товар можно было «примерить» в интерьер.

Сначала я расстроился: показалось, что ничего особо интересного не будет — всего-то подключить ARCore и делов. Но это ровно до тех пор, пока не выяснилось, что большинство файлов моделек было в USDZ-формате, а ArCore на тот момент с ним не работал. То есть, когда на iOS в процессе разработки таких проблем не возникало, нам нужно было придумать способ перевести существующие модельки в другой формат — GLB. Казалось бы, скачай конвертер и нажми на кнопку «Конвертировать». Не тут-то было. 

И в этой статье я расскажу, какие методы конвертации я пробовал, почему они не подошли и с чем не смогли справиться Blender и Unreal Engine. Спойлер: в итоге мне пришлось написать собственный плагин и я покажу его код.

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

QA-метрики: когда они могут быть полезны и как их использовать

Время на прочтение 6 мин
Количество просмотров 5.9K
Блог компании Яндекс Тестирование веб-сервисов *Управление разработкой *Управление проектами *

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

Зрелым командам такие метрики ощутимо помогают:

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

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

сравнивать показатели работы команд в подразделении перед предстоящим периодом ревью.

Меня зовут Катя, я руковожу службами тестирования Музыки и Букмейта, и в этом посте я хочу рассказать про основные метрики, которые мы используем в команде тестирования Яндекс Музыки, и обсудить, как правильно с ними работать.

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

Библиотека MockWebServer-DSL в open-source: делаем конфетку из сетевых запросов в UI-тестах

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 1.5K
Блог компании Яндекс Open source *Интерфейсы *Разработка под Android *Тестирование мобильных приложений *

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

Сегодня мы выпускаем в open-source собственную библиотеку MockWebServer DSL. Она помогает удобно писать обработчики запросов на бэкенд в Android-тестах.

И как она работает?
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 0

Где и как можно ускорить приложение на Android

Уровень сложности Средний
Время на прочтение 14 мин
Количество просмотров 4.9K
Блог компании Яндекс Разработка мобильных приложений *Разработка под Android *Kotlin *

Привет! Я Александр Попсуенко, руководитель инфраструктурной команды мобилок Маркета. Сегодня я хочу рассказать, как мы ускоряли наше приложение на Android.

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

Пост рекомендуется к прочтению:

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

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

— UX‑дизайнерам, чтобы удостовериться, что мобильные приложения должны быть быстрыми и в это нужно вкладываться.

Почерпнуть, осознать, удостовериться
Всего голосов 23: ↑23 и ↓0 +23
Комментарии 9

Compose-recompose: почему происходят рекомпозиции и как уменьшить их количество

Время на прочтение 17 мин
Количество просмотров 6.2K
Блог компании Яндекс Программирование *Разработка мобильных приложений *Kotlin *Jetpack Compose *

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

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

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

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

YandexGPT в Алисе: как мы создаём языковую модель нового поколения

Время на прочтение 7 мин
Количество просмотров 31K
Блог компании Яндекс Поисковые технологии *Машинное обучение *Искусственный интеллект IT-компании
Обучение больших языковых моделей — это одно из самых актуальных направлений в машинном обучении. Крупнейшие IT-компании бьются над созданием всё более совершенных моделей. В том числе и Яндекс: мы создаём и применяем в наших сервисах нейросети YaLM уже больше двух лет.

В этом году улучшение моделей стало приоритетным на уровне всей компании. Внутри эта работа известна как проект «Генезис» или YaLM 2.0. Её результатом стал большой скачок в качестве наших моделей.

Новая модель получила название YandexGPT (YaGPT), вы могли впервые попробовать её в Алисе по запросу «Давай придумаем» чуть больше двух недель назад. Сегодня мы обновили YaGPT: Алиса научилась писать ответы с учётом истории предыдущих сообщений. В честь этого хотим рассказать Хабру историю всего проекта. Уже в ближайшее время новая модель станет частью и других сервисов Яндекса.



Читать дальше →
Всего голосов 67: ↑64 и ↓3 +61
Комментарии 82

userver — что мы узнали за полгода в open-source

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 16K
Блог компании Яндекс Open source *C++ *Проектирование и рефакторинг *Управление разработкой *
Кейс
image
Прошло больше полугода с момента выхода фреймворка для C++ 🐙 userver в open-source. За это время мы многое узнали, на многом настрадались, а главное — получили много приятных сюрпризов.

И мы решили об этом написать. Рассказ будет полезен тем, кто ведёт или планирует вести свой open-source проект или занимается контрибьютами. Остальным будет интересно почитать про чужое набивание шишек и что вообще open-source даёт проекту.
Читать дальше →
Всего голосов 66: ↑65 и ↓1 +64
Комментарии 28

Как заставить бэкендера писать фронтенд

Уровень сложности Простой
Время на прочтение 10 мин
Количество просмотров 13K
Блог компании Яндекс Разработка веб-сайтов *Python *Программирование *VueJS *

Всем привет! Меня зовут Иван Ситкин, я бэкенд-разработчик в Едадиле. Сегодня я хочу поделиться с вами историей написания очередной панели администрирования и как из этого мы собрали подходящие подходы и практики.

Для начала давайте вспомним, что же это за панели. Панель администрирования (или админка) — это приложение, которое используется для управления и настройки приложения. То есть это такой продукт для продукта. Панели администрирования нужны для различных целей, например, для создания и редактирования контента, настройки параметров продукта или управления пользователями.

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

А теперь вы готовы погрузиться в эту кроличью нору.

Читать далее
Всего голосов 29: ↑26 и ↓3 +23
Комментарии 70

Как мы придумали и запустили совместные поездки в Яндекс Go

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 9.5K
Блог компании Яндекс Разработка мобильных приложений *Геоинформационные сервисы *Транспорт
Аналитика

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

Меня зовут Полина Белобородова, в Яндекс Go я руковожу командой аналитики новых продуктов в рамках эффективности платформы. И сегодня расскажу про то, как мы придумывали, тестировали и запускали тариф для поездок с попутчиками «Вместе».

Читать далее
Всего голосов 40: ↑36 и ↓4 +32
Комментарии 53

Как сделать сервисы доступнее для людей с нарушениями зрения. Исправляем 5 самых частых ошибок

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 2.9K
Блог компании Яндекс Веб-дизайн *HTML *Usability *Accessibility *

Всем привет! Меня зовут Юля Долгун, я фронтенд-разработчик из Поиска. Одна из моих задач — поддерживать доступность в поиске по товарам для пользователей с различными ограничениями здоровья.

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

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

Откуда Карты знают, когда приедет автобус

Время на прочтение 7 мин
Количество просмотров 39K
Блог компании Яндекс Геоинформационные сервисы *Машинное обучение *Транспорт Урбанизм

Раздел «Транспорт» — один из самых популярных в Яндекс Картах: там автобусы, троллейбусы и трамваи перемещаются прямо по карте в реальном времени, а для каждой остановки есть виртуальное табло. Можно посмотреть, сколько ещё ждать транспорт, или понять, когда лучше выходить из дома, чтобы его не пропустить. А если оказались в незнакомом районе — узнать, как быстрее добраться домой, и сразу найти ближайшую остановку или станцию метро.

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

Читать далее
Всего голосов 109: ↑107 и ↓2 +105
Комментарии 171

Захватывающая ловля багов, которые портили работу Unbound

Уровень сложности Сложный
Время на прочтение 38 мин
Количество просмотров 11K
Блог компании Яндекс Высокая производительность *Серверное администрирование *DNS *

Привет, меня зовут Сергей Качеев, я старший разработчик в отделе сетевой инфраструктуры Яндекса. Сегодня я расскажу целый сетевой детектив о том, как мы искали баг, который убивал DNS сервер Unbound. Приготовьтесь, он будет долгим.

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

В самом начале на графиках нагрузочного тестирования я увидел очень плохие результаты: случайным образом абсолютно все запросы нагрузочного теста таймаутились, но сервер, который был под нагрузкой, никак не реагировал на проблему. Как выяснилось позже, по чистой случайности я допустил ошибку в конфигурации нашего плагина Pandora, и в итоге он сам ходил в DNS на каждый запрос, чтобы узнать ip адрес тестируемого сервера. Возможно, это сыграло мне на руку и помогло найти первую из проблем, а потом и вовсе задало вектор поисков остальных багов. А в Unbound их накопилось достаточно.

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

Информация

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