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

«Душа молчит, хоть слышит всё вокруг»: как мы отучаем генеративные модели галлюцинировать

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

Вот так когда-то отвечала языковая модель, когда её просили привести пример стихотворения Бальмонта. Стихотворение с таким названием действительно есть, но начинается оно совсем не так. 

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

Мы, Александр Кайгородов и Светлана Маргасова, обучаем генеративные модели в Яндексе. В этой статье мы расскажем, как заставить генеративные модели перестать придумывать несуществующие факты и как научиться находить эти ошибки, если они всё же случаются. Вы узнаете о том, как использовать внешнюю информацию, опираясь на которую мы можем выполнять как обусловленную генерацию (Retrieval Augmented Generation), так и фактологическую оценку имеющихся генераций (Fact-Check). 

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

Kontron Electronic IP Lite: что внутри у промышленного переносного компьютера из 90-х

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

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

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

Технические предпочтения пользователей с нарушениями зрения в 2023 году. Исследование Яндекса

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

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


Привет, Хабр. Меня зовут Никита, я помогаю коллегам из Яндекса с технической экспертизой по вопросам accessibility. В этой статье я хочу поделиться результатами очередного исследования технических предпочтений пользователей с нарушениями зрения, которое предназначено для специалистов, работающих в сфере цифровой доступности. О подобном исследовании я рассказывал в 2020 году.


Круговая диаграмма с долями основных программ экранного доступа по данным таблицы 10
Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 0

Кот в мешке: как приручить дикий бинарник

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

Всем привет. Меня зовут Василий. Я работаю SRE в Яндекс Маркете. Недавно у нас прошли тренировки по DevOps от Young&&Yandex. Сегодня я разберу финальное задание, как и обещал участникам тренировок. Оно состоит в том, чтобы развернуть инсталляцию приложения из готового бинарника, которая будет соответствовать SLA из ТЗ. Выглядит предельно просто, но только на первый взгляд. Под катом — один из вариантов обхода всех подводных камней, которые притаились в задании.

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

Улучшаем динамические таблицы YTsaurus с помощью алгоритмов

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

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

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

В этой статье разберёмся, как работает xor-фильтр, в чём особенность чанкового хеш-индекса и как overload controller повышает стабильность работы. Все примеры разберём на примере YTsaurus, но они будут полезны любому разработчику СУБД.

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

Как нейросети помогают изучать снежных барсов: о проекте Сайлюгемского парка и Yandex Cloud

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

Снежный барс (ирбис) — один из самых редких видов больших кошачьих, который обитает в горных районах. С 2000 года снежный барс занесён в Красный список МСОП как «находящийся под угрозой исчезновения», а с 2017 года ирбисам присвоен статус уязвимого вида.

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

Меня зовут Михаил Добрицын, я учусь в Школе Анализа Данных Яндекса. В 2023 году совместно с Сайлюгемским национальным парком и другими студентами мы обучили нейросеть, которая поможет учёным быстрее находить снежных барсов и других животных на снимках и узнавать больше об их маршрутах. В этой статье расскажем, как создали собственный датасет для обучения такой нейросети, как тренировали модель, какие результаты получили сейчас и как планируем развивать это решение.

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

До метро на такси: как работают комбинированные маршруты в Яндекс Картах

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

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

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

Построим маршрут?
Всего голосов 17: ↑16 и ↓1 +15
Комментарии 14

Detekt: как статический анализ помогает улучшить код автотестов

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

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

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

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

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

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

Интернационализация от i до n: как мы переводим интерфейсы в Фантехе Яндекса

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

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

В этом посте расскажу:

какие именно решения для интернационализации фронтенда мы разрабатываем;

какие есть правила форматирования данных для разных локалей и как определять эти локали;

о проблемах переводов в современных реалиях.

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

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

Станция Дуо Макс. Как мы создавали первую умную колонку Яндекса с экраном

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

Недавно на YaC 2023 мы показали нашу новую колонку — Станцию Дуо Макс. Это первая умная колонка Яндекса с сенсорным экраном и флагман в нашей новой категории устройств. Дуо Макс предложит пользователям как уже знакомые возможности других Станций, так и новые способы взаимодействия с Алисой. 

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

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

Что ты такое, dhclient?

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

Сетевой стек Linux не прост даже на первый взгляд: приложение — в юзерспейсе, а всё, что после сокета, — в ядре операционки. И там тысяча реализаций TCP. Любое взаимодействие с сетью — системный вызов с переключением контекста в ядре.

Чтобы лишний раз не дёргать ядро прерываниями, придумали DMA — Direct Memory Access. И это дало жизнь классу софта с режимом работы kernel bypass: например при DPDK (Intel Data Plane Development Kit). Потом был BPF. А за ним — eBPF. 

Но даже помимо хаков работы с ядром есть такие штуки, как sk_buff, в которой хранятся метаданные всех миллионов протоколов. Есть NAPI (New API), которая призвана уменьшить число прерываний. Есть 100500 вариантов разных tables.

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

Начать погружение
Всего голосов 223: ↑222 и ↓1 +221
Комментарии 61

Станция Миди и голосовое управление Zigbee-устройствами без интернета. История разработки

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

