Все новости
Ежедневный обзор

Главные новости ИИ и GPU за день

12 практических материалов об ИИ и GPU, опубликованных в нашем Telegram-канале 2026-10-02.

3 октября 2026

Главные новости ИИ и GPU за день
GPU и инфраструктура1/12

GPU: Pending — память ещё не переназначена

GPU: Pending — память ещё не переназначена

Факт: на поддерживаемых NVIDIA GPU архитектуры Ampere и новее Row Remapper заменяет ненадёжные строки памяти резервными. Но Pending: Yes означает, что переназначение ещё ожидает применения: для этого нужен GPU reset. Запись в диагностике — не подтверждение завершённого ремонта.

Три шага для проверки сервера 1. Выполните nvidia-smi -L и сохраните UUID нужной GPU. Затем выполните nvidia-smi -q -i GPU_UUID -d ROW_REMAPPER, заменив GPU_UUID на этот UUID. Команда только читает состояние. 2. Зафиксируйте время, Pending, Remapping Failure Occurred и Bank Remap Availability Histogram. Последний показывает запас резервных строк по банкам, а не свободную VRAM для модели. При Pending: Yes передайте данные администратору для согласованного обслуживания. 3. После обслуживания повторите ту же проверку на той же GPU. Убедитесь, что Pending больше не Yes; если он сохраняется или есть флаг failure, передайте логи инженеру. Не закрывайте инцидент только потому, что inference снова запускается.

Ограничение: это не инструкция немедленно делать reset. Он затрагивает работающие задачи и зависит от платформы; остановку нагрузки и восстановление выполняют по регламенту. N/A означает недоступное поле, а не отсутствие проблемы. Проверка Row Remapper не заменяет полную диагностику.

Сайт проекта: https://verum-ai.uz

Искусственный интеллект2/12

Qwen3-ASR: timestamps требуют второй модели

Qwen3-ASR: timestamps требуют второй модели

Qwen (Alibaba Cloud) выпустила Qwen3-ASR 29.01.2026: версии 0.6B и 1.7B превращают речь в текст; веса доступны под Apache-2.0. Это не новинка дня и не универсальный чат-бот.

Факт: в официальном qwen-asr для временных меток нужен отдельный Qwen3-ForcedAligner-0.6B. Одного return_time_stamps=True недостаточно. Для субтитров и перехода к слову в записи планируйте два этапа: распознавание → alignment.

Три шага 1. Проверьте язык в обоих списках поддержки. Русский есть у ASR и aligner; узбекский не заявлен ни у одного. «30 языков» ASR не означает столько же у aligner: у него 11. 2. При загрузке ASR передайте forced_aligner="Qwen/Qwen3-ForcedAligner-0.6B", затем в transcribe() — return_time_stamps=True. Проверьте start/end нескольких слов по записи. Для прямого вызова aligner заявлен вход до 5 минут; длинный материал делите на фрагменты с учётом смещений времени. 3. Если обе модели на одной GPU, измерьте общую пиковую VRAM при нужных dtype, batch и длительности аудио. Начните с batch=1 и увеличивайте после замера. Размер ASR-весов — не весь бюджет: aligner тоже занимает память.

Ограничение: по текущему README streaming в qwen-asr доступен только через vLLM и не возвращает timestamps. Для финальных субтитров нужен отдельный offline-проход; не обещайте точные метки прямо из этого streaming API.

Сайт проекта: https://verum-ai.uz

Искусственный интеллект3/12

ИИ написал функцию — откуда взялись старые записи?

ИИ написал функцию — откуда взялись старые записи?

Факт: в Python default argument вычисляется один раз при определении функции. Если ИИ написал def add(event, events=[]): и внутри вызывает events.append(event), вызовы без второго аргумента изменяют один общий список. Следующий запрос может получить записи предыдущего.

Как проверить и исправить: 1. Попросите ИИ найти изменяемые defaults: [], {}, set(). Уточните: каждый вызов должен начинать с пустого контейнера или накопление задумано? 2. Для независимых вызовов используйте: def add(event, events=None): if events is None: events = [] events.append(event) return events 3. Запустите в одном процессе add("A"), затем add("B"): ожидайте отдельно ["A"] и ["B"], а не ["A", "B"] во втором результате. Отдельно проверьте явно переданный пустой список: он должен сохранить свою идентичность и получить запись.

Готовый prompt: Проверь mutable default arguments в этом Python-коде. Убери случайное накопление между вызовами, сохрани изменение явно переданного списка. Выполни тест двух последовательных вызовов и тест с внешним пустым списком. Покажи реальные результаты.

Ловушка: events = events or [] заменяет и явно переданный пустой список. Используйте is None. Общий cache может быть намеренным — не меняйте контракт вслепую.

