I’ve recently played with the idea of self hosting a LLM. I am aware that it will not reach GPT4 levels, but beeing free from restraining prompts with confidential data is very nice tool for me to have.
Has anyone got experience with this? Any recommendations? I have downloaded the full Reddit dataset so I could retrain the model on this one as selected communities provide immense value and knowledge (hehe this is exactly what reddit, twitter etc. are trying to avoid…)
The best/easiest way to get started with a self-hosted LLM is to check out this repo:
https://github.com/oobabooga/text-generation-webui
Its goal is to be the Automatic1111 of text generators, and it does a fair job at it.
A good model that’s said to rival gpt-3.5 is the new Falcon model. The full sized version is too big to run on a single GPU, but the 7b version “only” needs about 16GB.
https://huggingface.co/tiiuae/falcon-7b
There’s also the Wizard-uncensored model that is popular.
https://huggingface.co/ehartford/Wizard-Vicuna-13B-Uncensored
There are a ton of models out there with new ones popping up every day. You just need to search around. The oobabooga repo has a few models linked in the readme also.
Edit: there’s also h20gpt, which seems really promising. I’m going to try it out in the next couple days.
https://github.com/h2oai/h2ogpt
Note that when using llama-derived models, such as vicuna, you are bound by their license to only use them for “research” purposes.
If you want an unrestricted version, go for open-llama or RedPajama.
Falcon is less restrictive and only wants a cut of profits if they exceed 1 million dollars, but I’d wager that fully unrestricted is the way to go.
Falcon has switched to Apache 2.0 and removed the commercial limit.
Sorry, I must’ve missed that somehow, then my comment only applies to llama and its direct derivates.
How do you know how much ram the model needs?
The model creator usually mentioned it in the readme:
Usually the models support CPU inference. Tremendously slow but works in a pinch.
There’s an average correlation between the models parameters and the execution precision being used (eg. 7b parameters at f16 precision). And then using optimized execution for 8 bit or even 4 bit will reduce memory usage and increase execution time.
It’s entirely dependent on the model, the framework, the hardware (CPU vs GPU).
Generally there should be some indication somewhere in the model’s repo that states what you need.