1,149 karma · joined June 5, 2016
https://github.com/kubuxu/
The benefits are similar to the reasoning behind setting up CI/CD in software. They are just more significant, as production takes a while to ramp up when it comes to complex hardware.
The approaches increase in complexity. It also allows for dataset bootstrap:
Let's say you want to classify cats by breed. You could start by embedding images and text descriptors and distance-matching the embedded descriptors to the images. This gives you a dataset that might be 90% correct; you can then clean it up, which would be easier to do than manually labelling it. Based on that improved dataset, you can train a custom embedding for the labels or a classification layer on top of the image embedding network.
It generally didn’t care about generative AI.
You take the users question either embed it directly or augment it for embedding (you can for example use LLM to extract keywords form the question), query the vector db containing the data related to the question and then feed it all of LLM as: here is question form the user and here is some data that might be related to it.
For SD1.5 4090 is able to do ~17it/s without batching and ~90-100it/s with batching.
Although these numbers might be old at this point, I looked at it ~3mo ago.
However, this raises a question: could a slightly more complex router use output layer n-1 to choose experts for layer n+1 (vs n and n+1 today)? This way, there is more time to load the needed experts for the n+1 layer.
wasi_nn is just an abstraction layers for wrappers around llama.cpp/gguf.cpp/onyx/others. It is not any more cross-platform than these libraries/apps deployed themselves, or rust apps using bindings for them.
It will be much more compute intensive, as each response will probably require multiple context windows and distillations.