Обновить
128K+

Natural Language Processing *

Компьютерный анализ и синтез естественных языков

134,5
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Почему голосовые ИИ‑агенты перебивают людей: замерил на боевом API и починил правилами русского синтаксиса

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели1.2K

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

Ниже — методика, замеры и решение, которое даёт 316 мс вместо 1200 при двух обрывах вместо тридцати восьми. Всё воспроизводимо, детектор — на правилах, без обучения и без GPU.

Читать далее

Новости

Голосовой ввод в любое окно Windows за секунду. Офлайн, на CPU, без единого гигабайта torch

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

Голосовой ввод для Windows за ~1 секунду | Полностью локально • CPU • Open Source

Как заставить Whisper распознавать речь почти в 4 раза быстрее на обычном CPU без GPU и без облака. Разбираю архитектуру WhisperType, сужение окна энкодера, потоковую обработку аудио, оптимизацию faster-whisper и подводные камни WinAPI.

Читать далее

Сжатие словаря. Языки из омонимов и хроматическое число

Время на прочтение14 мин
Охват и читатели4.9K

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

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

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

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

Читать далее

Жители Валдории живут 147 лет, а страна граничит с Германией и Японией одновременно. Исследование MiroFish. Часть 2

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

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

Читать далее

SayFable — офлайн-библиотека с NLP-разметкой, синтезом на 68 языков и чатом по книге

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

Привет, Хабр! В прошлых статьях я рассказывал про локальный переводчик с синтезом голоса на кабардинском и про то, как собрать полный NLP-стек для «финального босса лингвистики» из старых словарей. За прошедшие месяцы весь этот стек - лемматизация, POS, NER, тональность, эмбеддинги, синтез - переехал с Python/Flask на десктопе в Swift-приложение на iOS и заодно перерос сам себя: начиналось всё как синтезатор речи для одного языка, а выросло в персональную библиотеку для любого контента - книги, статьи, подкасты, видео, музыка, файлами или ссылками. Полгода на голом Swift 6, вечерами и выходными.

Приложение уже можно ставить и ломать - оно в бете, включая рабочий CarPlay. Под катом: что оно умеет, как устроено внутри и какие цифры получились на реальном железе.

Читать далее

Ускорение инференса энкодерной guard‑модели: TensorRT, Triton, vLLM, Ray Serve

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели6.3K

Когда в системе есть узел между LLM и пользователем его скорость также важна, как и скорость самой LLM. Когда этот узел сам является моделью (и иногда даже — тоже LLM) — задача ускорения становится совсем веселой и её нужно уметь решать разными способами. В этой работе я опишу процесс ускорения guardrail‑модели — узла, которые проверяет — нет ли на входе или выходе опасного контента.

Guard стоит на входе/выходе LLM‑приложения. В статье речь про небольшую модель — чуть больше 0.5 Gb. Но она вызывается дважды за один ход диалога, и сначала пользователь ждет, пока guard проверит его запрос перед отправкой в LLM, затем — пока он проверит сгенерированный ответ перед выдачей пользователю.

Моей задачей было ускорить такую небольшую guard‑модель (Locustfile, базовые benchmark‑конфиги и инструкции по воспроизведению экспериментов в репо). Я потестила пять инструментов: TensorRT, NVIDIA Triton, vLLM, Ray Serve и отдельно — переход бэкбона на Flash DeBERTa.

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

Читать далее

ИИ-агенты в трейдинге: от рекомендаций к автономному управлению. Разбор тренда, рисков и архитектурных решений

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.1K

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

Читать далее

Как я делал базу знаний для ИИ‑агента и тестировал её на собственных медицинских анализах

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

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

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

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

Читать далее

OWASP LLM10: Unbounded Consumption. Тестируем современные языковые модели на ресурсоёмких промптах

Время на прочтение11 мин
Охват и читатели10K

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

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

Именно этой проблеме посвящена категория LLM10: Unbounded Consumption в рейтинге OWASP Top 10 for LLM Applications. В отличие от классических атак типа Prompt Injection или Data Leakage, здесь злоумышленник воздействует не на логику приложения, а на его вычислительные ресурсы. По сути, речь идёт об адаптации идеи Denial of Service (DoS) к эпохе генеративного искусственного интеллекта.

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

