Tariq Rajab

Talea

A small model that reads any financial text, from SMS and notifications to bank statements, and turns it into structured transactions. I built it for Tally.

2026 · Side project

Talea is 62 MB, runs in a few hundredths of a second on a phone, works in English and Egyptian Arabic, and nothing leaves the device. On my phone, it already reads my bank messages with no server.

One rule from the start: the model never writes a number. A model that writes text can write a wrong amount that looks right, and in a money app that's the worst mistake it can make. Talea picks the kind of message and points at words already in it. Normal code turns those words into the transaction.

Card paymentYour credit card ending 4471 was charged EGP 386.00 at TALABAT on 12/10 at 20:05. Available balance EGP 12,540.00.

Card paymentتم خصم 386.00 جنيه من بطاقتكم المنتهية بـ 4471 لدى TALABAT يوم 12/10. الرصيد المتاح 12,540.00 جنيه

The same card payment in English and in Arabic. Talea reads both.

How I built it

It started life as a search model. I took multilingual-e5-small, an open embeddings model, kept the part that reads text, put my own small heads on top, and retrained the whole thing on transactions. Then I removed the vocabulary bank messages never use, which is most of how it shrank to 62 MB. I tested five other starting points, some six times larger. None did better on my messages, and all were slower.

Why a specialised model

Most of what apps ask big language models to do is make a decision: which kind of thing is this, which tool should run. A small model built and trained for one task can make that decision on the phone in a few hundredths of a second, for free, with nothing leaving the device. If an app has several different tasks, it can have several specialised models, one for each. Talea is one of them.

Where it is going

I started with Egyptian SMS, then added UAE and UK data, then notifications. Each new kind of message helps it generalise further. The goal is any financial text, on any phone.

What I'm working on now

Talea is part of Sterling, a side project where I build specialised models that run on the phone, starting from embedding models. The next one is for meetings. The leading tools, like Granola, Fathom and Read AI, don't handle Egyptian Arabic well, so I'm building a transcription tool for Egyptian Arabic first, then an agent on top of it that can speak in the meeting, show a slide or pull up data.

Under it is a voice model in three parts: one that listens, one that speaks, and one that acts, which can be a decision model like Talea. I've started training it, with EmbeddingGemma 2 as the base.