Бывают случаи, когда чем сложнее задача, тем интереснее её решать. Именно с такой ситуацией столкнулся Шико Мстоян из команды Android-разработки Маркета. При добавлении в мобильное приложение функции AR ему нужно было придумать способ перевести существующие 3D-модели в другой формат. Но как выяснилось, нужных конвертеров на тот момент не существовало.
В своей статье Шико рассказал, какие методы конвертации попробовал, почему они не подошли, с чем не смогли справиться Blender и Unreal Engine и как он в итоге написал собственный плагин.
В своей статье Шико рассказал, какие методы конвертации попробовал, почему они не подошли, с чем не смогли справиться Blender и Unreal Engine и как он в итоге написал собственный плагин.
Неделю назад на сайте 300.ya.ru мы продемонстрировали возможности языковой модели YandexGPT применительно к задаче суммаризации текстов. С тех пор многое изменилось: мы обучили новую, более качественную модель, в пересказах которой в 4 раза меньше ошибок. А сегодня мы внедрили её в Яндекс Браузер.
Сегодня мы делимся с Хабром не столько новостью, сколько нашим опытом и советами из области дообучения моделей и промпт-инжиниринга. Расскажем, через что пришлось пройти команде, чтобы модель начала делать то, что от неё ожидают.
Сегодня мы делимся с Хабром не столько новостью, сколько нашим опытом и советами из области дообучения моделей и промпт-инжиниринга. Расскажем, через что пришлось пройти команде, чтобы модель начала делать то, что от неё ожидают.
Сейчас кажется, что все мыши одинаковые — две кнопки и колёсико посередине. Разве что в игровых моделях есть подсветка. Но так было не всегда: первые мыши были деревянными, квадратными, с неопределённым количеством кнопок, а устройства до середины восьмидесятых часто не шли в массовое производство.
Михаил Павлов десять лет коллекционирует компьютерные мыши и трекболы. В хабрапосте он коротко напомнил, какой путь они прошли, и показал свою коллекцию. Посмотреть на неё вживую можно в @yandexmuseum на выставке «Мышеловка». В ближайшие пару дней (до 12 июля включительно) ещё можно увидеть её в московском Музее на Павелецкой — познакомиться с большей частью экспонатов, а какие-то даже попробовать в действии.
Михаил Павлов десять лет коллекционирует компьютерные мыши и трекболы. В хабрапосте он коротко напомнил, какой путь они прошли, и показал свою коллекцию. Посмотреть на неё вживую можно в @yandexmuseum на выставке «Мышеловка». В ближайшие пару дней (до 12 июля включительно) ещё можно увидеть её в московском Музее на Павелецкой — познакомиться с большей частью экспонатов, а какие-то даже попробовать в действии.
Миграции БД — неотъемлемая часть любого развивающегося stateful-бэкенда. Если ваш сервис использует ORM, то для написания миграций у него есть специальная утилита. Но подходы, предлагаемые Django ORM, не всегда работают, а в некоторых ситуациях могут устроить вам очень неприятный даунтайм.
Артём Стрельцов, бэкенд‑разработчик Яндекс Практикума, поделился опытом работы с миграциями в Django, разобрал несколько примеров неаккуратной работы с ними и посоветовал, как избежать подобных проблем.
Артём Стрельцов, бэкенд‑разработчик Яндекс Практикума, поделился опытом работы с миграциями в Django, разобрал несколько примеров неаккуратной работы с ними и посоветовал, как избежать подобных проблем.
На современных телевизорах можно устанавливать разные приложения, которые в большинстве случаев разрабатываются на всем привычных веб-технологиях. Однако не каждый фронтендер сможет с лёгкостью разобраться с такой задачей: каждая модель телевизора — это отдельный новый мир со своими особенностями.
Елена Жукова, фронтенд-разработчица Яндекс Музыки, в своём посте рассказала, в чём заключаются существенные отличия разработки приложений для веба и для ТВ, а также посоветовала, на что обратить внимание при оптимизации кода и как организовать тестирование.
Елена Жукова, фронтенд-разработчица Яндекс Музыки, в своём посте рассказала, в чём заключаются существенные отличия разработки приложений для веба и для ТВ, а также посоветовала, на что обратить внимание при оптимизации кода и как организовать тестирование.
Жили были два сервера. Да и не сервера вовсе, а виртуальные машины. Жили не тужили, добро наживали, скриптами разными обрастали — кирпичик за кирпичиком, подпорка за подпорочкой. И в итоге выросли две абсолютно неавтоматизированные машины с тонной разных приложений, пакетов, ручных настроек, без должного мониторинга и с фрагментарной документацией. А потом посыпались ошибки RAID как градины с безоблачного неба.
Чем закончилась эта история о хаотичной застройке серверов, рассказал Марат Сибгатулин из команды Yandex Infrastructure. Спойлер: как и в любой сказке добро победило зло.
Чем закончилась эта история о хаотичной застройке серверов, рассказал Марат Сибгатулин из команды Yandex Infrastructure. Спойлер: как и в любой сказке добро победило зло.
Правильная и качественная организация поиска — нетривиальная задача. Иногда приходится придумывать нестандартные решения, чтобы всё работало как нужно. Например, команде Яндекс Лавки пришлось объединить всю силу и мощь целых трёх движков, чтобы пользователи получали точный и актуальный результат.
Иван Ходор, бэкенд-разработчик Лавки, поделился историей развития поиска в сервисе от самого начала до текущего момента и рассказал, в чём плюсы такого решения, несмотря на то, что его достаточно сложно поддерживать.
Иван Ходор, бэкенд-разработчик Лавки, поделился историей развития поиска в сервисе от самого начала до текущего момента и рассказал, в чём плюсы такого решения, несмотря на то, что его достаточно сложно поддерживать.
Чтобы Алиса выполнила нашу просьбу, её нужно позвать «по имени». Но когда нужно выполнить какую-нибудь короткую команду (например, несколько раз переключить трек или пролистать вниз подборки фильмов), постоянно говорить «Алиса» утомляет.
Для таких случаев мы научили Алису распознавать быстрые команды: достаточно просто сказать «громче», «дальше» или «включи свет». Благодаря этому общение с виртуальным помощником стало более быстрым, удобным и естественным. Новая функция доступна на любых колонках от Лайта до Макса.
В своём посте на Хабре Алексей Рак из команды голосового ввода рассказал, как разрабатывали эту фичу, что пришлось предусмотреть для снижения количества ложных срабатываний и как короткие команды повлияли на синтез длинных ответов.
Для таких случаев мы научили Алису распознавать быстрые команды: достаточно просто сказать «громче», «дальше» или «включи свет». Благодаря этому общение с виртуальным помощником стало более быстрым, удобным и естественным. Новая функция доступна на любых колонках от Лайта до Макса.
В своём посте на Хабре Алексей Рак из команды голосового ввода рассказал, как разрабатывали эту фичу, что пришлось предусмотреть для снижения количества ложных срабатываний и как короткие команды повлияли на синтез длинных ответов.
Основная задача любой мобильной клавиатуры — помогать пользователям вводить текст быстро и без ошибок. Этого можно достичь при помощи разных инструментов: подсказок, автокорректа, свайпа, голосового ввода. Казалось бы, между ними нет ничего общего, но это не так. Абсолютно все эти инструменты объединяет одно — языковая модель.
Сегодня на Хабре Вадим Щукин рассказал, как создавалась нейроязыковая модель для Яндекс Клавиатуры. Из поста вы узнаете, почему разработчики отказались от n-граммной модели и выбрали нейроязыковую. Увидите архитектуру новой модели, которая весит менее 20 МБ и работает на устройстве локально. А ешё обсудим, стоит ли использовать LSTM-энкодер в 2023 году.
Сегодня на Хабре Вадим Щукин рассказал, как создавалась нейроязыковая модель для Яндекс Клавиатуры. Из поста вы узнаете, почему разработчики отказались от n-граммной модели и выбрали нейроязыковую. Увидите архитектуру новой модели, которая весит менее 20 МБ и работает на устройстве локально. А ешё обсудим, стоит ли использовать LSTM-энкодер в 2023 году.
Что будет, если объединить технологии современных телевизоров и умных колонок? Получатся наши новые устройства — ТВ Станция и ТВ Станция Про.
Из статьи на Хабре можно узнать, с какими сложностями нам пришлось столкнуться в процессе их разработки. Например, рассказываем, в чём главная сложность интеграции farfield-микрофонов в корпус телевизора и как это повлияло на разработку динамиков.
Из статьи на Хабре можно узнать, с какими сложностями нам пришлось столкнуться в процессе их разработки. Например, рассказываем, в чём главная сложность интеграции farfield-микрофонов в корпус телевизора и как это повлияло на разработку динамиков.
Когда-то поездка на такси была целым приключением. Машину часто «брали от борта»: находили или останавливали такси и договаривались о цене и маршруте. Кто и как повезёт пассажира — тот ещё вопрос. Но с появлением агрегаторов требования к перевозкам сильно выросли.
В новом посте на Хабре — рассказ о том, как в Яндекс Go обеспечивают о безопасность пассажиров и водителей до, во время и после поездки. Вы узнаете, за что отвечает Железный Асессор, как алгоритмы оценивают сложность маршрута и манеру вождения водителя.
В новом посте на Хабре — рассказ о том, как в Яндекс Go обеспечивают о безопасность пассажиров и водителей до, во время и после поездки. Вы узнаете, за что отвечает Железный Асессор, как алгоритмы оценивают сложность маршрута и манеру вождения водителя.
Бывает, что в фильме играет музыка, которую хотелось бы найти и сохранить в свой плейлист. Такая возможность недавно появилась в Кинопоиске, где достаточно поставить воспроизведение на паузу и в один клик сохранить трек.
Алексей Царёв рассказал на Хабре о том, как Кинопоиск узнаёт, какая музыка играет в кино или сериале, почему для этого нужно два алгоритма и как влияет на распознавание число кадров в секунду.
Алексей Царёв рассказал на Хабре о том, как Кинопоиск узнаёт, какая музыка играет в кино или сериале, почему для этого нужно два алгоритма и как влияет на распознавание число кадров в секунду.
Антон Полухин принял участие в летней встрече международного комитета C++ и рассказал о её итогах в традиционном посте на Хабре. В этот раз комитет активно взялся за C++26. Вот такие новинки будут ждать разработчиков в готовящемся стандарте:
— улучшенный static_assert,
— переменная _,
— оптимизация и улучшение для std::to_string,
— Hazard Pointer,
— Read-Copy-Update (так же известное как RCU),
— native_handle(),
— целая вереница классов *function*,
— множество доработок по constexpr,
— std::submdspan,
— и прочие приятные мелочи.
— улучшенный static_assert,
— переменная _,
— оптимизация и улучшение для std::to_string,
— Hazard Pointer,
— Read-Copy-Update (так же известное как RCU),
— native_handle(),
— целая вереница классов *function*,
— множество доработок по constexpr,
— std::submdspan,
— и прочие приятные мелочи.
«Было бы здорово, если музыкальный поток мог сам подстраиваться под занятие или настроение. А ещё лучше, если бы его можно было сделать особенным для каждого», — подумали разработчики Яндекс Музыки и начали экспериментировать с генеративными технологиями. В результате появилась Нейромузыка — бесконечный персонализированный поток звуков, собранный алгоритмами на основе заранее сгенерированных коротких аудиофрагментов.
Николай Глазырин, старший разработчик в службе развития медиатехнологий, рассказал о том, как нейросеть училась писать короткие партии для разных инструментов и сочетать их, а также ответил на вопрос, возможно ли создание музыки без участия человека.
Николай Глазырин, старший разработчик в службе развития медиатехнологий, рассказал о том, как нейросеть училась писать короткие партии для разных инструментов и сочетать их, а также ответил на вопрос, возможно ли создание музыки без участия человека.
Как и множество больших сервисов, Яндекс Еда основана на микросервисной архитектуре. Но есть один сервис, который совсем не микро — легаси-монолит на PHP. В какой-то момент выяснилось, что версия языка, на котором всё написано, устарела и уже не поддерживается, что ведёт к рискам безопасности. Так разработчики приняли решение обновиться до PHP 8, не зная, что их ждёт впереди.
Разработчик Яндекс Еды Олег Табота рассказал историю, чего стоило проапгрейдить монолит, сколько тестов пали жертвой новой версии PHP и почему весь процесс занял целый год. В конце есть несколько советов тем, кто тоже захочет ввязаться в подобную авантюру.
Разработчик Яндекс Еды Олег Табота рассказал историю, чего стоило проапгрейдить монолит, сколько тестов пали жертвой новой версии PHP и почему весь процесс занял целый год. В конце есть несколько советов тем, кто тоже захочет ввязаться в подобную авантюру.
Встречаем YandexGPT 2. Это новая версия большой языковой модели Яндекса. Она отвечает лучше старой в 67% случаев, а в некоторых сценариях побеждает с ещё бо́льшим перевесом. Новая языковая модель способна анализировать тексты и отвечать на вопросы по ним, а также стилизовать текст ответа под разную аудиторию или персонажа.
Рассказываем на Хабре о том, что изменилось в процессе обучения YaGPT 2, в каких сценариях это принесло наибольший эффект и чем мы планируем заниматься дальше.
Рассказываем на Хабре о том, что изменилось в процессе обучения YaGPT 2, в каких сценариях это принесло наибольший эффект и чем мы планируем заниматься дальше.
Сегодня мы выпустили в open-source исходный код SDK AppMetrica. Любой желающий может разобраться в его работе, настроить под свои задачи и переиспользовать опыт в своих проектах. Более подробно о событии и выкладке — в нашем блоге.
AppMetrica — это инструмент для аналитики мобильных приложений. С помощью него можно формировать отчёты по источникам трафика, ключевым показателям мобильного приложения, аудитории и сценариям использования, а также собирать статистику по сбоям, проводить A/B-тесты и удалённо управлять конфигурацией приложения.
AppMetrica — это инструмент для аналитики мобильных приложений. С помощью него можно формировать отчёты по источникам трафика, ключевым показателям мобильного приложения, аудитории и сценариям использования, а также собирать статистику по сбоям, проводить A/B-тесты и удалённо управлять конфигурацией приложения.
Яндекс Браузер научился генерировать субтитры для видео на русском языке на любых сайтах. Это пригодится в ситуациях, когда нужно соблюдать тишину, а наушников под рукой нет, или когда в помещении слишком шумно. Кроме того, для людей с нарушениями слуха субтитры — один из немногих способов ознакомиться с содержанием видеороликов.
Субтитры генерируются нейросетью, встроенной в сам Браузер. Никита Цуранов из службы технологий голосового ввода рассказал, на что пришлось пойти, чтобы нейросеть стала потреблять в 5 раз меньше оперативной памяти. А ещё о том, какими методами можно найти слабые места у модели, как лучше квантизировать свёртки и трансформеры, а также почему fp16 не так прост, как кажется.
Субтитры генерируются нейросетью, встроенной в сам Браузер. Никита Цуранов из службы технологий голосового ввода рассказал, на что пришлось пойти, чтобы нейросеть стала потреблять в 5 раз меньше оперативной памяти. А ещё о том, какими методами можно найти слабые места у модели, как лучше квантизировать свёртки и трансформеры, а также почему fp16 не так прост, как кажется.
Зачем нужны перф-тесты? Конечно же, затем чтобы дать волшебное ускорение всему, что замедляет ваше iOS-приложение! Ведь чем больше задач оно выполняет, тем тщательнее нужно следить за его производительностью и вовремя ловить аномалии.
Павел Воробкалов написал подробный пост на Хабр о том, как отслеживать аномалии метрик производительности на стороне клиента с помощью перф-тестов, откуда берутся проблемы при тестировании и как их избежать, а также почему полезно детектировать аномалии не только в плане ухудшения, но и улучшения. А ещё показал, как выглядят перф-фермы и составил чек-лист, на что обратить внимание во время тестирования и к каким инструментам присмотреться.
Павел Воробкалов написал подробный пост на Хабр о том, как отслеживать аномалии метрик производительности на стороне клиента с помощью перф-тестов, откуда берутся проблемы при тестировании и как их избежать, а также почему полезно детектировать аномалии не только в плане ухудшения, но и улучшения. А ещё показал, как выглядят перф-фермы и составил чек-лист, на что обратить внимание во время тестирования и к каким инструментам присмотреться.
Сегодня у 🐙 userver большое событие — фреймворк вышел из беты!
С момента выхода 🐙 userver в опенсорс прошло чуть больше года. За это время его разработчики добавили WebSockets и TLS/HTTPS серверы, переработали и упростили систему сборки и добавили в документацию множество примеров и новых страниц.
Что ещё нового в релизе? Зачем вообще нужен userver и какие существуют технологии для обеспечения надёжной работы серверных приложений? Можно ли воспользоваться крутыми C++ классами из userver, не используя при этом корутины? Какие дальнейшие планы? Антон Полухин ответил на все эти вопросы в своём посте на Хабре и его англоязычной версии на Медиуме.
С момента выхода 🐙 userver в опенсорс прошло чуть больше года. За это время его разработчики добавили WebSockets и TLS/HTTPS серверы, переработали и упростили систему сборки и добавили в документацию множество примеров и новых страниц.
Что ещё нового в релизе? Зачем вообще нужен userver и какие существуют технологии для обеспечения надёжной работы серверных приложений? Можно ли воспользоваться крутыми C++ классами из userver, не используя при этом корутины? Какие дальнейшие планы? Антон Полухин ответил на все эти вопросы в своём посте на Хабре и его англоязычной версии на Медиуме.