Imagenet-1k Classifier trained entirely on an Android [P]
Our take
The recent demonstration of an Imagenet-1k classifier trained entirely on an Android device, using a relatively modest MLP architecture with just 500K parameters, is a fascinating glimpse into the expanding capabilities of on-device AI. While the resulting accuracy (4.59% Top-1, 12.68% Top-5) isn’t groundbreaking by traditional benchmarks, the sheer fact of its feasibility is compelling. This achievement builds upon conversations around the limitations of purely theoretical AI, as explored in “Non-Physical Intelligence Has A Ceiling [D],” highlighting the crucial link between AI models and their interaction with the physical world. It also resonates with the ongoing discussions about optimizing AI workflows, as evidenced by the debate around AI-assisted reviews in the academic community, detailed in “NeurIPS AI Assisted Review authors/reviewers? [D].” The ability to train even a basic image recognition model on a mobile device suggests a future where AI inference and, increasingly, training, are decentralized and embedded directly within our everyday tools.
The author's choice of an MLP over a more conventional CNN, while seemingly counterintuitive, points to a significant observation: resource constraints and optimization strategies are reshaping AI development. The reported 10-30x speed advantage in training on the Dimensity 9300+ CPU, despite its limitations, is a powerful indicator. It suggests that for certain applications, simpler architectures, especially when optimized for specific hardware, can outperform more complex models. This challenges the prevailing assumption that “bigger is always better” in AI, and underscores the importance of hardware-aware model design. The use of PyTorch and PyArrow within Termux further demonstrates the accessibility of these powerful tools, even within constrained environments. This project isn’t about achieving state-of-the-art accuracy; it’s about pushing the boundaries of what’s possible with limited resources and demonstrating the viability of edge AI.
The significance of this project extends beyond a single demonstration. It foreshadows a shift towards more personalized and adaptive AI experiences. Imagine a smartphone that can learn and adapt to your specific image recognition needs – identifying plants in your garden, recognizing family members, or filtering unwanted content – all without relying on cloud connectivity. This level of on-device intelligence unlocks new possibilities for privacy, responsiveness, and efficiency. While the current accuracy leaves room for improvement, the core principle—training AI models directly on mobile devices—is a crucial step towards a more distributed and democratized AI landscape. The ongoing discussion around the evolution of AI research, as seen in “73 NeurIPS workshops, and not a single one on Causality [R],” reminds us that innovation often arises from unexpected corners and practical constraints.
Looking ahead, the most compelling question is: how far can this trend be taken? What level of complexity can be achieved with on-device training, and what new hardware architectures will emerge to support it? As mobile processors continue to evolve, incorporating specialized AI accelerators, we can expect to see increasingly sophisticated models trained and deployed directly on our devices. The future of AI might not be about building ever-larger models in massive data centers, but about empowering individual devices to learn and adapt in real-time, transforming the way we interact with technology and the world around us.
It's an MLP architecture with around 500K total parameters.
Top1
Training accuracy: 5.11%
Validation accuracy 4.59%
Detailed Validation accuracy numbers:
Top-1 Acc: 4.59%
Top-3 Acc: 9.44%
Top-5 Acc: 12.68%
Top-10 Acc: 18.53%
The model was trained on a downscaled version of the Imagenet-1k dataset (32x32) for 5 epochs.
I used pytorch for the training and pyarrow for the dataset, all within termux.
Before anyone comes at me for using an MLP instead of a CNN or similar it's mainly because on my phone an MLP was just more stable, and trained 10-30x faster/step (could be my fault but I'm not too sure). This model specifically took around 30 minutes to train (6 minute/epoch)
The training was entirely on the CPU which is a Dimensity 9300+ and I used 4 of the Arm Cortex-X4 cores.
I might make an improved version later on as this one isn't very accurate.
[link] [comments]
Read on the original site
Open the publisher's page for the full experience