Читать далее

Я ошибался: бенчмарк 23 ASR-нейросетей для русской айтишной диктовки

Уровень сложностиСредний
Время на прочтение60 мин
Охват и читатели6.4K

В марте я советовал Whisper Large v3 для голосовой диктовки и ошибался дважды: в методе (выбирал модель «на ощупь») и в самой модели.

Пересобрал всё по-научному: 23 ASR-модели в 60+ конфигурациях, больше 100 000 прогонов на русско-английском IT-корпусе, 120+ часов инференса на одной RTX 5070 Ti. Мерил не только WER, но и сохранение английских терминов латиницей и пунктуацию.

Внутри — полный лидерборд, разбор каждого сюрприза, вклад тюнинга и промптов, закрытые модели vs открытые и инструкция, как поставить победителя за 10 минут.

Читать далее

Russian Spelling Dictionary 1.0.5: Экспансия

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

Когда я выпускал Russian Spelling Dictionary 1.0.1, задача была довольно узкой: собрать пригодный для повседневной работы русский орфографический словарь и доставить его пользователю. В предыдущей статье я рассказывал, как появился первый выпуск. Повторять тот рассказ не буду.

Сейчас интереснее посмотреть на весь путь от 1.0.1 до 1.0.5. За четыре выпуска словарь вырос с 179 956 до 550 291 записи. Для CSpell теперь подготовлено 2 342 788 словоформ. Появились отдельные пакеты для Mozilla, LibreOffice и других программ с поддержкой Hunspell. Наконец, в 1.0.5 удалось заметно улучшить подсказки, не изменив распознавание слов.

Поэтому «экспансия» в заголовке — не только про размер. Словарь расширился сразу в трёх направлениях: по составу, по качеству проверки и по числу программ, в которых его можно использовать.

Читать далее

Как приручить LLM

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

- Пробовали сделать цифрового сотрудника на LLM?
- У вас получилось?
- Долго старались?
- Насколько он качественный?
- Сколько он стоит в обслуживании?
Очень много вопросов возникает к технологии ведения диалогов нейросетями.

Читать далее

Промпт, RAG или дообучение: что реально выучит вашу LLM

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

Локальная модель может уверенно отвечать на общие вопросы и так же уверенно ошибаться в вашем домене.

В статье сравнили на одной задаче промпт с контекстом, RAG и дообучение методом QLoRA, замерили результат на 30 вопросах и разобрали, где каждый подход действительно полезен, а где создаёт новый класс проблем.

Читать далее

Ближайшие события

DeepSeek 0731 на DGX Spark: разгоняю до 68 tok/s и разбираюсь, почему у автора карточки 57

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

TL;DR

Железо: 2× NVIDIA DGX Spark (GB10, SM121), 128 GB unified номинально и около 122 GiB видимых системе на ноду, QSFP 200G / RoCEv2, TP=2, драйвер 580.159.03.

Основную часть расхождения объяснила смена runtime‑образа. Переход со сборки на базе vLLM 0.21.1 на образ с 0.25.2 дал около +22% на том же чекпоинте. Конкретный коммит или компонент я не изолировал: поменялся весь пакет.

Механика неочевидная: новый образ снизил расчётную частоту verification‑шагов примерно на 17%, но поднял число выходных токенов за шаг с 3.27 до 4.80.

Главная находка в конфиге: --moe-backend flashinfer_b12x не выбирается режимом auto. Явное включение дало +13.3% по среднему пяти прогонов на card‑like профиле (59.7 против 67.6) и +16.6% по медиане.

B12X работает иначе: поднимает SSE‑derived частоту verification‑шагов на 16–18%, при этом выходные токены за шаг снижаются примерно на 2.5% в обоих профилях. Итоговый прирост клиентской decode‑метрики составил 13.3–14.6% по средним и 15.6–16.6% по медианам.

Итог: 67.6 tok/s на одиночном запросе, 260 tok/s суммарно на 12 параллельных запросов.

