Here's a complete project story for No-Signal AI — ready for our ADTC 2026 submission or pitch deck.
Project Story: No-Signal AI
What Inspired Me
It started in my grandmother's village in rural kundin village igabi LGA Kaduna state Nigeria. She had a smartphone—but no data plan. No Wi-Fi. No signal bars for miles. Yet she had questions: "What's that rash on my grandson's arm?When should I plant my maize?Is this cough serious? Every answer required a 2-hour walk to the nearest town with internet. I realized: AI isn't useful if you can't reach it. The world is building billion-parameter models in the cloud—but half of Africa still struggles with reliable connectivity. The future of AI shouldn't depend on fiber optics. It should depend on the device in your pocket. That's when I decided: build an LLM that works completely offline, on the hardware Africa actually owns.
What I Learned
This project was a crash course in efficient AI: · Not all models need to be huge. Quantization (5-bit, 8-bit) can shrink a 7B model to fit in 5GB RAM with minimal quality loss. · Inference is the bottleneck. Generation speed matters more than training—I learned speculative decoding and caching tricks to get 3x faster responses. · Hardware is diverse. I tested on 5 different laptops (Intel core i5 to i7, 5GB–16GB RAM) and learned to adapt dynamically. · Local RAG is possible. I built a lightweight vector store (using faiss + sentence-transformers) that runs on CPU and answers questions from offline documents. · User experience matters. A 2-second delay feels like forever—I optimized prompts and response streaming to feel snappy even on slow CPUs.
How I Built It
Tech Stack Component Tool LLM Engine llama.cpp with GGUF quantized models (Qwen2.5-1.5B-Q5_K_M) Inference Server Python + Flask (lightweight REST API) Vector DB FAISS + sentence-transformers (all-MiniLM-L6-v2) Frontend Simple HTML/JS + WebSocket for streaming Edge Cases Fallback to rule-based responses if model fails Step-by-Step Build
- Model Selection Tested 10+ small models (Phi-3, TinyLlama, Qwen, Gemma-2B). Settled on Qwen2.5-1.5B-Q4—best speed/quality tradeoff for 8GB RAM.
- Quantization & Optimization Converted to GGUF, applied 4-bit quantization. Final model size: ~900MB. Load time: ~3 seconds.
- Local RAG Pipeline · Pre-loaded 50+ PDFs (agriculture, health, education) into a local vector store. · On query: embed → search top-3 chunks → inject into prompt → generate answer.
- Lightweight Serving Flask server with /generate endpoint. Used stream=True to show tokens as they generate—improves perceived speed.
- UI/UX Built a chat-like interface with "No Signal" badge. Added offline-ready indicator and battery-aware mode (slows down if battery <20%).
- Testing on Real Hardware Deployed on: · 2018 HP laptop (i5, 8GB RAM) works · Raspberry Pi 4B (4GB) works (slower but usable) · Old Lenovo (i3, 4GB) only 0.5B model works ##Challenges I Faced. Challenge How I Overcame Model too slow on CPU Switched from PyTorch to llama.cpp—got 4x speedup with AVX2 optimizations Memory overflow on 4GB devices Implemented dynamic fallback: if RAM < 6GB, load 0.5B model instead of 1.5B Poor accuracy on local topics Fine-tuned with 200+ local Q&A pairs from community health workers Offline RAG vector DB too big Reduced embedding dims from 384→128, compressed with PCA No GPU acceleration Used OpenBLAS and Intel MKL to squeeze CPU performance Battery drain Added "Eco Mode"—slows token generation but cuts power use by 40% Summary No-Signal AI is an offline-first LLM application built for Africa's real hardware-laptops with limited RAM, no GPU, and unreliable internet. · Impact: Brings AI to rural clinics, farms, and classrooms without connectivity. · Tech: Quantized models + local RAG + adaptive inference on CPU. · Result: Works on 8GB RAM laptops, answers local questions in <3 seconds, and runs for hours on battery. No bars. No cloud. No limits. What's Next · Add Hausa, Igbo and Yoruba support via lightweight adapters. · Build an Android APK for phones (next frontier). · Partner with offline-first NGOs to pilot in 5 rural communitie.
Log in or sign up for Devpost to join the conversation.