ML Underhood
3.37K subscribers
206 photos
27 videos
101 links
Рассказываем, чем живёт ML в Яндексе, и обсуждаем важные новости индустрии.

Вопросы и предложения > @yandex_ml_brand
Download Telegram
Личные итоги года инженеров Яндекса — Максим Спорышев

Середина февраля 2025-го — не помеха для подведения итогов 2024-го. Тем более, если они такие интересные, как сегодняшние. Ими поделился руководитель группы алайнмента модели планирования движения в Яндексе Максим Спорышев. Он рассказал о собственных успехах и о том, чем ему запомнился прошлый год.

#YaMLpeople

ML Underhood
10🔥6👍3
Документный LLM-переводчик в Яндексе

Яндекс запустил новую модель для документного перевода на основе YandexGPT. Она уже работает в Поиске, Умной камере и Нейропереводчике Яндекс Браузера, а также заняла первое место в бенчмарке DiBiMT по переводу с английского на русский. Обо всех нюансах работы переводчика и о том, как его создавали, на Хабре рассказал руководитель группы базового качества перевода Николай Карпачёв. А здесь — кратко о главном.

Документный перевод предполагает адаптацию на другой язык не каждого отдельного предложения, а всего текста. Почему это важно? Причин несколько. Например, английское «you» может означать как «ты», так и «вы», но без контекста модель не понимает, какой вариант выбрать. Термины и стилистика могут «прыгать» внутри текста, а пропущенные элементы, понятные носителю языка, в переводе превращаются в бессмысленный набор слов. Люди воспринимают текст иначе: мы читаем книги, статьи, субтитры — всё целиком. Значит, и машинный перевод должен работать так же.

Инженеры Яндекса попробовали перевести тексты LLM-моделью «из коробки», без дообучения, но столкнулись с типичными ошибками: пропущенные фрагменты, лишние добавления, галлюцинации. Чтобы этого избежать, модель пришлось адаптировать. На первом этапе подготовили данные, включая не только классические парные предложения, но и переводы документов, полученные автоматическим выравниванием и с помощью синтетики. Дообучение проходило в форматах LoRA и P-Tuning.

На следующем этапе модель дообучалась с помощью технологии alignment. Разные варианты переводов сравнивались редакторами-профессионалами. Полученные оценки использовали для оптимизации методом Contrastive Preference Optimization (CPO). На этой стадии происходит исправление существующих ошибок и проблем LLM-модели, найденных редакторами. Это позволило минимизировать ошибки, связанные с потерей информации и несогласованностью.

В итоге по метрике MQM новая модель переводит тексты почти так же хорошо, как человек. Количество грубых ошибок сократилось в два раза по сравнению с предыдущей версией, а финальный результат оказался даже лучше GPT-4o.

ML Underhood
🔥238🎉8🥱2👍1
YandexGPT 5 уже в опенсорсе и Алисе

Сегодня Яндекс показал миру новое поколение больших языковых моделей — YandexGPT 5. Старшая модель YandexGPT 5 Pro доступна в чате с Алисой и Yandex Cloud через API. Ну а претрейн-версия младшей модели YandexGPT 5 Lite Pretrain — уже лежит на Hugging Face.

Все подробности о процессе обучения можно прочитать в статье на Хабре. А в этом посте — главные факты о свежей опенсорсной модели Яндекса.

YandexGPT 5 Lite Pretrain — модель на 8 миллиардов параметров с длиной контекста 32 тысячи токенов. Претрейн проходил в два этапа: сначала модель обучили на 15 триллионах токенов текста на русском и английском языках, а потом использовали 320 миллиардов токенов высококачественных данных, включая образовательный контент.

На первом этапе датасет больше чем на половину состоял из веб-документов, остальное — код, математика и специфичные данные. Под последними подразумеваются синтетика (сгенерированные YandexGPT 4 вопросы на основе проверенных источников) и внутренние наработки компании (например, внутренняя база Яндекса Fact Snippet и новый корпус данных Переводчика).

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

По сравнению с моделью предыдущего поколения, YandexGPT 4 Lite Pretrain, новая модель показывает ощутимый рост качества в решении математических задач и написании кода. А в сравнении с зарубежными аналогами, такими как LLaMa3.1-8B и Qwen-2.5-7B-base, она лидирует почти во всех типах задач.

Ещё раз приглашаем пощупать модель, почитать статью на Хабре с деталями обучения и не забыть поделиться впечатлениями в комментариях!


ML Underhood
🔥19👍96🤡5
Личный опыт инженеров Яндекса — Петр Вытовтов

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

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

#YaMLpeople

ML Underhood
13🔥5👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Как и зачем Алису учат понимать интонации

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

Голосовая активация — это распознавание фраз в потоке звука, поступающих на микрофоны умного устройства. А модель, которая решает задачу голосовой активации, называют споттером. В Яндексе работают над командными и интонационными споттерами. И если первые в проде уже какое-то время, то вторые — только с 27 февраля этого года и пока только на Станции Миди.

