Привет, %username%! И заголовок – не метафора. Я часто ловлю тонкий, почти на грани слышимости писк, когда работаю с LLM на своем MacBook Pro. Иногда — когда вроде бы вообще ничего не запускал. Довольно долго подозревал, что профдеформация переросла в галлюцинацию.
Оказалось — нет, это физика.
Coil whine. Катушки индуктивности и керамические конденсаторы в VRM видеокарты и БП вибрируют на частоте переключения преобразователя — магнитострикция плюс пьезоэффект. Обычно 5–15 кГц, аккурат в верхнем углу слышимого диапазона. И это не маркер дешёвого железа, скорее наоборот: в обзоре RTX 4090 карты ASUS с мощными индукторами на 70A электрически лучше, но пищат заметнее собратьев на 50–55A. Чем производительнее обвязка VRM — тем громче она рассказывает о нагрузке.
Интереснее другое: почему это так заметно именно на инференсе. Потому что нагрузка тут рваная. Матричные умножения, синхронизация, снова матричные умножения. Ток скачет с периодичностью, кратной темпу генерации токенов. В r/LocalLLaMA люди регулярно пишут, что по звуку карты на слух определяют, генерирует модель или простаивает, а на HN кто-то сравнил этот звук с озвучкой диалогов в восьмибитных играх.
Загадка «вроде бы ничего не запускал» у меня, кстати, разгадалась быстро: в headless-режиме всегда крутится LM Studio — через него Copilot в Obsidian индексирует и эмбеддит новые и отредактированные заметки. Окна на рабочем столе нет, плагин втихую уносит свежую заметку на эмбеддинг — а карта считает, и я это слышу.
Можно сказать, что писк — это налог на локальный инференс. В статье про локальную обработку аудио автор прямо так и советует: если приватность не критична — идите в облачный API, «и не придётся слушать coil whine видеокарты». Облако молчит. Приватность — звенит.
И вот здесь начинается то, ради чего я это пишу.
Карта озвучивает свой рабочий цикл.
Мы годами строим наблюдаемость как дисциплину явного инструментирования. Метрика существует, потому что кто-то её экспортировал. Спан существует, потому что кто-то протащил контекст. Лог существует, потому что кто-то не поленился написать строчку. Вся наша картина системы — это то, что система сама согласилась о себе рассказать.
А писк дросселей никто не инструментировал. Это не телеметрия — это утечка. Побочный продукт физики, который случайно оказался информативным. Классический acoustic side-channel: тот самый класс атак, где по звуку процессора вытаскивали ключи RSA, а по звуку клавиатуры — набранный текст. Только здесь сигнал сам лезет в уши без всякого злого умысла.
И он честнее любого экспортера. Метрика может врать — неправильный лейбл, сломанный скрейп, кардинальность улетела, экспортер отвалился и отдаёт последнее известное значение. Физика не врёт никогда. Ток течёт — катушка звенит. Нет тока — тишина, и её не подделаешь.
Мне нравится этот сдвиг оптики: у любой системы есть слой состояния ниже того, который она сама про себя декларирует. Обычно мы до него не дотягиваемся, потому что нет органа чувств. А тут орган нашёлся: дроссель случайно попал в диапазон человеческого уха.
Проверяется объективно. Ставим, например, Spectroid на телефон, подносим к корпусу, смотрим спектрограмму. Узкий пик в 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 — убирает почти весь писк, потому что выравнивает тот самый рваный ритм нагрузки. На инференсе аналог — резать скорость генерации токенов, но душить модель ради тишины как-то жалко.
Оговорка: если писк ровный, постоянный и слышен при выключенном компьютере — это уже тиннитус, и это к ЛОРу, а не в тред.
И напоследок накину на вентилятор — буквально: раз железо само озвучивает свою утилизацию, может, на этом можно строить мониторинг? Микрофон у корпуса, спектрограмма, аналитика поверх, алерты по паттерну писка. Мне кажется, что нет: обычная телеметрия дешевле, точнее и масштабируется, а в серверной этот писк утонет в вое вентиляторов. Но сама идея слушать железо, а не верить тому, что оно само о себе рассказывает — красивая. Го в комменты, вдруг кто-то такое уже щупал.
