Upload README.md
Browse files
README.md
CHANGED
@@ -42,26 +42,33 @@ quantized_by: TheBloke
|
|
42 |
<!-- description start -->
|
43 |
## Description
|
44 |
|
45 |
-
This repo contains
|
46 |
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
THEY WILL NOT WORK WITH LLAMA.CPP FROM `main`, OR ANY DOWNSTREAM LLAMA.CPP CLIENT - such as LM Studio, llama-cpp-python, text-generation-webui, etc.
|
52 |
-
|
53 |
-
To test these GGUFs, please build llama.cpp from the above PR.
|
54 |
|
55 |
-
|
56 |
|
|
|
57 |
|
58 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
|
|
|
60 |
<!-- repositories-available start -->
|
61 |
## Repositories available
|
62 |
|
63 |
-
* AWQ
|
64 |
-
* GPTQ
|
65 |
* [2, 3, 4, 5, 6 and 8-bit GGUF models for CPU+GPU inference](https://huggingface.co/TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF)
|
66 |
* [Mistral AI_'s original unquantised fp16 model in pytorch format, for GPU inference and for further conversions](https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1)
|
67 |
<!-- repositories-available end -->
|
@@ -71,10 +78,36 @@ I have tested CUDA acceleration and it works great. I have not yet tested other
|
|
71 |
|
72 |
```
|
73 |
<s>[INST] {prompt} [/INST]
|
|
|
74 |
```
|
75 |
|
76 |
<!-- prompt-template end -->
|
77 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
<!-- README_GGUF.md-provided-files start -->
|
79 |
## Provided files
|
80 |
|
@@ -100,6 +133,18 @@ I have tested CUDA acceleration and it works great. I have not yet tested other
|
|
100 |
|
101 |
**Note for manual downloaders:** You almost never want to clone the entire repo! Multiple different quantisation formats are provided, and most users only want to pick and download a single file.
|
102 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
### On the command line, including multiple files at once
|
104 |
|
105 |
I recommend using the `huggingface-hub` Python library:
|
@@ -144,10 +189,10 @@ Windows Command Line users: You can set the environment variable by running `set
|
|
144 |
<!-- README_GGUF.md-how-to-run start -->
|
145 |
## Example `llama.cpp` command
|
146 |
|
147 |
-
Make sure you are using `llama.cpp` from [
|
148 |
|
149 |
```shell
|
150 |
-
./main -ngl 35 -m mixtral-8x7b-instruct-v0.1.Q4_K_M.gguf --color -c 32768 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "{prompt}"
|
151 |
```
|
152 |
|
153 |
Change `-ngl 32` to the number of layers to offload to GPU. Remove it if you don't have GPU acceleration.
|
@@ -160,11 +205,82 @@ For other parameters and how to use them, please refer to [the llama.cpp documen
|
|
160 |
|
161 |
## How to run in `text-generation-webui`
|
162 |
|
163 |
-
|
164 |
|
165 |
## How to run from Python code
|
166 |
|
167 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
168 |
|
169 |
<!-- footer start -->
|
170 |
<!-- 200823 -->
|
|
|
42 |
<!-- description start -->
|
43 |
## Description
|
44 |
|
45 |
+
This repo contains GGUF format model files for [Mistral AI_'s Mixtral 8X7B Instruct v0.1](https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1).
|
46 |
|
47 |
+
<!-- description end -->
|
48 |
+
<!-- README_GGUF.md-about-gguf start -->
|
49 |
+
### About GGUF
|
|
|
|
|
|
|
|
|
50 |
|
51 |
+
GGUF is a new format introduced by the llama.cpp team on August 21st 2023. It is a replacement for GGML, which is no longer supported by llama.cpp.
|
52 |
|
53 |
+
Here is an incomplete list of clients and libraries that are known to support GGUF:
|
54 |
|
55 |
+
* [llama.cpp](https://github.com/ggerganov/llama.cpp). The source project for GGUF. Offers a CLI and a server option.
|
56 |
+
* [text-generation-webui](https://github.com/oobabooga/text-generation-webui), the most widely used web UI, with many features and powerful extensions. Supports GPU acceleration.
|
57 |
+
* [KoboldCpp](https://github.com/LostRuins/koboldcpp), a fully featured web UI, with GPU accel across all platforms and GPU architectures. Especially good for story telling.
|
58 |
+
* [GPT4All](https://gpt4all.io/index.html), a free and open source local running GUI, supporting Windows, Linux and macOS with full GPU accel.
|
59 |
+
* [LM Studio](https://lmstudio.ai/), an easy-to-use and powerful local GUI for Windows and macOS (Silicon), with GPU acceleration. Linux available, in beta as of 27/11/2023.
|
60 |
+
* [LoLLMS Web UI](https://github.com/ParisNeo/lollms-webui), a great web UI with many interesting and unique features, including a full model library for easy model selection.
|
61 |
+
* [Faraday.dev](https://faraday.dev/), an attractive and easy to use character-based chat GUI for Windows and macOS (both Silicon and Intel), with GPU acceleration.
|
62 |
+
* [llama-cpp-python](https://github.com/abetlen/llama-cpp-python), a Python library with GPU accel, LangChain support, and OpenAI-compatible API server.
|
63 |
+
* [candle](https://github.com/huggingface/candle), a Rust ML framework with a focus on performance, including GPU support, and ease of use.
|
64 |
+
* [ctransformers](https://github.com/marella/ctransformers), a Python library with GPU accel, LangChain support, and OpenAI-compatible AI server. Note, as of time of writing (November 27th 2023), ctransformers has not been updated in a long time and does not support many recent models.
|
65 |
|
66 |
+
<!-- README_GGUF.md-about-gguf end -->
|
67 |
<!-- repositories-available start -->
|
68 |
## Repositories available
|
69 |
|
70 |
+
* [AWQ model(s) for GPU inference.](https://huggingface.co/TheBloke/Mixtral-8x7B-Instruct-v0.1-AWQ)
|
71 |
+
* [GPTQ models for GPU inference, with multiple quantisation parameter options.](https://huggingface.co/TheBloke/Mixtral-8x7B-Instruct-v0.1-GPTQ)
|
72 |
* [2, 3, 4, 5, 6 and 8-bit GGUF models for CPU+GPU inference](https://huggingface.co/TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF)
|
73 |
* [Mistral AI_'s original unquantised fp16 model in pytorch format, for GPU inference and for further conversions](https://huggingface.co/mistralai/Mixtral-8x7B-Instruct-v0.1)
|
74 |
<!-- repositories-available end -->
|
|
|
78 |
|
79 |
```
|
80 |
<s>[INST] {prompt} [/INST]
|
81 |
+
|
82 |
```
|
83 |
|
84 |
<!-- prompt-template end -->
|
85 |
|
86 |
+
|
87 |
+
<!-- compatibility_gguf start -->
|
88 |
+
## Compatibility
|
89 |
+
|
90 |
+
These quantised GGUFv2 files are compatible with llama.cpp from August 27th onwards, as of commit [d0cee0d](https://github.com/ggerganov/llama.cpp/commit/d0cee0d36d5be95a0d9088b674dbb27354107221)
|
91 |
+
|
92 |
+
They are also compatible with many third party UIs and libraries - please see the list at the top of this README.
|
93 |
+
|
94 |
+
## Explanation of quantisation methods
|
95 |
+
|
96 |
+
<details>
|
97 |
+
<summary>Click to see details</summary>
|
98 |
+
|
99 |
+
The new methods available are:
|
100 |
+
|
101 |
+
* GGML_TYPE_Q2_K - "type-1" 2-bit quantization in super-blocks containing 16 blocks, each block having 16 weight. Block scales and mins are quantized with 4 bits. This ends up effectively using 2.5625 bits per weight (bpw)
|
102 |
+
* GGML_TYPE_Q3_K - "type-0" 3-bit quantization in super-blocks containing 16 blocks, each block having 16 weights. Scales are quantized with 6 bits. This end up using 3.4375 bpw.
|
103 |
+
* GGML_TYPE_Q4_K - "type-1" 4-bit quantization in super-blocks containing 8 blocks, each block having 32 weights. Scales and mins are quantized with 6 bits. This ends up using 4.5 bpw.
|
104 |
+
* GGML_TYPE_Q5_K - "type-1" 5-bit quantization. Same super-block structure as GGML_TYPE_Q4_K resulting in 5.5 bpw
|
105 |
+
* GGML_TYPE_Q6_K - "type-0" 6-bit quantization. Super-blocks with 16 blocks, each block having 16 weights. Scales are quantized with 8 bits. This ends up using 6.5625 bpw
|
106 |
+
|
107 |
+
Refer to the Provided Files table below to see what files use which methods, and how.
|
108 |
+
</details>
|
109 |
+
<!-- compatibility_gguf end -->
|
110 |
+
|
111 |
<!-- README_GGUF.md-provided-files start -->
|
112 |
## Provided files
|
113 |
|
|
|
133 |
|
134 |
**Note for manual downloaders:** You almost never want to clone the entire repo! Multiple different quantisation formats are provided, and most users only want to pick and download a single file.
|
135 |
|
136 |
+
The following clients/libraries will automatically download models for you, providing a list of available models to choose from:
|
137 |
+
|
138 |
+
* LM Studio
|
139 |
+
* LoLLMS Web UI
|
140 |
+
* Faraday.dev
|
141 |
+
|
142 |
+
### In `text-generation-webui`
|
143 |
+
|
144 |
+
Under Download Model, you can enter the model repo: TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF and below it, a specific filename to download, such as: mixtral-8x7b-instruct-v0.1.Q4_K_M.gguf.
|
145 |
+
|
146 |
+
Then click Download.
|
147 |
+
|
148 |
### On the command line, including multiple files at once
|
149 |
|
150 |
I recommend using the `huggingface-hub` Python library:
|
|
|
189 |
<!-- README_GGUF.md-how-to-run start -->
|
190 |
## Example `llama.cpp` command
|
191 |
|
192 |
+
Make sure you are using `llama.cpp` from commit [d0cee0d](https://github.com/ggerganov/llama.cpp/commit/d0cee0d36d5be95a0d9088b674dbb27354107221) or later.
|
193 |
|
194 |
```shell
|
195 |
+
./main -ngl 35 -m mixtral-8x7b-instruct-v0.1.Q4_K_M.gguf --color -c 32768 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "<s>[INST] {prompt} [/INST]"
|
196 |
```
|
197 |
|
198 |
Change `-ngl 32` to the number of layers to offload to GPU. Remove it if you don't have GPU acceleration.
|
|
|
205 |
|
206 |
## How to run in `text-generation-webui`
|
207 |
|
208 |
+
Further instructions can be found in the text-generation-webui documentation, here: [text-generation-webui/docs/04 ‐ Model Tab.md](https://github.com/oobabooga/text-generation-webui/blob/main/docs/04%20%E2%80%90%20Model%20Tab.md#llamacpp).
|
209 |
|
210 |
## How to run from Python code
|
211 |
|
212 |
+
You can use GGUF models from Python using the [llama-cpp-python](https://github.com/abetlen/llama-cpp-python) or [ctransformers](https://github.com/marella/ctransformers) libraries. Note that at the time of writing (Nov 27th 2023), ctransformers has not been updated for some time and is not compatible with some recent models. Therefore I recommend you use llama-cpp-python.
|
213 |
+
|
214 |
+
### How to load this model in Python code, using llama-cpp-python
|
215 |
+
|
216 |
+
For full documentation, please see: [llama-cpp-python docs](https://abetlen.github.io/llama-cpp-python/).
|
217 |
+
|
218 |
+
#### First install the package
|
219 |
+
|
220 |
+
Run one of the following commands, according to your system:
|
221 |
+
|
222 |
+
```shell
|
223 |
+
# Base ctransformers with no GPU acceleration
|
224 |
+
pip install llama-cpp-python
|
225 |
+
# With NVidia CUDA acceleration
|
226 |
+
CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip install llama-cpp-python
|
227 |
+
# Or with OpenBLAS acceleration
|
228 |
+
CMAKE_ARGS="-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS" pip install llama-cpp-python
|
229 |
+
# Or with CLBLast acceleration
|
230 |
+
CMAKE_ARGS="-DLLAMA_CLBLAST=on" pip install llama-cpp-python
|
231 |
+
# Or with AMD ROCm GPU acceleration (Linux only)
|
232 |
+
CMAKE_ARGS="-DLLAMA_HIPBLAS=on" pip install llama-cpp-python
|
233 |
+
# Or with Metal GPU acceleration for macOS systems only
|
234 |
+
CMAKE_ARGS="-DLLAMA_METAL=on" pip install llama-cpp-python
|
235 |
+
|
236 |
+
# In windows, to set the variables CMAKE_ARGS in PowerShell, follow this format; eg for NVidia CUDA:
|
237 |
+
$env:CMAKE_ARGS = "-DLLAMA_OPENBLAS=on"
|
238 |
+
pip install llama-cpp-python
|
239 |
+
```
|
240 |
+
|
241 |
+
#### Simple llama-cpp-python example code
|
242 |
+
|
243 |
+
```python
|
244 |
+
from llama_cpp import Llama
|
245 |
+
|
246 |
+
# Set gpu_layers to the number of layers to offload to GPU. Set to 0 if no GPU acceleration is available on your system.
|
247 |
+
llm = Llama(
|
248 |
+
model_path="./mixtral-8x7b-instruct-v0.1.Q4_K_M.gguf", # Download the model file first
|
249 |
+
n_ctx=32768, # The max sequence length to use - note that longer sequence lengths require much more resources
|
250 |
+
n_threads=8, # The number of CPU threads to use, tailor to your system and the resulting performance
|
251 |
+
n_gpu_layers=35 # The number of layers to offload to GPU, if you have GPU acceleration available
|
252 |
+
)
|
253 |
+
|
254 |
+
# Simple inference example
|
255 |
+
output = llm(
|
256 |
+
"<s>[INST] {prompt} [/INST]", # Prompt
|
257 |
+
max_tokens=512, # Generate up to 512 tokens
|
258 |
+
stop=["</s>"], # Example stop token - not necessarily correct for this specific model! Please check before using.
|
259 |
+
echo=True # Whether to echo the prompt
|
260 |
+
)
|
261 |
+
|
262 |
+
# Chat Completion API
|
263 |
+
|
264 |
+
llm = Llama(model_path="./mixtral-8x7b-instruct-v0.1.Q4_K_M.gguf", chat_format="llama-2") # Set chat_format according to the model you are using
|
265 |
+
llm.create_chat_completion(
|
266 |
+
messages = [
|
267 |
+
{"role": "system", "content": "You are a story writing assistant."},
|
268 |
+
{
|
269 |
+
"role": "user",
|
270 |
+
"content": "Write a story about llamas."
|
271 |
+
}
|
272 |
+
]
|
273 |
+
)
|
274 |
+
```
|
275 |
+
|
276 |
+
## How to use with LangChain
|
277 |
+
|
278 |
+
Here are guides on using llama-cpp-python and ctransformers with LangChain:
|
279 |
+
|
280 |
+
* [LangChain + llama-cpp-python](https://python.langchain.com/docs/integrations/llms/llamacpp)
|
281 |
+
* [LangChain + ctransformers](https://python.langchain.com/docs/integrations/providers/ctransformers)
|
282 |
+
|
283 |
+
<!-- README_GGUF.md-how-to-run end -->
|
284 |
|
285 |
<!-- footer start -->
|
286 |
<!-- 200823 -->
|