Hacker News new | ask | show | jobs
by babl-yc 394 days ago
You could probably get away with f16 or even quantize to int8 and have a much smaller model, but your point stands. Users won't be thrilled to download a 500MB model for an app either.
1 comments

haha latest Uber build for iOS 18 is 500MB... without LLM models <face-palm/>
What are they doing in there? Is it mostly visual assets?
A lot of geography-specific scenarios are compiled into the app, including regional payment SDKs. There's a great comment from a former Uber engineer explaining it here:

https://news.ycombinator.com/item?id=25376346

If I was going to guess, I'd get there's a ton of third party code for things like payment method SDKs. Every local payment method around the world is going to have its own package that you need to import, and you can't just load in new executable code on the fly after the app is installed.
You can actually do over the air updates of apps (how easy it is depends on what you wrote your app in) and not adding a new feature (like just adding an additional payment provider) would not require an update on the App Store.
You can't download only part of your app and lazy load functionality that your user probably won't use.
You could but it probably would either require a server solution like Liveview Native (you only get the code when you use it) or a pretty bad UX where you have to wait to download something first
wouldn't you want to create payment gateway and abstract away logic such that client is agnostic of payment processes and backend confirms internal payment process into external specific ones? (in worst case redirect to other apps with universal links or webview)
You're not doing it in a browser window. You're integrating against device APIs like NFC, you've got custom UI (which you probably want to be native), you've got stuff like camera access to read QR codes and OCR a credit card. Want to pay by topping up a wallet at 7-Eleven? Now you need a map to show where the nearest one is.
I think they using vector graphics and vector animations (say Rive). Rive takes order of 10s of KBs. Lottie is much larger to 100s of KBs. Even then you would need 5000 animations to reach 500MB, unlikely!

raster graphics and videos are likely not included in build

probably some unused code (libraries) got into it, it can grow quite large

or maybe some ML models?