about
21.2× faster than llama.cpp? plus 40% memory usage reduction (arxiv.org)
43 points by helloericsf on Jun 12, 2024 | hide | past | pdf | 14 comments on HN

In plain words: It splits the model's math into neuron groups, sending the busiest to the phone's AI chip and the rest to its main processor as data loads. This runs a 47-billion-parameter model at 11.68 tokens per second, up to 27.8 times faster than the best phone systems.

Abstract · PowerInfer-2: Fast Large Language Model Inference on a Smartphone

Large language models (LLMs) on smartphones enable real-time AI assistance and privacy-preserving, offline operation. However, resource constraints of smartphones limit current deployments to small language models (SLMs), significantly compromising their capabilities. This paper introduces PowerInfer-2, a smartphone-based framework that enables fast inference for LLMs exceeding the memory capacity. The key insight is decomposing matrix operations into neuron clusters as the basic processing unit, which enables flexible scheduling and efficient I/O-computation pipelining. PowerInfer-2 leverages this neuron-cluster-based design in both computation and storage. For computation, neuron clusters with dense activations are processed on NPU, while sparse clusters use CPU. The storage engine provides a fine-grained pipeline mechanism that coordinates cluster-level computation and I/O operations, enhanced by a segmented neuron cache to reduce I/O activities. PowerInfer-2 achieves up to a 27.8x speed increase compared to state-of-the-art frameworks. PowerInfer-2 is the first system to serve a 47B LLM on a smartphone, achieving 11.68 tokens/s. Notably, these performance improvements preserve model quality with negligible accuracy degradation.

Zhenliang Xue, Yixin Song, Zeyu Mi, Xinrui Zheng, Yubin Xia, Haibo Chen
arXiv:2406.06282 · cs.LG · submitted Jun 10, 2024 · updated Dec 12, 2024
abstract · pdf · html

add comment on HN
Also discussed: Jun 2024 (1 point, 0 comments)

The speed improvement is only for models that don't entirely fit in memory, i.e. memory-starved llama.cpp degenerates to ~20x slower.

However, this scheme does reduce memory usage by 40%, meaning it allows models that are 67% bigger. It's a quality improvement, not a performance one.

> For models that fit entirely within the memory, PowerInfer-2 can achieve approximately a 40% reduction in memory usage while maintaining inference speeds comparable to llama.cpp and MLC-LLM.

The video/litepaper they linked is also a great read: https://powerinfer.ai/v2/
Truly mind-blowing to see Mixtral 47B running on a smartphone.
> TL;DR PowerInfer is a CPU/GPU LLM inference engine leveraging activation locality for your device.
So is it running on the phone or not?
From the abstract https://arxiv.org/abs/2406.06282 :

> Notably, PowerInfer-2 is the first system to serve the TurboSparse-Mixtral-47B model with a generation rate of 11.68 tokens per second on a smartphone. For models that fit entirely within the memory, PowerInfer-2 can achieve approximately a 40% reduction in memory usage while maintaining inference speeds comparable to llama.cpp and MLC-LLM

What does this do with a 40 TOPS+ NPU/TPU?

It seems like this can’t run all models, and needs custom ones trained from scratch: “ We introduce two new models: TurboSparse-Mistral-7B and TurboSparse-Mixtral-47B. These models are sparsified versions of Mistral and Mixtral […]. Notbly, our models are trained with just 150B tokens within just 0.1M dollars”.

It remains to be seen how good these custom models are.

Paper for the sparcified mixtral models

https://arxiv.org/abs/2406.05955

It's just continued pretraining to "heal" the damage caused by switching the activation functions and enforcing sparsity.

Apparently they managed to recover original performance on standardized tests after continuing pretraining with the 150B tokens. There may be some more specialized knowledge lost that was not covered by their dataset.

Agreed. custom models could be a hit or a miss.
The hyperbollocks marketingspeak in the summary paragraph put me off:

"The key insight of PowerInfer-2 is to utilize the heterogeneous computation, memory, and I/O resources in smartphones by decomposing traditional matrix computations into fine-grained neuron cluster computations. Specifically, PowerInfer-2 features a polymorphic neuron engine that adapts computational strategies for various stages of LLM inference. Additionally, it introduces segmented neuron caching and fine-grained neuron-cluster-level pipelining, which effectively minimize and conceal the overhead caused by I/O operations."

Ahem, what? Let's overload a biological construct "neuron" to imbue it with magical technopowers and then derive the rest of our BS from this. No sale.

Processes can't have children either, since, being a bunch of arithmetic, they lack genitalia. You can't kill them, because they aren't alive. They can't even sleep(1), another biological process fast arithmetic has no use for.

When will the false advertising end?!?

"Neuron" is not out of place when you're talking about software that uses neural networks...