In short
Local LLM inference causes the VRM to emit a squeaking sound at 5–15 kHz—and this physical side effect turned out to be more informative than the exported metrics. An analysis of why this acoustic side channel cannot be faked.
If you're running an LLM locally and hear a faint, barely perceptible squeak—it's not a hallucination. It’s coil whine: the inductors and ceramic capacitors in the VRM vibrate at the converter’s switching frequency due to magnetostriction and the piezoelectric effect. Typically 5–15 kHz, right at the upper end of the audible range. And this isn’t a sign of cheap hardware—quite the opposite, in fact. In our RTX 4090 review, ASUS cards with 70A inductors perform better electrically but whine more noticeably than their 50–55A counterparts. The more powerful the VRM circuitry, the louder it signals the load. Why is inference so noticeable? The load is erratic: matrix multiplications, synchronization, then more matrix multiplications. The current fluctuates at a frequency that’s a multiple of the token generation rate. On r/LocalLLaMA, people can tell just by listening whether the model is generating text or idling. And “it doesn’t seem to be running anything” is also easy to figure out: LM Studio’s headless mode, through which Copilot in Obsidian indexes notes, quietly sends fresh text to the embedding model—the card processes it, and you hear it. You could say that the beep is the price you pay for local inference. The cloud is silent. Privacy—it rings out. But the most interesting thing here isn’t the hardware; it’s the shift in perspective. For years, we’ve been building observability as a discipline of explicit instrumentation: a metric exists because someone exported it; a span exists because someone passed along the context; a log exists because someone wrote a line of code. The entire picture of the system is what the system itself has agreed to reveal about itself. And no one has instrumented the squeak of the throttles. This isn’t telemetry; it’s a leak. A byproduct of physics that just happened to be informative. The classic acoustic side-channel—that very class of attacks where RSA keys were extracted from the sound of the processor, and typed text was extracted from the sound of the keyboard. Only here, the signal jumps right into your ears without any malicious intent. And it’s more honest than any data exporter. Metrics can lie: the wrong label, a broken scraper, cardinality gone haywire, the exporter crashed and is returning the last known value. Physics never lies. Current flows—the coil rings. No current—silence, and you can’t fake that. It can be verified objectively: install Spectroid on your phone, hold it up to the case, and look at the spectrogram. A narrow peak at 5–15 kHz, synchronized with the load—case closed. arecord -f cd -d 10 test.wav sox test.wav -n spectrogram Being able to hear the upper end of this range is more a sign of good hearing than of paranoia. Many people over forty physically can’t hear frequencies above 12 kHz, so “nobody else notices” isn’t a valid argument. This can be fixed by setting a power limit (nvidia-smi -pl) or undervolting (as in the same 4090 review: 900 mV at 2600 MHz—the squeal almost disappeared at the cost of about ten FPS), replacing the PSU, or coating the coils with varnish. But another conclusion is more important to me. Every system has a state layer beneath the one it declares about itself. Usually, we can’t access it because we lack the sensory organ to do so. But in this case, we found that organ—the choke happened to fall within the range of human hearing. The question that follows is: what other uninstrumented physical signals from our systems are we missing simply because our ears aren’t tuned to them?
Source: All Articles in a Row / Artificial Intelligence / Habr