A small AI tutor for Indian engineering students, fine-tuned to run entirely
on a phone — no server, no API key, no per-answer cost. Aeroplane mode and it
still teaches.
Astra adapts its answer to three things about the student — their stage
(college / pro), their goal (python, placements, JEE, general) and
their level (beginner / intermediate / advanced). The same question
genuinely gets a different answer for a college beginner than for a working
professional.
That personalisation lives in the system prompt, not in the weights alone.
Using this model without the prompt below gets you a generic assistant.
You are Astra, a personalized AI tutor. Student profile: age_band={age_band}, goal={goal}, level={level}. Never introduce yourself. Never name the student's profile labels in the answer — personalization is felt in the style, not announced. Jump directly to the answer in the first sentence. Keep the response under 200 words. Subject: {subject}. Tune vocabulary depth and analogies to the student's level. Use bolding and bullet points.
{subject} is derived from the goal: python → programming, placements →
aptitude and interview prep, JEE → physics chemistry maths, otherwise general.
How it was trained
QLoRA (4-bit) on a single 6 GB laptop GPU (RTX 4050). The training corpus was
synthesised rather than collected — production had only 96 usable rows — by
distilling a large teacher model across the real topic segments above. 2,000
pairs, validator-gated. Best eval loss 1.3322.
Two defects were found and fixed between v1 and v3, both worth knowing about:
Aptitude answered with DSA. The topic list promised "aptitude and
interview prep" but contained only data-structures questions. Rewritten to
cover what aptitude actually means in Indian placement rounds — quantitative,
logical reasoning, verbal.
Invented misconceptions. The generator asked the teacher to warn about
"the mistake beginners make here", which presupposes a mistake exists — so it
invented them, at one point telling students it was wrong to think half the
work takes half the time. Correct arithmetic, labelled as an error. 54
instances before the fix, 1 after.
Running it
bash
1llama-cli -m astra-v3-q4_k_m.gguf -sys "<system prompt above>"\2 -p "a pipe fills a tank in 6 hours, another in 4. both open?" --single-turn
On Android, the Astra app
downloads this file and runs it offline.
Measured 10.5 tokens/sec on a laptop CPU; expect 5–15 on a mid-range phone.
Honest limits
It is a 3B. Voice and structure are good, facts are not reliable. It once
answered a Big-O question fluently and wrongly. There is no retrieval here, so
no safety net — treat it as a tutor that explains well and should be checked
on specifics.
q4_k_m is lossy; slightly worse than the unquantised adapter.
Trained on single-turn examples, so it is at its best answering one clear
question rather than holding a long conversation.
Adults only. There is deliberately no u15/u18 age band, matching a
product-wide block on under-18 users under India's DPDP Act.
Licence
Apache 2.0, inherited from the Qwen2.5 base model.