Недавно мы представили нашу новую умную колонку — Яндекс Станцию Миди. Она больше, чем Лайт или Мини, поэтому в ней уместились вуфер и два высокочастотных динамика с суммарной мощностью звука 24 Вт. Но при этом она легче и компактнее, чем Станция 2 или Макс. Кроме того, в Миди мы внедрили технологии, которые позволили Алисе научиться новому. В частности, благодаря более современному процессору и бо́льшему объёму оперативной памяти, Алиса в Станции Миди впервые стала понимать и выполнять голосовые команды умного дома локально, без интернета.

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

Что важно: это полезно не только при проблемах со связью. Теперь Zigbee-устройства будут реагировать на команды быстрее даже при наличии хорошего интернета (чуть подробнее — в блоке про замеры скорости в конце поста).

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

Читать далее
Всего голосов 53: ↑49 и ↓4 +45
Комментарии 78

Дизайн-система Gravity UI: как легко построить свой интерфейс

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

Всем привет, я Алексей Сизиков, руководитель отдела User Experience в Yandex Cloud. В этой статье я хочу поделиться новостью: мы выпустили нашу дизайн-систему и библиотеку компонентов Gravity UI в опенсорс. 

Под катом — рассказ, зачем мы сделали Gravity UI, как его используем, в чём особенности и преимущества нашего подхода и как мы планируем развивать его дальше. А ещё — как настроить разные цветовые схемы в своих проектах и почему у нас четыре темы вместо двух стандартных.

Читать далее
Всего голосов 71: ↑69 и ↓2 +67
Комментарии 27

Байт-код — это просто! Как сделать DI по-настоящему быстрым

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

Привет! Меня зовут Григорий Юрков, и я уже несколько лет работаю в инфраструктурной команде Яндекс Маркета. Два года назад мы начали разрабатывать свой легковесный DI-фреймворк Scout, который предоставляет выразительный Kotlin DSL. Он не генерирует код, а делает всю работу в рантайме.

Недавний переход с compile-time-библиотеки Dagger 2 на нашу привёл к замедлению старта приложения. В этой статье мы будем подробно рассматривать то, как применение байт-кода помогло сохранить скорость на том же уровне и спасти проект по миграции на Scout.

Ускоримся!
Всего голосов 31: ↑29 и ↓2 +27
Комментарии 41

Backend Driven UI с точки зрения бэкенда: к чему готовиться, если вы решили на него перейти

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

Многим знаком подход Backend Driven UI. С его помощью можно создавать новые страницы, запускать А/B-тесты, легко менять флоу в любое время и сразу на всех платформах. И при этом не надо долго и мучительно перевыкатывать приложение.

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

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

Из микро в макро: как адаптировать мобильное приложение под ТВ-платформу

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

Рано или поздно Android-разработчику станет любопытно попробовать новые платформы. Устройств с этой ОС много — есть из чего выбрать. Например, сейчас набирает популярность разработка под умные телевизоры.

И вот здесь начинается самое интересное. Вроде бы и на смартфоне, и на телевизоре одинаковая ОС, но приложению понадобится глобальная адаптация, ведь там, например, нет привычного Touch Screen, чтобы управлять контентом и быстро набирать текст в поисковой строке.

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

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

Почему инфраструктура big tech обычно состоит из самописных решений

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

Привет! Предлагаю поговорить о том, почему крупные IT‑компании так любят создавать в своей инфраструктуре собственные решения. Казалось бы, напрашивается ответ: NIH‑синдром и ничего более. Но такой ответ вряд ли может считаться сколько-нибудь полным, а тем более претендующим на объективность.

Меня зовут Дмитрий, я CTO в команде Yandex Platform Engineering. Наша задача — помогать инженерам выстраивать весь цикл разработки от написания кода до эксплуатации сервисов и делать его эффективнее. Такая работа включает настройку процессов: мы не просто делаем нечто as a service, но и помогаем эти самые as a service внедрять внутри компании. И всё это работает на масштабах Яндекса: нашими сервисами пользуются тысячи разработчиков по всей компании.

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

Читать далее
Всего голосов 56: ↑55 и ↓1 +54
Комментарии 31

Diplodoc — открытый набор инструментов для создания документации

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

Всем привет, меня зовут Женя Колесников, я из команды Yandex Infrastructure. Сегодня я расскажу, как мы пришли к написанию документации в концепции Docs as Code, придумали для этого набор инструментов, назвали его красивым именем Diplodoc и выложили в опенсорс — теперь вы тоже можете им воспользоваться.

Если вкратце, Docs as Code — это подход к написанию технической документации, который рассматривает её не как набор текстов, а как код. Исходя из этой концепции, к документации могут применяться все те же принципы, инструменты и процессы, что и к самому коду. Расскажу, как это происходит на примере Diplodoc — и чем он может облегчить вам жизнь.

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

Нейронные сети для планирования движения беспилотных автомобилей

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

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

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

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

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

Библиотека Scout — быстрый и безопасный DI на Kotlin

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

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

Эта статья — рассказ о том, как пройти путь от безумной идеи до конкурентоспособного опенсорс-фреймворка. Статья будет полезна тем, кто ищет замену DI-фреймворку в своем проекте, а также тем, кто мечтает написать свою библиотеку, но никак не может начать.

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

Информация

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