Каталог GPU-конфигураций: https://verum-ai.uz

GPU и инфраструктура4/12

CUDA: memcheck нашёл ошибку, а CI зелёный?

CUDA: memcheck нашёл ошибку, а CI зелёный?

Факт: у NVIDIA Compute Sanitizer параметр --error-exitcode по умолчанию равен 0. Если само приложение завершилось успешно, инструмент может найти ошибки и всё равно вернуть нулевой код. CI, проверяющий только exit code, пропустит такой дефект.

Зачем: при проверке собственного CUDA kernel или extension важно не просто увидеть ошибку в логе, а остановить выпуск. memcheck обнаруживает, в частности, обращения за границы памяти и неверно выровненные обращения.

Три шага: 1. Подготовьте небольшой воспроизводимый тест на GPU с совместимым CUDA Toolkit, в который входит Compute Sanitizer. При сборке своего CUDA-кода добавьте -lineinfo, чтобы отчёт мог указывать строки исходника. 2. В Linux запустите тест с явным ненулевым кодом ошибки: compute-sanitizer --tool memcheck --error-exitcode 1 ./cuda_test Здесь ./cuda_test — ваше тестовое приложение. Сохраните вывод и передайте exit code в CI без подавления ошибок. 3. На изолированном тестовом примере с известным дефектом проверьте, что CI действительно становится красным. Затем исправьте дефект и повторите проверку. Это проверяет и код, и настройку самого CI.

Ловушка: чистый memcheck не доказывает отсутствие data races или ошибок синхронизации: для них есть racecheck и synccheck. Проверяются выполненные пути; под sanitizer не измеряйте production throughput. Это диагностика программы, не сертификат исправности GPU.

Сайт проекта: https://verum-ai.uz

Искусственный интеллект5/12

Qwen3-Omni: не озвучивать ≠ выгрузить голосовой модуль

Qwen3-Omni: не озвучивать ≠ выгрузить голосовой модуль

Qwen выпустила Qwen3-Omni 22 сентября 2025 года. Это не новинка дня, а полезная настройка открытой модели Qwen3-Omni-30B-A3B-Instruct под Apache 2.0: она принимает текст, изображения, аудио и видео, отвечает текстом и голосом.

Факт: в Transformers флаг return_audio=False отключает голосовой ответ для запроса. А model.disable_talker() удаляет из модели Talker и Code2Wav — модули генерации речи. Понимание входящего аудио сохраняется. Это разные способы экономии, не взаимозаменяемые флаги.

Три шага: 1. Для сервиса расшифровок или анализа видео решите, нужен ли голосовой ответ вообще. Если иногда нужен — оставьте модули и задавайте return_audio=False только для текстовых ответов. 2. Если всегда нужен только текст, после загрузки модели через Qwen3OmniMoeForConditionalGeneration вызовите: model.disable_talker() При генерации задавайте return_audio=False. Это рецепт для Transformers, не команда vLLM. 3. Проверьте тот же короткий аудиофайл до и после изменения: текстовый ответ должен сохраниться. Сравните занятую tensor-память и peak VRAM при одинаковых dtype, batch и длине входа, прежде чем выбирать GPU.

Ловушка: model card указывает экономию около 10 GB, но это не универсальная гарантия для любой quantization и размещения весов. Вызов после загрузки не спасёт от OOM, уже случившегося при загрузке. И отключённый Talker нельзя вернуть одним return_audio=True.

Сайт проекта: https://verum-ai.uz

Искусственный интеллект6/12

ИИ посчитал заявки — или только заполненные поля?

ИИ посчитал заявки — или только заполненные поля?

Факт: в SQLite COUNT(amount) считает строки, где amount не NULL, а COUNT(*) — все строки группы. Если попросить ИИ «число заявок», он может незаметно подменить метрику числом указанных сумм. Отчёт занизит нагрузку.

Три шага: 1. Зафиксируйте единицу: одна строка tickets — одна заявка. Попросите отдельно показать все заявки, строки с суммой и строки с NULL. 2. Для этой таблицы без JOIN выполните: SELECT COUNT(*) AS total, COUNT(amount) AS filled, COUNT(*)-COUNT(amount) AS missing FROM tickets; 3. Проверьте на трёх заявках с amount = 100, NULL и 0. Результат: total=3, filled=2, missing=1. Пример реально выполнен в SQLite. Нулевая сумма считается заполненной, не пропуском.

Готовый prompt: Проверь SQL-отчёт: единица — одна заявка, не заполненное поле. Раздели общее число строк, non-NULL amount и NULL amount. Покажи SQL и фактический результат теста на 100, NULL, 0. Данные не изменяй. Без выполнения не называй результат проверенным.