Как устроен споттер в целом:

1. На вход поступает сырой сигнал с частотой 16 кГц.
2. Преобразуем его в спектрограммы с помощью оконного преобразования Фурье. Это позволяет перейти от временной размерности к частотной.
3. Затем уменьшаем размерность, используя мел-шкалу и логарифмирование.

После этого можно подавать данные в свёрточную сеть. Мы используем свёрточную сеть до 1 млн параметров, похожую на MobileNet, но с одномерными DepthwiseSeparable свёртками вместо двумерных. Линейные слои заменяем их низкоранговым приближением, а вместо Swish берём Hard-Swish — его адаптацию, которую удобно вычислять на железе.

Идея интонационного споттера

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

Пользователи часто забывают произносить «Алиса» перед запросом, то есть ожидают от неё диалога. Умение активироваться на интонацию становится точкой входа в общение ассистента с пользователем.

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

Сначала попробовали использовать данные, которые наговорили асессоры, но из-за того, что люди использовали неестественные интонации, датасет выходил плохим.

Тогда решили взять данные от ASR — не только из активаций, но и из дослушиваний — режима, в котором колонка проактивно продолжает диалог. Например, если я спрашиваю: «Алиса, какая погода в Минске?», она отвечает и уточняет: «А хотите узнать погоду в Белграде?». При этом пользователь не говорит «Алиса» повторно. Это уже похоже на естественный диалог, хотя и не лишено ограничений, которых не будет у интонационного споттера: дослушивания работают не на каждый запрос и ждут пользователя только в коротком интервале около 3–5 секунд.

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

Для разметки использовали решение соседней команды ASR — классификацию на side-speech. Суть в том, что ASR пытается на последнем этапе своей работы понять, действительно ли речь имела полезный смысл. Мы немного доработали исходные метки и получили для себя псевдолейблы, которые буквально говорят нам, подходящая интонация для активации или нет.

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

ML Underhood
16🔥5👍2👀2
Личный опыт инженеров Яндекса — Никита Киселёв

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

#YaMLpeople

ML Underhood
10👍5🔥2
Как ML рассаживает деревья в Яндекс Картах

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

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

Работа с данными

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

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

Обучение

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

За два месяца дополнительно разметили около 60 тысяч деревьев в Москве, Петербурге и Калининграде. При этом модель определила 4 миллиона деревьев за два дня — это показывает, как автоматизация сокращает трудозатраты на разметку данных.

Архитектура

В основе архитектуры — классическая UNet-модель с ResNet в качестве бэкбона. Нейросеть предсказывала попиксельную карту вероятностей наличия дерева в каждой точке. Изначально поиск деревьев был тесно связан с поиском точечной дорожной разметки (стрелочки на асфальте). На абстрактном уровне — это очень похожие вещи. Поэтому разработанные решения базируются на одних и тех же идеях, почерпнутых из этой статьи.

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

Модель научилась хорошо определять, где находится дерево, но также ей нужно было понимать, какого оно типа и какая 3D-модель для него нужна. А для этого надо понять ширину и высоту. Мы обратили внимание на модель DeepForest, которая плохо находила центры, но хорошо предсказывала ширину. Решили объединить усилия: нашей моделькой находили локализацию деревьев, а DeepForest просили сказать, какой они ширины. В результате получили данные, на которых смогли обучить модель предсказывать ширину по локализации: где находится дерево и как выглядит этот маленький кусочек снимка.

Благодаря картографам у нас также были данные вида: «это дерево, и оно имеет ширину Х и высоту Y». Мы уже научились находить дерево и определять его ширину. Осталось взять имеющиеся данные и научиться с их помощью предсказывать высоту. Вуаля — мы получили модель, которая умеет локализовывать (находить местоположение) + вычислять ширину (по локализации) + вычислять высоту (по ширине и тому, как дерево выглядит).

Результаты и планы

В итоге модель помогла разметить для Москвы почти 3 млн деревьев, а для Петербурга — 1,1 млн деревьев.
Сейчас система работает на аэросъемке, но в будущем есть планы перевести её на спутниковые снимки. Это ускорило бы обновление карт, поскольку спутниковая съёмка дешевле и проводится чаще. Однако разрешение спутниковых снимков ниже, и для такого перехода нужны дополнительные исследования и более сложные модели.

ML Underhood
24👍12🔥8👎2🤔1
YandexGPT 5 Lite Instruct теперь в опенсорсе 🎉

В феврале в открытый доступ вышла Pretrain-версия, а сейчас очередь дошла и до YandexGPT 5 Lite Instruct. Это модель на 8 миллиардов параметров с размером контекстного окна в 32К токенов.

О претрейне мы уже писали вот тут, а алайнмент аналогичен тому, через который проходит YandexGPT 5 Pro. На этапе SFT концентрировались на сложных запросах, а также методах фильтрации и ранжирования данных. В рамках RLHF комбинировали RL-подходы, которые дают лучшие результаты: DPO, LogDPO и PPO. Подробнее об этом читайте на Хабре.

