Downloads · 30 days
0
TheBloke/open-llama-7B-v2-open-instruct-GGML
open-llama-7B-v2-open-instruct-GGML is a machine learning model from TheBloke. Use it for the machine learning task on the model card, and read the license before you ship it in a product. The card lists the license as other.
<div style="width: 100%;" <img src="https://i.imgur.com/EBdldam.jpg" alt="TheBlokeAI" style="width: 100%; min-width: 400px; display: block; margin: auto;" </div <div style="display: flex; justify-content: space-betwee…
Downloads · 30 days
0
Access
Public
Updated Jul 11, 2023
Repo size
60.4 GB
Likes
6
Public
Click a slice to open those files.
.bin60.4 GB · 100%
From the Hugging Face model README
These files are GGML format model files for VMware's Open Llama 7B v2 Open Instruct.
GGML files are for CPU + GPU inference using llama.cpp and libraries and UIs which support this format, such as:
These files were quantised using hardware kindly provided by Latitude.sh.
Below is an instruction that describes a task. Write a response that appropriately completes the request.
### Instruction: {prompt}
### Response:
<!-- compatibility_ggml start -->
q4_0, q4_1, q5_0, q5_1, q8_0These are guaranteed to be compatible with any UIs, tools and libraries released since late May. They may be phased out soon, as they are largely superseded by the new k-quant methods.
q2_K, q3_K_S, q3_K_M, q3_K_L, q4_K_S, q4_K_M, q5_K_S, q6_KThese new quantisation methods are compatible with llama.cpp as of June 6th, commit 2d43387.
They are now also compatible with recent releases of text-generation-webui, KoboldCpp, llama-cpp-python, ctransformers, rustformers and most others. For compatibility with other tools and libraries, please check their documentation.
The new methods available are:
Refer to the Provided Files table below to see what files use which methods, and how.
</details> <!-- compatibility_ggml end -->| Name | Quant method | Bits | Size | Max RAM required | Use case |
|---|---|---|---|---|---|
| open-llama-7b-v2-open-instruct.ggmlv3.q2_K.bin | q2_K | 2 | 2.87 GB | 5.37 GB | New k-quant method. Uses GGML_TYPE_Q4_K for the attention.vw and feed_forward.w2 tensors, GGML_TYPE_Q2_K for the other tensors. |
| open-llama-7b-v2-open-instruct.ggmlv3.q3_K_L.bin | q3_K_L | 3 | 3.60 GB | 6.10 GB | New k-quant method. Uses GGML_TYPE_Q5_K for the attention.wv, attention.wo, and feed_forward.w2 tensors, else GGML_TYPE_Q3_K |
| open-llama-7b-v2-open-instruct.ggmlv3.q3_K_M.bin | q3_K_M | 3 | 3.28 GB | 5.78 GB | New k-quant method. Uses GGML_TYPE_Q4_K for the attention.wv, attention.wo, and feed_forward.w2 tensors, else GGML_TYPE_Q3_K |
| open-llama-7b-v2-open-instruct.ggmlv3.q3_K_S.bin | q3_K_S | 3 | 2.95 GB | 5.45 GB | New k-quant method. Uses GGML_TYPE_Q3_K for all tensors |
| open-llama-7b-v2-open-instruct.ggmlv3.q4_0.bin | q4_0 | 4 | 3.79 GB | 6.29 GB | Original quant method, 4-bit. |
| open-llama-7b-v2-open-instruct.ggmlv3.q4_1.bin | q4_1 | 4 | 4.21 GB | 6.71 GB | Original quant method, 4-bit. Higher accuracy than q4_0 but not as high as q5_0. However has quicker inference than q5 models. |
| open-llama-7b-v2-open-instruct.ggmlv3.q4_K_M.bin | q4_K_M | 4 | 4.08 GB | 6.58 GB | New k-quant method. Uses GGML_TYPE_Q6_K for half of the attention.wv and feed_forward.w2 tensors, else GGML_TYPE_Q4_K |
| open-llama-7b-v2-open-instruct.ggmlv3.q4_K_S.bin | q4_K_S | 4 | 3.83 GB | 6.33 GB | New k-quant method. Uses GGML_TYPE_Q4_K for all tensors |
| open-llama-7b-v2-open-instruct.ggmlv3.q5_0.bin | q5_0 | 5 | 4.63 GB | 7.13 GB | Original quant method, 5-bit. Higher accuracy, higher resource usage and slower inference. |
| open-llama-7b-v2-open-instruct.ggmlv3.q5_1.bin | q5_1 | 5 | 5.06 GB | 7.56 GB | Original quant method, 5-bit. Even higher accuracy, resource usage and slower inference. |
| open-llama-7b-v2-open-instruct.ggmlv3.q5_K_M.bin | q5_K_M | 5 | 4.78 GB | 7.28 GB | New k-quant method. Uses GGML_TYPE_Q6_K for half of the attention.wv and feed_forward.w2 tensors, else GGML_TYPE_Q5_K |
| open-llama-7b-v2-open-instruct.ggmlv3.q5_K_S.bin | q5_K_S | 5 | 4.65 GB | 7.15 GB | New k-quant method. Uses GGML_TYPE_Q5_K for all tensors |
| open-llama-7b-v2-open-instruct.ggmlv3.q6_K.bin | q6_K | 6 | 5.53 GB | 8.03 GB | New k-quant method. Uses GGML_TYPE_Q8_K - 6-bit quantization - for all tensors |
| open-llama-7b-v2-open-instruct.ggmlv3.q8_0.bin | q8_0 | 8 | 7.16 GB | 9.66 GB | Original quant method, 8-bit. Almost indistinguishable from float16. High resource use and slow. Not recommended for most users. |
Note: the above RAM figures assume no GPU offloading. If layers are offloaded to the GPU, this will reduce RAM usage and use VRAM instead.
llama.cppI use the following command line; adjust for your tastes and needs:
./main -t 10 -ngl 32 -m open-llama-7b-v2-open-instruct.ggmlv3.q4_0.bin --color -c 2048 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "### Instruction: Write a story about llamas\n### Response:"
Change -t 10 to the number of physical CPU cores you have. For example if your system has 8 cores/16 threads, use -t 8.
Change -ngl 32 to the number of layers to offload to GPU. Remove it if you don't have GPU acceleration.
If you want to have a chat-style conversation, replace the -p <PROMPT> argument with -i -ins
text-generation-webuiFurther instructions here: text-generation-webui/docs/llama.cpp-models.md.
<!-- footer start -->For further support, and discussions on these models and AI in general, join us at:
Thanks to the chirper.ai team!
I've had a lot of people ask if they can contribute. I enjoy providing models and helping people, and would love to be able to spend even more time doing it, as well as expanding into new projects like fine tuning/training.
If you're able and willing to contribute it will be most gratefully received and will help me to keep providing more models, and to start work on new AI projects.
Donaters will get priority support on any and all AI/LLM/model questions and requests, access to a private Discord room, plus other benefits.
Special thanks to: Luke from CarbonQuill, Aemon Algiz.
Patreon special mentions: Space Cruiser, Nikolai Manek, Sam, Chris McCloskey, Rishabh Srivastava, Kalila, Spiking Neurons AB, Khalefa Al-Ahmad, WelcomeToTheClub, Chadd, Lone Striker, Viktor Bowallius, Edmond Seymore, Ai Maven, Chris Smitley, Dave, Alexandros Triantafyllidis, Luke @flexchar, Elle, ya boyyy, Talal Aujan, Alex , Jonathan Leane, Deep Realms, Randy H, subjectnull, Preetika Verma, Joseph William Delisle, Michael Levine, chris gileta, K, Oscar Rangel, LangChain4j, Trenton Dambrowitz, Eugene Pentland, Johann-Peter Hartmann, Femi Adebogun, Illia Dulskyi, senxiiz, Daniel P. Andersen, Sean Connelly, Artur Olbinski, RoA, Mano Prime, Derek Yates, Raven Klaugh, David Flickinger, Willem Michiel, Pieter, Willian Hasse, vamX, Luke Pendergrass, webtim, Ghost , Rainer Wilmers, Nathan LeClaire, Will Dee, Cory Kujawski, John Detwiler, Fred von Graf, biorpg, Iucharbius , Imad Khwaja, Pierre Kircher, terasurfer , Asp the Wyvern, John Villwock, theTransient, zynix , Gabriel Tamborski, Fen Risland, Gabriel Puliatti, Matthew Berman, Pyrater, SuperWojo, Stephen Murray, Karl Bernard, Ajan Kanaga, Greatston Gnanesh, Junyu Yang.
Thank you to all my generous patrons and donaters!
<!-- footer end -->Instruction-tuned version of the fully trained Open LLama 7B v2 model. The model is open for <b>COMMERCIAL USE</b>. <br>
<b> NOTE </b> : The model was trained using the Alpaca prompt template
<b> NOTE </b> : Fast tokenizer results in incorrect encoding, set the use_fast = False parameter, when instantiating the tokenizer
<b>Commercially Viable </b>
Open-instruct-v1
Mosaic/Dolly-HHRLHF + filtered OASST1 - cc by 3.0
Subset of COT SUBMIX (FROM FLAN V2) Zeroshot examples
import os
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = 'VMware/open-llama-7b-open-instruct'
tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=False)
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.float16, device_map='sequential')
prompt_template = "Below is an instruction that describes a task. Write a response that appropriately completes the request.\n\n### Instruction:\n{instruction}\n\n### Response:"
prompt = """What is attention mechanism of a transformer model?
Write a python code to illustrate how attention works within a transformer model using numpy library. Donot use pytorch or tensorflow."""
inputt = prompt_template.format(instruction= prompt)
input_ids = tokenizer(inputt, return_tensors="pt").input_ids.to("cuda")
output1 = model.generate(input_ids, max_length=512)
input_length = input_ids.shape[1]
output1 = output1[:, input_length:]
output = tokenizer.decode(output1[0])
print(output)
'''
Sure, I can help you with that!
Attention mechanisms in transformer models are typically implemented using the attention mechanism in the self-attention layer. Self-attention allows the model to focus on different parts of the input sequence when processing it. This is achieved by computing a set of attention weights, which are used to weigh the contribution of each input element to the output.
Here's an example code using NumPy to illustrate how attention works in a transformer model:
```python
import numpy as np
def attention_weights(query, key, value, mask):
# Query, key, and value are input tensors. Mask is a tensor of zeros and ones that represents the attention mask.
# It is used to prevent the model from attending to certain positions in the input sequence if they are not relevant.
# The attention weights are the element-wise product of the query, key, and mask tensors.
# The result is a tensor of the same shape as the query tensor.
# Compute the dot product between the query tensor and the key tensor
dot = np.matmul(query, key)
# Compute the element-wise softmax of the dot product tensor
exp_dot = np.exp(dot)
# Multiply the dot product and the softmax of the dot product tensors
weights = dot * exp_dot
# Return the attention weights as a NumPy tensor
return weights
# Define the input sequence
query = np.array([[0.1, 0.2, 0.3], [0.4, 0.5, 0.6]])
key = np.array([[0.1, 0.2], [0.3, 0.4]])
value = np.array([[0.1, 0.2, 0.3], [0.4, 0.5, 0.6]])
mask = np.array([[False, True, True], [False, True, True]])
# Compute the attention weights
weights = attention_weights(query, key, value, mask)
# Print the attention weights
print(weights)
In this example, the attention_weights function takes as input the query tensor, key tensor, value tensor, and mask tensor. It computes the dot product between the query and key tensors using the np.matmul function, and then applies a softmax function using the np.exp function to the element-wise dot product tensor. It then multiplies the dot product and softmax tensors using the np.matmul function, and returns the result as a NumPy tensor.
The query, key, and value tensors represent the input sequence to the transformer model. The mask tensor represents the attention mask, which is used to prevent the model from attending to certain positions in the input sequence if they are not relevant.
The output of the attention_weights function is a NumPy tensor that represents the attention weights for the input sequence. These weights are used by the transformer model to weigh the contribution of each input element to the output.
I hope this helps!</s> '''
## Finetuning details
The finetuning scripts will be available in our [RAIL Github Repository](https://github.com/vmware-labs/research-and-development-artificial-intelligence-lab/tree/main/instruction-tuning)
## Evaluation
<B>TODO</B>