Ловушка: COUNT(*) считает строки уже после WHERE и JOIN, а не уникальные заявки автоматически. Дубли после JOIN завысят итог. Пустая строка в SQLite — тоже не NULL; правила очистки задавайте отдельно.

Сайт проекта: https://verum-ai.uz

GPU и инфраструктура7/12

VRAM свободна, но второй процесс не запускается?

VRAM свободна, но второй процесс не запускается?

Факт: NVIDIA Compute Mode управляет допуском CUDA contexts, а не объёмом памяти. В режиме Exclusive Process на GPU разрешён только один context; Prohibited запрещает их вообще. Поэтому свободная VRAM ещё не означает, что можно запустить второй независимый CUDA-процесс.

Зачем: прежде чем уменьшать модель или арендовать более ёмкую GPU, проверьте, не упёрлась ли задача в режим доступа.

Три шага: 1. Выполните nvidia-smi -L и выберите нужную GPU. В командах ниже замените 0 на её индекс. 2. Прочитайте nvidia-smi -q -i 0: найдите именно Compute Mode, не GPU Operation Mode. Затем nvidia-smi -i 0 покажет таблицу процессов — проверьте, кто уже использует устройство. 3. Если включён Exclusive Process и GPU занята, согласуйте очередь или другую GPU с администратором. При Prohibited уточните политику доступа. Это не исправляется quantization.

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

Схема на картинке — концептуальная иллюстрация, не устройство GPU. Verum AI: https://verum-ai.uz Источник: https://docs.nvidia.com/deploy/nvidia-smi/ https://docs.nvidia.com/deploy/mps/when-to-use-mps.html

Искусственный интеллект8/12

Ministral 3 14B: длинный скриншот лучше разделить

Ministral 3 14B: длинный скриншот лучше разделить

Mistral AI выпустила семейство Ministral 3 02.12.2025. Разбираем не новинку дня, а настройку Ministral-3-14B-Instruct-2512: открытые FP8-веса под Apache 2.0, текст и изображения на входе, текст на выходе, context до 256K tokens.

Факт: model card рекомендует для vision изображения с пропорциями около 1:1 и советует обрезать слишком узкие или широкие. Это рекомендация, не жёсткий запрет других форматов. Прежде чем менять GPU из-за плохого чтения длинного скриншота, проверьте подготовку входа.

Три шага: 1. Сохраните оригинал. Разделите длинный скриншот на близкие к квадрату фрагменты с небольшим перекрытием. Не растягивайте его в квадрат: буквы и геометрия исказятся. Это наш способ применить рекомендацию разработчика. 2. Дайте фрагменты по порядку. Просите вернуть значение вместе с именем фрагмента и видимым заголовком поля; нечитаемое — отметить, не угадывать. Сверьте результат с оригиналом и уберите дубли из перекрытий. 3. Сравните исходный скриншот и фрагменты на одной задаче: ошибки, задержка, peak VRAM. Зафиксируйте runtime, precision, batch и лимит ответа. Несколько изображений не гарантируют экономию GPU-памяти.

Ловушка: разрез может отделить строку от заголовка таблицы. Сохраняйте нужный контекст рядом с фрагментом. 256K context — не гарантия точного OCR и не обещание вместить любой набор изображений в вашу VRAM.

Сайт проекта: https://verum-ai.uz

Искусственный интеллект9/12

ИИ сделал копию настроек — почему изменился оригинал?

ИИ сделал копию настроек — почему изменился оригинал?

Факт: Python dict.copy() создаёт shallow copy: внешний словарь новый, но вложенные изменяемые объекты остаются общими. Если ИИ меняет вложенные настройки «в копии», он может испортить исходный config и следующий эксперимент.

Три шага: 1. Попросите ИИ показать, какие вложенные dict/list будут изменяться. draft = original вообще не создаёт копию; original.copy() не отделяет вложенные объекты. 2. Для небольшого config из обычных dict/list и простых значений создайте отдельный черновик: from copy import deepcopy original = {"limits": {"tokens": 100}} draft = deepcopy(original) draft["limits"]["tokens"] = 200 3. До применения настроек проверьте обе стороны: в original должно остаться 100, в draft — стать 200. Повторите тест с original.copy(): original тоже станет 200. Этот пример реально выполнен в Python.

Готовый prompt: Измени только черновик этого вложенного config. Покажи общие ссылки и выбери способ копирования. Выполни тест: изменение вложенного поля черновика не меняет оригинал. Покажи фактические значения до и после; без запуска не называй тест пройденным.

Ограничение: не применяйте deepcopy ко всему подряд: он может скопировать лишнее, а файлы и sockets так не дублируются. Для больших объектов лучше явно копировать нужную ветку. Копия config не изолирует внешние API-действия.