По результатам внутреннего слепого попарного сравнения (side-by-side) новая модель YandexGPT 5 Lite превосходит Qwen-2.5-7B-instruct в 62% случаев и не уступает GPT-4o mini в решении стандартных задач сервисов Яндекса. Показатели бенчмарков можно посмотреть в таблице.

А ещё обновили лицензию: теперь можно использовать модель не только в некоммерческих целях, но и в коммерческих до 10 миллионов выходных токенов в месяц. Если ваши объёмы выше, напишите на почту, указанную в тексте лицензии.

Модель доступна на Hugging Face. Там же есть и квантизованная версия с поддержкой GGUF. YandexGPT 5 Lite Instruct совместима с llama.cpp и Ollama.

ML Underhood
🔥3413👍13👏3😁1🤮1
Как устроена модель исправления ошибок в нейроредакторе Яндекс Браузера — часть I

В конце сентября в Яндекс Браузере запустили нейроредактор — это инструмент, который исправляет ошибки в тексте, делает его более читабельным и грамотным. С момента релиза функциями нейроредактирования в Браузере воспользовались с 18 миллионов устройств.

Сегодня ML-разработчик в Яндексе Никита Авдосев расскажет о модели исправления ошибок, которая работает «под капотом» нейроредактора. В первой части разбора поговорим о качестве исправления ошибок и работы с промптом. А во второй — о перфомансе.

Качество исправления ошибок

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

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

Проведенные инженерами проверки показали, что в 41% случаев модель исправляла слово неверно либо не исправила вовсе, потому что у неё не было контекста. Результат весьма сомнительный, поэтому инженеры решили исправить эту недоработку. После всех улучшений модели доля ошибок в коррекции коротких текстов и отдельных слов сократилась до 16%.

Можно задаться вопросом: «А 16% — это много или мало?» Для сравнения, в Яндексе замерили, как хорошо срабатывает «опечаточник» — отдельный механизм внутри Браузера, который отвечает за подсветку неправильно написанных слов, когда вы печатаете, и предлагает варианты исправления (если достаточно в них уверен). Это не LLM, а алгоритм, который обращается к словарю. Задача непростая, но сейчас «опечаточник» отлично справляется с 75% ошибок. Значит, в этом плане модель превосходит решение, которое давно себя зарекомендовало.

Качество работы с промптом

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

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

Однако при таком подходе, когда упор только на популярное, из виду пропадает «хвост» — редкие, нечастотные запросы, которые составляют 15-20% от общего числа. Однако и на таких важно фокусироваться, потому что именно на их основе можно почувствовать реальную «умность» моделей

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

Поэтому инженеры компании сфокусировались на двух направлениях:

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

За счёт синтетики инженеры сумели количественно и качественно расширить хвост креативных запросов. В датасет из текстов и промптов добавили примерно 5 тысяч примеров. И теперь запросы вроде «перепиши как гопник» стали работать креативнее, чем раньше.

ML Underhood
23👍9🔥5
Forwarded from Speech Info
Билингвальный ASR — уже в станциях и чате с Алисой

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

Евгений Ганкович, руководитель группы ASR, рассказал, с какими вызовами столкнулась команда:

— Необходимо было обучить модель, которая способна работать с новым языком, при этом критически важно было не просадить качество на русском.
— Домен английского для русскоговорящих пользователей специфичен и не решается с помощью открытых данных.
— End-of-utterance (EOU) по многим причинам работает у англоговорящих пользователей иначе.
Разберём, почему нужно было создавать билингвальную модель, а не обучать две отдельные.

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

В теории можно использовать классификатор: задан запрос, система определяет язык и направляет его в соответствующую модель. Но чтобы точно определить язык, придётся подождать несколько секунд. К тому же такая система сложнее в поддержке и плохо справляется со смешанными языками (см. «смотря какой fabric, смотря сколько details»).

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

Однако и здесь есть подводные камни. Даже незначительное ухудшение распознавания на русском негативно скажется на пользовательском опыте. Поэтому новую логику в модель нужно добавлять осторожно. Причём улучшения вносятся в две ключевые части голосового стека:

- End-of-utterance (EOU) — модель на основе аудио и паршального распознавания, которая определяет, когда пользователь закончил говорить.
- E2E Seq2Seq на базе трансформеров — модель распознаёт завершённый фрагмент речи на русском или английском языках.

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

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

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

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

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

В итоге мы получили результат, который стал важной частью большого релиза:

— Голосовой набор сообщений на английском языке в чате и колонке;
— Сценарий «тьютор» на колонке: пользователи могут вести диалог с Алисой, получать фидбек и переводить текст голосом.

Зовём протестировать, что у нас получилось: попробуйте поговорить с Алисой на английском или скажите: «Алиса, давай практиковать английский».

Евгений Ганкович Специально для Speech Info
Please open Telegram to view this post
VIEW IN TELEGRAM
21👍5🔥3👏1