2,119 karma · joined September 1, 2018
More & contact: https://omarkama.li/about
I'm always happy to chat so hit me up!
I shipped a similar abstraction for llms a bit over a week ago:
https://github.com/omarkamali/borgllm
pip install borgllm
I focused on making it Langchain compatible so you could drop it in as a replacement. And it offers virtual providers for automatic fallback when you reach rate limits and so on.
There are 341 languages in there and 205GB of data, with English alone making up 24GB! My perspective on Simple English Wikipedia (from the OP), it's decent but the content tends to be shallow and imprecise.
0: https://omarkama.li/blog/wikipedia-monthly-fresh-clean-dumps...
I've been developing a lot of LLM-based apps recently, and I got tired of writing the same glue code each time to switch providers, find the base URL again, or other strategies to deal with provider idiosyncracies, so I extracted out that code into an MIT licensed package named BorgLLM.
It's a zero-config Langchain client to 100s of providers & models, it has automatic API key rotation, rate-limit fallback strategies and more concerns you won't have to put in your application code...
One liner to rule them all (you can pick any model or any provider):
llm = create_llm("anthropic:claude-sonnet-4")
And my application code is finally clean, focusing on the domain. It's not a very complex package yet it might be one of the biggest time savers I added to my development workflow.
I hope you'll find it useful. Questions and feedback points are most welcome!
It could also explain the lower votes, "AI" or "GPT" being more generic terms is correlated in my personal experience with lower quality.
I've been developing a lot of LLM-based apps recently, and I got tired of writing the same glue code each time to switch providers, find the base URL again, or other strategies to deal with provider idiosyncracies, so I extracted out that code into a package named BorgLLM.
It's a zero-config Langchain client to 100s of providers & models, it has automatic API key rotation, rate-limit fallback strategies and more concerns you won't have to put in your application code...
One liner to rule them all (you can pick any model or any provider):
llm = create_llm("anthropic:claude-sonnet-4")
And my application code is finally clean, focusing on the domain. It's not a very complex package yet it might be one of the biggest time savers I added to my development workflow.
I hope you'll find it useful. Questions and feedback points are most welcome!
The thing is, we’ve been retrofitting software made for humans for machines, which creates unnecessary complications. It’s not about model capability, which is already there for most processes I have tested, it’s because systems designed for people are confusing to AI, do not fit their mental model, and making the proposition of relying on agents operating them a pipe dream from a reliability or success-rate perspective.
This led me to a realization: as agentic AI improves, companies need to be fully AI-native or lose to their more innovative competitors. Their edge will be granting AI agents access to their systems, or rather, leveraging systems that make life easy for their agents. So, focusing on greenfield SaaS projects/companies, I've been spending the last few weeks crafting building blocks for small to medium-sized businesses who want to be AI-native from the get-go. What began as an API-friendly ERP evolved into something much bigger, for example, cursor-like capabilities over multiple types of data (think semantic search on your codebase, but for any business data), or custom deep-search into the documentation of a product to answer a user question.
Now, an early version is powering my products, slashing implementation time by over 90%. I can launch a new product in hours supported by several internal agents, and my next focus is to possibly ship the first user-facing batch of agents this month to support these SaaS operations. A bit early to share something more concrete, but I hope by the next HN thread I will!
Happy to jam about these topics and the future of the agentic-driven economy, so feel free to hit me up!
One way to think of it is that any little bias or undesirable path in your teacher model will be amplified in the resulting data and is likely to become over represented in the student model.
For reference I am getting ~40 output tok/s on a 4090 (450W) with Qwen3 32B and a context window of 4096.
> Ultimately, as the user note aptly put it, the decision largely boils down to how much context you anticipate using regularly.
Hah. (emphasis mine)
This is my biggest pet-peeve with serverless GPU. 19 seconds is a horrible latency from the user’s perspective and that’s a best case scenario.
If this is the best one of the most experienced teams in the world can do, with a small 4B model, then it feels like serverless is really restricted to non-interactive use cases.
- FP16: 2x 8GB = 16GB
- Q8: 1x 8GB
- Q4: 0.5x 8GB = 4GB
It doesn't 100% neatly map like this but this gives you a rough measure. In top of this you need some more memory depending on the context length and some other stuff.
Rationale for the calculation above: A model is basically a billions of variables with a floating number value. So the size of a model roughly maps to number of variables (weights) x word-precision of each variable (4, 8, 16bits..)
You don't have to quantize all layers to the same precision this is why sometimes you see fractional quantizations like 1.58bits.
An alternative is to use serverless GPU or LLM providers which abstract some of this for you, albeit at a higher cost and slow starts when you first use your model for some time.
I'm also curious how usable are simpler vision models such as Florence in case you explored this direction.
https://www.hackster.io/news/sakana-ai-claims-its-ai-cuda-en...
https://techcrunch.com/2025/02/21/sakana-walks-back-claims-t...
> Q: What is the founding principle of Mills GUT-CP??