Отрицательные результаты, погрешности и границы применимости вынесены в отдельные разделы.

Читать далее

«Скопируй промпт дважды и получишь +76%». Я решил проверить

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

Всем привет. В декабре по всем AI-каналам пролетел лайфхак, который звучал как развод: продублируй свой запрос к нейросети, буквально Ctrl+C, Ctrl+V в одном сообщении, и точность вырастет. В пересказах фигурировали «+76%» и ссылка на Google Research, что придавало всей этой истории солидности. Трюк выглядел как-то настораживающе и при том вроде не сложным для проверки. Короче, я потратил $1.48, прогнал 3360 запросов и теперь знаю ответ. Он оказался интереснее, чем «работает || не работает».

Читать далее

Мы опубликовали стабильный, быстрый, качественный и доступный синтез ещё для 29 языков России

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели16K

В прошлый раз у нас получилось покрыть 20 самых популярных языков России и СНГ с рядом оговорок. Но основным недостатком моделей было то, что значительная группа языков была вообще не покрыта, в основном многочисленные языки Кавказа, Дагестана и Чечни. С лингвистической точки зрения из популярных крупных языковых групп были не покрыты абхазо-адыгские и нахско-дагестанские языки.

Что сделали в этот раз?

Что общего у Таро, Viterbi и LLM: как алгоритм выбирает один смысл из многих

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

Можно ли описать интерпретацию Таро как задачу поиска лучшего смыслового пути? Разбираю учебную вероятностную модель: от локального greedy к точному Viterbi, beam search, фактор-графам, CRF и LLM reranking. На контрпримере показываю, почему лучший локальный выбор проигрывает глобальному, а также где заканчивается поиск структуры и начинается генерация текста.

Читать разбор целиком

Мой агент Ouroboros побил Codex с Claude Code на Terminal-Bench, OSWorld и CL-Bench. Он написал себя сам

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

Я долго думал, как мог бы выглядеть идеальный универсальный агент. Такой Jarvis из «Железного человека». И довольно быстро понял: фиг я смогу такого сделать. Зато можно попробовать дать агенту возможность придумать и построить себя самого в автономном цикле эволюции.

Так появился Уроборос: кривой косой агентный луп на чистом Python с доступом к git, правом переписывать свой рантайм, безопасным рестартом на новой версии и откатом к прошлой, если всё сломалось. Я поселил первую версию в Google Colab, чтобы он не убил мне комп самоэволюцией (сервера Google не жалко, у них хорошая изоляция), дал бюджет и автономность, и понеслось.

С тех пор прошло несколько месяцев. Когда я последний раз рассказывал про него публично, это был ещё милый desktop‑агент, который рисовал котиков, зависал на ютюбе и менял обои. Сейчас на Terminal‑Bench 2.1, CL‑Bench и OSWorld у него SOTA результаты, а на GAIA и SWE‑Pro получается паритет с Claude Code и Codex. Сам бы я такой харнесс не придумал, а вот автономная эволюция и куча сожжённых денег на токены — да.

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

Читать далее

Внешний бенчмарк причинного recall: проверяем память ИИ-ассистента на YDB Яндекса

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели9.5K

Коротко, о чём речь, — для тех, кто пришёл по слову «Яндекс» и предыстории не знает. Когда ИИ-ассистент помогает чинить баг, самое ценное — не сочинить ответ с нуля, а вспомнить: похожий симптом уже разбирали, вот issue, вот причина, вот PR с фиксом. Вопрос ровно один — достаёт ли ассистент это прошлое решение из памяти. Мы это померили на своём корпусе тикетов и получили две цифры. Обычный семантический поиск (по смыслу слов) находит нужный прошлый фикс по симптому лишь в 38% случаев; обход явных причинных связей «issue → закрывший его PR» — в 87%. То есть сходство слов упирается в треть, а явные связи поднимают recall в разы.

Читать далее

Шесть лет разработки Telegram-бота: от токенайзера до LLM, RAG и векторных баз

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

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

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

Как бот научился помнить
1
23 ...