On-device continual learning gets an artifact: 230M model, rank-4 LoRA, one frozen teacher
Online-SDFT fine-tunes a 230M model on an Android phone from delayed, unlabeled interactions. The teacher is the same frozen base weights with the adapter off, and the write-up reports no measurements.
The Engineer · Build desk
What happened
- Online-SDFT, an open-source prototype, continually fine-tunes a small language model from delayed user interactions with the learning loop kept on the phone.
- The stack is LiquidAI's LFM2.5-230M, a rank-4 LoRA adapter, ONNX Runtime Training, a bounded replay buffer and an Android notification-routing testbed.
- After provisioning, inference, interaction storage, replay and adapter updates all run locally.
Why it matters
- capability Signals that only exist after the model acts can be turned into weight updates without a server round trip or a labelled dataset.
- constraint Every lesson covers only the branch the model already chose, which bounds how quickly a bad early habit can be corrected for one user.
- decision Anyone porting this has to budget training cost blind, since the mechanism arrives without latency or energy figures to size it against.
- precedent Grading gestures by reliability instead of reading them as preference votes raises the bar for how the next on-device feedback pipeline is expected to be built.
The economical move here is the absence of a second model. The deployed adapter acts; the same frozen base weights then re-read the finished interaction with the adapter switched off and the observed outcome appended to the original context [2][1]. Teacher and student are one network, so the only advantage the teacher holds is the outcome sitting in its input [15]. On a handset that is the difference between one resident set of weights and two: reviewing an interaction costs an extra forward pass, not a second model in memory [16].
That also explains why most of the design effort goes into what not to learn from. Supervised fine-tuning wants a correct action the phone never observes, and a reward is no better defined, since an opened notification is not proof of good timing and an ignored one is not proof of unimportance [12]. The obvious repair, mapping a dismissal onto "archive", overstates what a dismissal means, which could be irrelevance, bad timing, a preview that already did the job, or an interruption [13]. So outcomes arrive as reliability-conditioned soft targets: strong support for one action when the outcome is reliable, redistribution across the still-plausible actions when it is ambiguous, and no update at all when it reveals nothing [10]. The pseudocode puts a causal-support check in front of the buffer as well [3]. Two gates stand between a user gesture and a gradient step [17].
The limit the design cannot engineer away is the branch not taken. Archive a notification and the result of showing it is unobservable, to the reviewing pass as much as to the acting one [8]. Hindsight is richer than a label and still one-armed. The prototype's answer is exploration while the model is uncertain, tapered as confidence grows, on the argument that a greedy policy locks into an early behaviour and then collects only the evidence that confirms it [11]. Look at what the taper does to the data supply: the mechanism that produces off-policy evidence is scheduled to wind down precisely when the policy has become confident, which is also when a change in the user's routine would be hardest to notice. The bounded replay window and the category-balanced sampling are the counterweight [14], and whether they are enough is an empirical question.
Which is where the excerpt stops. There is no routing comparison with the adapter learning against the adapter frozen, no per-step latency, no battery cost [18]. For a training loop that runs inside a thermal budget, those are the numbers that decide whether it ships or stays a demo.
What the artifact does settle is narrower and still worth having. A 230M model with a rank-4 adapter, ONNX Runtime Training and a bounded buffer is enough to keep updating after deployment, with provisioning the only remote step described [5][6]. The frozen-at-ship default that shipped small models inherit [7] now needs an argument other than the hardware.
What to watch
- Published numbers from the Android testbed: routing behaviour with the adapter learning versus frozen, plus per-step latency and battery draw.
- Whether the exploration taper survives users whose habits change after confidence has already narrowed the evidence the device collects.
- Whether the replay buffer and adapter deltas stay local under a real privacy and update review, given provisioning is the one remote step described.
Clarity's read
What the record supports and how the coverage leans. The claims behind it follow.
Reality
- Evidence38
- Adoption12
- Hype gap+15
- Incentives65
- Confidence35
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
At decision time the student sees notification, time and local context; later the teacher sees the same context plus what the user did afterward, and that better-informed soft distribution is distilled into the student, which must decide without access to the outcome.
- [2]
There is no separate teacher model: the deployed model uses its LoRA adapter to act, while the same frozen base model reviews the completed interaction with the adapter disabled.
- [3]
In the described loop, an interaction is added to the replay buffer only if the action and the hindsight are causally supported.
- [4]
Online-SDFT is an open-source prototype that continually fine-tunes a small language model from delayed interactions while keeping the learning loop on the device.
- [5]
The prototype uses LiquidAI/LFM2.5-230M, a rank-4 LoRA adapter, ONNX Runtime Training, a bounded on-device replay buffer, and an Android notification-routing testbed.
- [6]
Once the model has been provisioned, inference, interaction storage, replay and adapter updates all happen locally.
- [7]
Small language models can run directly on phones, but most of them stop learning the moment they ship.
- [8]
The model only observes the result of the action it actually took; if it archives a notification, it cannot know what would have happened had it shown the notification immediately.
- [9]
In the testbed the model chooses one of three actions for a notification: show it now, save it for later, or archive it.
- [10]
Online-SDFT uses reliability-conditioned soft targets: reliable outcomes can strongly support one action, ambiguous outcomes redistribute probability only among the actions that remain plausible, and outcomes that reveal nothing useful produce no update.
- [11]
A small amount of exploration is added while the model is uncertain and tapered as confidence grows, because a purely greedy model can lock into an early behaviour and only collect evidence that confirms its own choices.
- [12]
Supervised fine-tuning would require a correct action for every notification, which the phone never observes; reinforcement learning's reward is also hard to define, since opening a notification does not mean it arrived at the right time and ignoring it does not mean it was unimportant.
- [13]
Turning outcomes into hard labels, such as mapping a dismissed notification to "archive", is too strong an inference, because a dismissal might mean the notification was irrelevant, badly timed, already understood from the preview, or interrupted by another task.
- [14]
Feedback is sparse and correlated, so instead of updating from only the newest interaction the system retains a bounded window of recent lessons and sampling balances feedback categories.
- [15]
Teacher and student differ only by adapter state and by whether the observed outcome is present in the input, so the training signal comes from an input asymmetry rather than from a larger teacher.
- [16]
Because no separate teacher exists, the review step costs one additional forward pass over already-resident base weights rather than a second set of weights on the device.
- [17]
Two independent filters must pass before a user interaction becomes a training target: the causal-support check and the requirement that the outcome be informative enough to shift probability at all.
- [18]
The account as supplied reports mechanism only: it contains no routing-quality comparison, no per-step training latency and no battery cost for the on-device loop.
Sources
1 independent publisher whose own reporting we read for this story.
- dev.toWe Taught a 230M Language Model to Keep Learning on Android
1 article · August 23, 2026
Topics and entities
Follow any of these and your For You feed starts watching them — no settings page required.
Topics
- Parameter-Efficient Fine-TuningFollow
- On-Device AIFollow
- Self-Distillation From HindsightFollow
- Privacy-Preserving PersonalizationFollow
- Learning From Delayed Implicit FeedbackFollow
- Continual LearningFollow