Сайт проекта: https://verum-ai.uz

GPU и инфраструктура10/12

BAR1 Free — не дополнительная VRAM

BAR1 Free — не дополнительная VRAM

Факт: в nvidia-smi раздел BAR1 описывает область отображения GPU-памяти: через неё CPU или другие PCIe-устройства могут обращаться к framebuffer (FB). Это не второй запас памяти для весов LLM. Складывать FB Free и BAR1 Free при выборе GPU нельзя.

Зачем: большое свободное значение BAR1 не означает, что модель поместится. А маленькое само по себе не доказывает причину CUDA OOM.

Три шага: 1. Выполните nvidia-smi -L, выберите нужную GPU и скопируйте её UUID. Затем выполните nvidia-smi -q -i GPU_UUID, заменив GPU_UUID на скопированное значение. Команды только читают состояние. 2. В отчёте разделяйте FB Memory Usage и BAR1 Memory Usage. Для первичной оценки вместимости весов смотрите FB; BAR1 учитывайте отдельно при диагностике доступа к памяти через PCIe. Не суммируйте их Total или Free. 3. Проверьте реальный inference с нужными context и batch. Запишите peak GPU memory средствами runtime: кроме весов нужны KV cache и рабочие buffers. Сравнивайте одинаковые precision и настройки, а не только размер файла модели.

Ловушка: снимок Free не гарантирует запас на пике нагрузки. N/A означает неподдерживаемое поле, а не нулевое потребление. Изменение BAR1 не добавляет физическую VRAM.

Сайт проекта: https://verum-ai.uz

Искусственный интеллект11/12

GLM-OCR: перенесите layout на CPU, а не всю модель

GLM-OCR: перенесите layout на CPU, а не всю модель

GLM-OCR от Z.ai — мультимодальная OCR-модель 2026 года на 0.9B параметров: изображения документов → текст, таблицы и формулы. Веса доступны под MIT. Это разбор существующей модели, не анонс нового релиза.

Факт: self-hosted SDK использует отдельную PP-DocLayoutV3 для поиска областей страницы. Флаг --layout-device cpu переносит на CPU именно эту стадию, а не GLM-OCR. Так можно освободить GPU от layout-модели, оставив распознавание на GPU.

Три шага: 1. Установите glmocr[selfhosted] в отдельном окружении и запустите GLM-OCR через vLLM или SGLang по официальному README. В config.yaml задайте pipeline.maas.enabled: false, адрес и порт своего OCR service. Это локальный pipeline, не облачный MaaS.

2. Для уже настроенного service проверьте одну страницу: glmocr parse page.png --layout-device cpu Сначала используйте обезличенный документ с таблицей и несколькими колонками. Проверьте порядок блоков и содержимое ячеек.

3. Сравните с layout на GPU: тот же файл, BF16, одинаковые batch и concurrency. Измерьте peak VRAM, загрузку CPU и полное время обработки. Экономия GPU-памяти может обернуться CPU bottleneck; ускорение не гарантировано.

Ограничение: 0.9B — размер OCR-модели, не бюджет памяти всего pipeline. SDK и layout-компонент используют Apache 2.0; лицензии проверяйте вместе. Это способ распределить inference, не оценка памяти для fine-tuning.

Сайт проекта: https://verum-ai.uz

Искусственный интеллект12/12

ИИ прочитал Excel — но пересчитал ли формулы?

ИИ прочитал Excel — но пересчитал ли формулы?

Факт: openpyxl не вычисляет формулы. При data_only=True он читает сохранённый результат, а не пересчитывает ячейку. Такой кэш может устареть или отсутствовать. ИИ рискует построить отчёт по старым итогам либо принять отсутствие результата за ноль.

Три шага: 1. Попросите ИИ прочитать файл дважды: с data_only=False для формул и с data_only=True для кэша. Сопоставлять нужно по имени листа и адресу ячейки. 2. Выведите таблицу «лист → ячейка → формула → сохранённое значение». В локальном тесте openpyxl 3.1.5 записал =SUM(1,1), но после чтения с data_only=True вернул None, не 2. Это отсутствие кэша, не нулевой итог. 3. Для актуального отчёта пересчитайте доверенную копию в Excel/LibreOffice, сохраните и прочитайте заново. Проверьте ключевые итоги по исходным данным. Не включайте макросы и внешние подключения ради пересчёта незнакомого файла.

Готовый prompt: Проверь формулы и их cached values в этом XLSX через openpyxl. Покажи лист, адрес, формулу и кэш. Не заменяй отсутствующий результат нулём. Не называй кэш актуальным без пересчёта. Исходный файл не изменяй.

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

Сайт проекта: https://verum-ai.uz