github.devotd.
NewInference & serving

andrei-borcea/liyab — a GGUF inference engine for phones

andrei-borcea/liyab is a C++20 inference engine that streams GGUF models larger than RAM from flash storage so they run on phones.

Repositoryandrei-borcea/liyab ↗

🔥 Run large open language models on your phone. A C++20 GGUF inference engine that streams models larger than RAM from flash, paces itself by the device's thermal forecast, and powers a private on-device assistant. Android · iOS · macOS · Linux.

stars
★ 7
Forks
0
Language
C++
License
Apache-2.0
Read original source ↗View on GitHub ↗

andrei-borcea/liyab is a C++20 inference engine that streams GGUF models larger than RAM from flash storage so they run on phones. Its README lists Android and iOS as well as macOS and Linux as supported targets, and the project was released under the Apache-2.0 license. This repository is a project overview about the memory and thermal constraints of phones rather than the release of a specific version.

According to the README, running a 22 GB Qwen3.6-35B-A3B on a Snapdragon 8 Elite yields about 9~10.5 tokens per second on the command line and 7.5~9.4 tokens per second in the app. The CPU uses NEON, SDOT and i8mm, and the GPU side has Metal and Vulkan backends. It reads the OS's headroom thermal forecast and adjusts clocks and token generation speed to match the device's heat. The README explains that its GGML tensor format and architecture were matched bit-for-bit with the llama.cpp reference decoder. It also offers router prefetching of the experts used in the next block and per-channel key scaling that reduces quantization error on keys.

The README states that the router's prefetch hit rate is 79~83%, and that per-channel key scaling lowered the average KL of Q8_0 keys from 0.070 to 0.0018. Builds use CMake and ctest, and speculative decoding includes a suffix draft approach along with a way to tune the number of drafts on device. However, the performance and accuracy figures are the author's own measurements, and FACTS contains no independently verified results. The verifiable evidence is therefore limited to the README, and real performance on actual devices has to be verified separately.