Updated: 5/31/23
FAQ
Recommended prompts
Instruct
Alpaca and its derivatives, also works to some extent in vanilla llama
If using llama.cpp just use the -ins flag instead of -i. A reverse prompt is not needed with -ins.
The response will be prefixed by "### Response:"
Extra input or context can be provided by adding "### Input:" after your instruction.
Vicuna
Standard
Free
Vicuna doesn't answer my question, it just says "sorry ..."
Confirmed working:
Troubleshooting
- "I can't get koboldcpp to compile with LLAMA_CLBLAST or llamacpp with LLAMA_CUBLAST."
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
Then compile (follow your package's instructions. e.g. make LLAMA_CUBLAS=1 for vanilla llama.cpp) - llama.cpp: Failed to load model
Are you using the right version? (v1, v2, v3, ggml, ggjt, etc.) This is sometimes hard to know unless you're following along. If you've been gone for a while, clone the latest version of llama.cpp, search ggml in huggingface.co and sort it by most recently updated for compatible models (or, y'know, just quant yourself). Is the model compatible? Not all ggml models are compatible with llama.cpp (e.g. MPT, starcoder, etc.)
- GUI "ValueError: Tokenizer class LLaMATokenizer does not exist or is not currently imported"
You must edit tokenizer_config.json to correct this. The tokenizer class has been changed from LLaMATokenizer to LlamaTokenizer. For example, inside text-generation-webui/models/llama-7b-hf/tokenizer_config.json: Change "tokenizer_class": "LLaMATokenizer" to "tokenizer_class": "LlamaTokenizer"
- I'm having X issue with setup_cuda.py
To all anons installing for the first time: the "python setup_cuda.py install" steps many guides have is outdated. Most guides on rentry need to be rewritten.
Requirements
- llama.cpp approx. RAM requirements for GPTQ-4bit LLAMA models:
- System Requirements for oobabooga
https://github.com/oobabooga/text-generation-webui/blob/main/docs/System-requirements.md
Configs
Anon's tier list from April '23
S Tier- Bing, GPT 4
A Tier- ChatGPT, GPT 3.5+, (other proprietary crap)
B Tier- Vicuna, Bard
C Tier- Alpaca X GPT 4, ChatGLM, Llama 30B (untuned), Llama 65B (untuned), gpt4all
D Tier- Alpaca Native
E Tier- Llama 7B
F Tier- Alpaca 7B Lora
What does -{setting} do in llama.cpp?
From >>92421965:
# top-p acts probably after k. They do very similar things.
--temp - Degree of randomness or wildness - how much AI is allowed to sway from the most probable prediction
--top_k - Consider only this many most likely tokens - ignore all others
--top_p - Consider only the top tokens whose likelihood together adds up to this number (0-1.0) - ignore all others
--ctx_size - Maximum length of the prompt and output combined (in tokens)
--n_predict - Maximum number of tokens the model will output after outputting the prompt - number of tokens to predict
--keep - Number of tokens to keep from the initial prompt - when the n_ctx limit is reached
--repeat_last_n - Last n tokens to consider for penalize - size of window of tokens that the model will be penalized for repeating
--repeat_penalty - Sets the amount the model will be penalized for attempting to use one of those tokens in repeat window
From >>92423836:
top_k is the initial amount of tokens for the AI to consider. Bigger number means more variety of possible tokens(words). Personally I tend to use 1000 and even that might be overkill.
Setting top_k to 1 means there is only one token considered from the get go so outputs will seemingly always be the same for the same prompt and top_p and temperature won't even matter.
top_p picks the most likely tokens from the batch initially produced by top_k, if you set it to 1.0 it will basically be turned off because it will let every token pass. Personally I use 0.95 which means it will pick the best tokens from top_k that together have a 95% probability of being a good token according to the AI. It might sound high but in most generations a LOT of the top 1000 tokens will have a miniscule probability of being a good token.
For example in the prompt "I dropped a lit match on my pants and they caught on" the probability of the word "fire" being next is so high that even in a batch of 1000 words it alone might have 95% chance or greater meaning top_p at 0.95 will only let one token pass from the initial 1000. In cases where a lot of tokens are probable it will let a great amount pass.
Temperature is more important than top_p generally. Low temperature makes the AI pick only the most probable tokens while high temperature makes it go for low probability tokens resulting in creativity if you raise the temperature some but incoherent nonsense if you raise the temperature too much. I like 0.7 or so for most uses. 0.8+ tends to make some parts of the text a bit nonsensical.
Quant Reference (7/26/23)
Recommended
15 or Q4_K_M : 3.80G, +0.0535 ppl @ 7B - medium, balanced quality - recommended
17 or Q5_K : alias for Q5_K_M
16 or Q5_K_S : 4.33G, +0.0353 ppl @ 7B - large, low quality loss - recommended
17 or Q5_K_M : 4.45G, +0.0142 ppl @ 7B - large, very low quality loss - recommended
18 or Q6_K : 5.15G, +0.0044 ppl @ 7B - very large, extremely low quality loss
Not recommended
2 or Q4_0 : 3.50G, +0.2499 ppl @ 7B - small, very high quality loss - legacy, prefer using Q3_K_M
3 or Q4_1 : 3.90G, +0.1846 ppl @ 7B - small, substantial quality loss - legacy, prefer using Q3_K_L
8 or Q5_0 : 4.30G, +0.0796 ppl @ 7B - medium, balanced quality - legacy, prefer using Q4_K_M
9 or Q5_1 : 4.70G, +0.0415 ppl @ 7B - medium, low quality loss - legacy, prefer using Q5_K_M
10 or Q2_K : 2.67G, +0.8698 ppl @ 7B - smallest, extreme quality loss - not recommended
7 or Q8_0 : 6.70G, +0.0004 ppl @ 7B - very large, extremely low quality loss - not recommended
1 or F16 : 13.00G @ 7B - extremely large, virtually no quality loss - not recommended
0 or F32 : 26.00G @ 7B - absolutely huge, lossless - not recommended
Neutral
12 or Q3_K : alias for Q3_K_M
11 or Q3_K_S : 2.75G, +0.5505 ppl @ 7B - very small, very high quality loss
12 or Q3_K_M : 3.06G, +0.2437 ppl @ 7B - very small, very high quality loss
13 or Q3_K_L : 3.35G, +0.1803 ppl @ 7B - small, substantial quality loss
15 or Q4_K : alias for Q4_K_M
14 or Q4_K_S : 3.56G, +0.1149 ppl @ 7B - small, significant quality loss