2,119 karma · joined September 1, 2018
More & contact: https://omarkama.li/about
I'm always happy to chat so hit me up!
Side note, I am wondering if this could be used as a better way to collaborate with coding agents. "Pair with me" instead of the typical "Code for me".
Opening up automation is a double whammy for Apple:
- More savvy users are able to solve more of their problems themselves, reducing the LTV of their potentially most engaged clients who might buy less on the App Store as a result
- Some guarantees of the ecosystem crumble (banking apps don’t know anymore if it is really you who initiated that transaction, ID verification apps don’t know if that camera stream is really from your device, and plenty other things devs suddenly have to worry about)
As a final nail in the coffin, it also means that the networks that Apple sells to its _users_ are less reliable or have less guarantees as a result - you don’t know if the text you received was really sent now or scheduled in advance etc.
Of course a lot of these rules are not justified, user hostile or plain non-sensical, but what I’m trying to say is that from Apple’s perspective the consideration is not just “user owns device” but a lot of interplaying dynamics that do not seem to be in favor of empowering users.
Happy to provide test cases as well if helpful.
0: https://datatracker.ietf.org/doc/html/draft-fge-json-schema-...
On a decent CPU I found the translation to take anywhere between 15-30 seconds depending on the sentence’s length, very unnerving to me as a user.
But it’s definitely worth revisiting that. Thanks!
The technique makes sense though, but in the training data stage mostly. BART-style translation models already represent concepts in latent space regardless of the input-output language sidestepping English entirely so you have something like:
`source lang —encoded into-> latent space —decoded into—> target lang`
Works great to get translation support for arbitrary language combinations.
For the continuous training itself, yes I simply continue training the model from the last checkpoint (cosine lr scheduler). I am considering doing a full retraining at some point when I collect enough data to compare with this progressive training.
Apologies for the poor links, it takes a lot of time to work on this let alone fully document everything.
With that said while running it client-side is indeed an option, openly distributing the model is not something I would like to do, at least at this stage. Unlike the bigger projects in the NMT space, including Marian and Bergamot, I don't have any funding, and my monetization plan is to offer inference via API[0].
The learning curve is worth it imo (if you often work on documents and publications).
My goal was a google translate style multilingual translation model, and for that the BART architecture proved ultimately to be better because you benefit from cross-language transfer learning. If your model learns the meaning of "car" in language pair (A, B), and it knows it in language (B, C), then it will perform decently when you ask it to translate between A and C. It compounds very quickly the more you add language pairs.
One big limitation of BART (where LLMs become more attractive) is that it becomes extremely slow for longer sentences, and is less good at understanding and translating complex sentences.
> Any special processing needed for Arabic compared to Latin-script-based
Yes indeed, quite a lot. Especially for Moroccan Arabic which is written in both Arabic and Latin scripts (I made sure to support both and they're aligned in the model's latent space). For this I developed semantic and phonetic embedding models along the way that helped a lot. I am in the process of publishing a paper on the phonetic processing aspect, if you're interested let's stay in touch and I'll let you know when it's out.
But beyond the pre-processing and data pipeline, the model itself didn't need any special treatment besides the tokenizer.
Manual proof-reading (and data generation) was a big part of it, it's definitely not a glamorous magic process. But as I went through it I could notice patterns and wrote some tools to help.
There's a way to leverage LLMs to help with this if your language is supported (my target wasn't at the time), but I still strongly recommend a manual review part. That's really the secret sauce and no way around it if you're serious about the translation quality of your model.
Pre-rendering (as popularized by static site generators) is the additional step that increases complexity significantly, sometimes security issues too when session-protected cached pages are mistakenly served to the wrong users.
Happy to answer questions if anyone is interested in building translation models for low-resource languages, without being a GPT wrapper. A great resource for this is Marian-NMT[1] and the Opus & Tatoeba projects (beware of data quality).
* Unfortunately not functioning right now due to inference costs for the model, but I plan to launch it sometime soon.
It worked rather like a reverse shadow DOM, allowing CSS from the parent document to leak into the child, removing borders and other visual chrome that would make it distinguishable from the host, except you still had to use fixed CSS layouts and resize it with JS.
I'll give it a try!
I recently initiated the backmigration and my approach thus far however has been to take out the "administrative" part out into Rails to benefit from all the useful conventions there, but keep the "business services" in JS or Python and have the two communicate. Best of both worlds, and the potential of all of rubygems, npm and pypi combined.
As in what’s the tradeoff that is being made when relying on pipask?
Have you seen LiteLLM Gateway before? As a bonus it supports a lot of different providers.
I'm several videos in and totally hooked, thank you for sharing. This would be an amazing interactive music app in VR, both to perform and to record trippy music videos.
Results with this method are significantly more limited compared to all the power open-weight finetuning gives you (and the skillset needed in return).
And in either case don’t forget alignment and evals.
The budget question comes into play as well. Even if text is repetitively fed to the LLM, that might happen over a long enough time compared to finetuning which is a sort of capex that it is financially more accessible.
Now bear in mind, I'm a big proponent of finetuning where applicable and I try to raise awareness to the possibilities it opens. But one cannot deny RAG is a lot more accessible to teams which are likely developers / AI engineers compared to ML engineers/researchers.
I haven't evaled these tasks so YMMV. I'm exploring other possibilities as well. I suspect it might be decent at autocomplete, and it's small enough one could consider finetuning it on a codebase.