- BrainTools - https://www.braintools.ru -
Привет, %username%! И заголовок – не метафора. Я часто ловлю тонкий, почти на грани слышимости писк, когда работаю с LLM на своем MacBook Pro. Иногда — когда вроде бы вообще ничего не запускал. Довольно долго подозревал, что профдеформация переросла в галлюцинацию.
Оказалось — нет, это физика.
Coil whine. Катушки индуктивности и керамические конденсаторы в VRM видеокарты и БП вибрируют на частоте переключения преобразователя — магнитострикция плюс пьезоэффект. Обычно 5–15 кГц, аккурат в верхнем углу слышимого диапазона. И это не маркер дешёвого железа, скорее наоборот: в обзоре RTX 4090 [1] карты ASUS с мощными индукторами на 70A электрически лучше, но пищат заметнее собратьев на 50–55A. Чем производительнее обвязка VRM — тем громче она рассказывает о нагрузке.
Интереснее другое: почему это так заметно именно на инференсе. Потому что нагрузка тут рваная. Матричные умножения, синхронизация, снова матричные умножения. Ток скачет с периодичностью, кратной темпу генерации токенов. В r/LocalLLaMA [2] люди регулярно пишут, что по звуку карты на слух [3] определяют, генерирует модель или простаивает, а на HN [4] кто-то сравнил этот звук с озвучкой диалогов в восьмибитных играх.
Загадка «вроде бы ничего не запускал» у меня, кстати, разгадалась быстро: в headless-режиме всегда крутится LM Studio — через него Copilot в Obsidian индексирует и эмбеддит новые и отредактированные заметки. Окна на рабочем столе нет, плагин втихую уносит свежую заметку на эмбеддинг — а карта считает, и я это слышу.
Можно сказать, что писк — это налог на локальный инференс. В статье про локальную обработку аудио [5] автор прямо так и советует: если приватность не критична — идите в облачный API, «и не придётся слушать coil whine видеокарты». Облако молчит. Приватность — звенит.
И вот здесь начинается то, ради чего я это пишу.
Карта озвучивает свой рабочий цикл.
Мы годами строим наблюдаемость как дисциплину явного инструментирования. Метрика существует, потому что кто-то её экспортировал. Спан существует, потому что кто-то протащил контекст. Лог существует, потому что кто-то не поленился написать строчку. Вся наша картина системы — это то, что система сама согласилась о себе рассказать.
А писк дросселей никто не инструментировал. Это не телеметрия — это утечка. Побочный продукт физики, который случайно оказался информативным. Классический acoustic side-channel: тот самый класс атак, где по звуку процессора вытаскивали ключи RSA [6], а по звуку клавиатуры — набранный текст [7]. Только здесь сигнал сам лезет в уши без всякого злого умысла.
И он честнее любого экспортера. Метрика может врать — неправильный лейбл, сломанный скрейп, кардинальность улетела, экспортер отвалился и отдаёт последнее известное значение. Физика не врёт никогда. Ток течёт — катушка звенит. Нет тока — тишина, и её не подделаешь.
Мне нравится этот сдвиг оптики: у любой системы есть слой состояния ниже того, который она сама про себя декларирует. Обычно мы до него не дотягиваемся, потому что нет органа чувств [8]. А тут орган нашёлся: дроссель случайно попал в диапазон человеческого уха.
Проверяется объективно. Ставим, например, Spectroid [9] на телефон, подносим к корпусу, смотрим спектрограмму. Узкий пик в 5–15 кГц, синхронный с нагрузкой — вопрос закрыт, это железо, а не голова.
arecord -f cd -d 10 test.wav
sox test.wav -n spectrogram
Кстати, слышать верхушку этого диапазона — скорее про хороший слух, чем про паранойю. Многие после сорока частоты выше 12 кГц физически не слышат, так что «никто вокруг не замечает» — не аргумент.
Лечится ограничением power limit (nvidia-smi -pl), андервольтингом (в том же обзоре 4090: 900 мВ при 2600 МГц — писк почти ушёл ценой десятка FPS), заменой БП (часто пищит именно он), заливкой катушек лаком (последнее уже за счёт гарантии). Геймеры ещё лечат капом FPS через панель NVIDIA — убирает почти весь писк, потому что выравнивает тот самый рваный ритм нагрузки. На инференсе аналог — резать скорость генерации токенов, но душить модель ради тишины как-то жалко.
Оговорка: если писк ровный, постоянный и слышен при выключенном компьютере — это уже тиннитус, и это к ЛОРу, а не в тред.
И напоследок накину на вентилятор — буквально: раз железо само озвучивает свою утилизацию, может, на этом можно строить мониторинг? Микрофон у корпуса, спектрограмма, аналитика поверх, алерты по паттерну писка. Мне кажется, что нет: обычная телеметрия дешевле, точнее и масштабируется, а в серверной этот писк утонет в вое вентиляторов. Но сама идея слушать железо, а не верить тому, что оно само о себе рассказывает — красивая. Го в комменты, вдруг кто-то такое уже щупал.
Автор: jtprogru
Источник [10]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/33217
URLs in this post:
[1] обзоре RTX 4090: https://habr.com/ru/articles/930678/
[2] r/LocalLLaMA: https://www.reddit.com/r/LocalLLaMA/search/?q=coil+whine
[3] слух: http://www.braintools.ru/article/6251
[4] на HN: https://news.ycombinator.com/item?id=41325156
[5] статье про локальную обработку аудио: https://habr.com/ru/articles/884992/
[6] вытаскивали ключи RSA: https://cs-people.bu.edu/tromer/acoustic/
[7] набранный текст: https://arxiv.org/abs/2308.01074
[8] органа чувств: http://www.braintools.ru/article/9438
[9] Spectroid: https://play.google.com/store/apps/details?id=org.intoorbit.spectrum
[10] Источник: https://habr.com/ru/articles/1060510/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1060510
Нажмите здесь для печати.