Update README.md
Browse files
README.md
CHANGED
@@ -1,199 +1,146 @@
|
|
1 |
---
|
2 |
-
|
3 |
-
tags: []
|
4 |
---
|
5 |
|
6 |
-
# Model Card for
|
7 |
|
8 |
-
|
|
|
9 |
|
|
|
10 |
|
|
|
11 |
|
12 |
-
|
|
|
|
|
|
|
13 |
|
14 |
-
|
15 |
|
16 |
-
|
17 |
|
18 |
-
|
|
|
|
|
19 |
|
20 |
-
|
21 |
-
- **Funded by [optional]:** [More Information Needed]
|
22 |
-
- **Shared by [optional]:** [More Information Needed]
|
23 |
-
- **Model type:** [More Information Needed]
|
24 |
-
- **Language(s) (NLP):** [More Information Needed]
|
25 |
-
- **License:** [More Information Needed]
|
26 |
-
- **Finetuned from model [optional]:** [More Information Needed]
|
27 |
|
28 |
-
|
|
|
|
|
29 |
|
30 |
-
|
|
|
31 |
|
32 |
-
-
|
33 |
-
|
34 |
-
- **Demo [optional]:** [More Information Needed]
|
35 |
|
36 |
-
|
37 |
|
38 |
-
|
39 |
|
40 |
-
|
|
|
|
|
41 |
|
42 |
-
|
43 |
|
44 |
-
|
|
|
|
|
45 |
|
46 |
-
|
|
|
|
|
47 |
|
48 |
-
<!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
|
49 |
|
50 |
-
|
|
|
51 |
|
52 |
-
|
53 |
|
54 |
-
|
55 |
|
56 |
-
[
|
|
|
57 |
|
58 |
-
|
|
|
59 |
|
60 |
-
|
61 |
|
62 |
-
|
|
|
|
|
|
|
63 |
|
64 |
-
|
|
|
|
|
65 |
|
66 |
-
<!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
|
67 |
|
68 |
-
|
|
|
69 |
|
70 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
|
72 |
-
|
73 |
|
74 |
-
[
|
|
|
75 |
|
76 |
-
|
|
|
77 |
|
78 |
-
|
79 |
|
80 |
-
|
81 |
|
82 |
-
|
|
|
83 |
|
84 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
|
86 |
-
|
87 |
|
88 |
-
|
|
|
|
|
89 |
|
90 |
-
|
91 |
|
92 |
-
|
93 |
-
#### Training Hyperparameters
|
94 |
-
|
95 |
-
- **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
|
96 |
-
|
97 |
-
#### Speeds, Sizes, Times [optional]
|
98 |
-
|
99 |
-
<!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
|
100 |
-
|
101 |
-
[More Information Needed]
|
102 |
-
|
103 |
-
## Evaluation
|
104 |
-
|
105 |
-
<!-- This section describes the evaluation protocols and provides the results. -->
|
106 |
-
|
107 |
-
### Testing Data, Factors & Metrics
|
108 |
-
|
109 |
-
#### Testing Data
|
110 |
-
|
111 |
-
<!-- This should link to a Dataset Card if possible. -->
|
112 |
-
|
113 |
-
[More Information Needed]
|
114 |
-
|
115 |
-
#### Factors
|
116 |
-
|
117 |
-
<!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
|
118 |
-
|
119 |
-
[More Information Needed]
|
120 |
-
|
121 |
-
#### Metrics
|
122 |
-
|
123 |
-
<!-- These are the evaluation metrics being used, ideally with a description of why. -->
|
124 |
-
|
125 |
-
[More Information Needed]
|
126 |
-
|
127 |
-
### Results
|
128 |
-
|
129 |
-
[More Information Needed]
|
130 |
-
|
131 |
-
#### Summary
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
## Model Examination [optional]
|
136 |
-
|
137 |
-
<!-- Relevant interpretability work for the model goes here -->
|
138 |
-
|
139 |
-
[More Information Needed]
|
140 |
-
|
141 |
-
## Environmental Impact
|
142 |
-
|
143 |
-
<!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
|
144 |
-
|
145 |
-
Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
|
146 |
-
|
147 |
-
- **Hardware Type:** [More Information Needed]
|
148 |
-
- **Hours used:** [More Information Needed]
|
149 |
-
- **Cloud Provider:** [More Information Needed]
|
150 |
-
- **Compute Region:** [More Information Needed]
|
151 |
-
- **Carbon Emitted:** [More Information Needed]
|
152 |
-
|
153 |
-
## Technical Specifications [optional]
|
154 |
-
|
155 |
-
### Model Architecture and Objective
|
156 |
-
|
157 |
-
[More Information Needed]
|
158 |
-
|
159 |
-
### Compute Infrastructure
|
160 |
-
|
161 |
-
[More Information Needed]
|
162 |
-
|
163 |
-
#### Hardware
|
164 |
-
|
165 |
-
[More Information Needed]
|
166 |
-
|
167 |
-
#### Software
|
168 |
-
|
169 |
-
[More Information Needed]
|
170 |
-
|
171 |
-
## Citation [optional]
|
172 |
-
|
173 |
-
<!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
|
174 |
-
|
175 |
-
**BibTeX:**
|
176 |
-
|
177 |
-
[More Information Needed]
|
178 |
-
|
179 |
-
**APA:**
|
180 |
-
|
181 |
-
[More Information Needed]
|
182 |
-
|
183 |
-
## Glossary [optional]
|
184 |
-
|
185 |
-
<!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
|
186 |
-
|
187 |
-
[More Information Needed]
|
188 |
-
|
189 |
-
## More Information [optional]
|
190 |
-
|
191 |
-
[More Information Needed]
|
192 |
-
|
193 |
-
## Model Card Authors [optional]
|
194 |
-
|
195 |
-
[More Information Needed]
|
196 |
-
|
197 |
-
## Model Card Contact
|
198 |
-
|
199 |
-
[More Information Needed]
|
|
|
1 |
---
|
2 |
+
license: apache-2.0
|
|
|
3 |
---
|
4 |
|
5 |
+
# Model Card for Mistral-7B-Instruct-v0.3
|
6 |
|
7 |
+
## Quantization Description
|
8 |
+
This repo contains a GPTQ 4 bit quantized version of the Mistral-7B-Instruct-v0.3 Large Language Model.
|
9 |
|
10 |
+
## Model Description
|
11 |
|
12 |
+
The Mistral-7B-Instruct-v0.3 Large Language Model (LLM) is an instruct fine-tuned version of the Mistral-7B-v0.3.
|
13 |
|
14 |
+
Mistral-7B-v0.3 has the following changes compared to [Mistral-7B-v0.2](https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2/edit/main/README.md)
|
15 |
+
- Extended vocabulary to 32768
|
16 |
+
- Supports v3 Tokenizer
|
17 |
+
- Supports function calling
|
18 |
|
19 |
+
## Installation
|
20 |
|
21 |
+
It is recommended to use `mistralai/Mistral-7B-Instruct-v0.3` with [mistral-inference](https://github.com/mistralai/mistral-inference). For HF transformers code snippets, please keep scrolling.
|
22 |
|
23 |
+
```
|
24 |
+
pip install mistral_inference
|
25 |
+
```
|
26 |
|
27 |
+
## Download
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
|
29 |
+
```py
|
30 |
+
from huggingface_hub import snapshot_download
|
31 |
+
from pathlib import Path
|
32 |
|
33 |
+
mistral_models_path = Path.home().joinpath('mistral_models', '7B-Instruct-v0.3')
|
34 |
+
mistral_models_path.mkdir(parents=True, exist_ok=True)
|
35 |
|
36 |
+
snapshot_download(repo_id="mistralai/Mistral-7B-Instruct-v0.3", allow_patterns=["params.json", "consolidated.safetensors", "tokenizer.model.v3"], local_dir=mistral_models_path)
|
37 |
+
```
|
|
|
38 |
|
39 |
+
### Chat
|
40 |
|
41 |
+
After installing `mistral_inference`, a `mistral-chat` CLI command should be available in your environment. You can chat with the model using
|
42 |
|
43 |
+
```
|
44 |
+
mistral-chat $HOME/mistral_models/7B-Instruct-v0.3 --instruct --max_tokens 256
|
45 |
+
```
|
46 |
|
47 |
+
### Instruct following
|
48 |
|
49 |
+
```py
|
50 |
+
from mistral_inference.model import Transformer
|
51 |
+
from mistral_inference.generate import generate
|
52 |
|
53 |
+
from mistral_common.tokens.tokenizers.mistral import MistralTokenizer
|
54 |
+
from mistral_common.protocol.instruct.messages import UserMessage
|
55 |
+
from mistral_common.protocol.instruct.request import ChatCompletionRequest
|
56 |
|
|
|
57 |
|
58 |
+
tokenizer = MistralTokenizer.from_file(f"{mistral_models_path}/tokenizer.model.v3")
|
59 |
+
model = Transformer.from_folder(mistral_models_path)
|
60 |
|
61 |
+
completion_request = ChatCompletionRequest(messages=[UserMessage(content="Explain Machine Learning to me in a nutshell.")])
|
62 |
|
63 |
+
tokens = tokenizer.encode_chat_completion(completion_request).tokens
|
64 |
|
65 |
+
out_tokens, _ = generate([tokens], model, max_tokens=64, temperature=0.0, eos_id=tokenizer.instruct_tokenizer.tokenizer.eos_id)
|
66 |
+
result = tokenizer.instruct_tokenizer.tokenizer.decode(out_tokens[0])
|
67 |
|
68 |
+
print(result)
|
69 |
+
```
|
70 |
|
71 |
+
### Function calling
|
72 |
|
73 |
+
```py
|
74 |
+
from mistral_common.protocol.instruct.tool_calls import Function, Tool
|
75 |
+
from mistral_inference.model import Transformer
|
76 |
+
from mistral_inference.generate import generate
|
77 |
|
78 |
+
from mistral_common.tokens.tokenizers.mistral import MistralTokenizer
|
79 |
+
from mistral_common.protocol.instruct.messages import UserMessage
|
80 |
+
from mistral_common.protocol.instruct.request import ChatCompletionRequest
|
81 |
|
|
|
82 |
|
83 |
+
tokenizer = MistralTokenizer.from_file(f"{mistral_models_path}/tokenizer.model.v3")
|
84 |
+
model = Transformer.from_folder(mistral_models_path)
|
85 |
|
86 |
+
completion_request = ChatCompletionRequest(
|
87 |
+
tools=[
|
88 |
+
Tool(
|
89 |
+
function=Function(
|
90 |
+
name="get_current_weather",
|
91 |
+
description="Get the current weather",
|
92 |
+
parameters={
|
93 |
+
"type": "object",
|
94 |
+
"properties": {
|
95 |
+
"location": {
|
96 |
+
"type": "string",
|
97 |
+
"description": "The city and state, e.g. San Francisco, CA",
|
98 |
+
},
|
99 |
+
"format": {
|
100 |
+
"type": "string",
|
101 |
+
"enum": ["celsius", "fahrenheit"],
|
102 |
+
"description": "The temperature unit to use. Infer this from the users location.",
|
103 |
+
},
|
104 |
+
},
|
105 |
+
"required": ["location", "format"],
|
106 |
+
},
|
107 |
+
)
|
108 |
+
)
|
109 |
+
],
|
110 |
+
messages=[
|
111 |
+
UserMessage(content="What's the weather like today in Paris?"),
|
112 |
+
],
|
113 |
+
)
|
114 |
|
115 |
+
tokens = tokenizer.encode_chat_completion(completion_request).tokens
|
116 |
|
117 |
+
out_tokens, _ = generate([tokens], model, max_tokens=64, temperature=0.0, eos_id=tokenizer.instruct_tokenizer.tokenizer.eos_id)
|
118 |
+
result = tokenizer.instruct_tokenizer.tokenizer.decode(out_tokens[0])
|
119 |
|
120 |
+
print(result)
|
121 |
+
```
|
122 |
|
123 |
+
## Generate with `transformers`
|
124 |
|
125 |
+
If you want to use Hugging Face `transformers` to generate text, you can do something like this.
|
126 |
|
127 |
+
```py
|
128 |
+
from transformers import pipeline
|
129 |
|
130 |
+
messages = [
|
131 |
+
{"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
|
132 |
+
{"role": "user", "content": "Who are you?"},
|
133 |
+
]
|
134 |
+
chatbot = pipeline("text-generation", model="mistralai/Mistral-7B-Instruct-v0.3")
|
135 |
+
chatbot(messages)
|
136 |
+
```
|
137 |
|
138 |
+
## Limitations
|
139 |
|
140 |
+
The Mistral 7B Instruct model is a quick demonstration that the base model can be easily fine-tuned to achieve compelling performance.
|
141 |
+
It does not have any moderation mechanisms. We're looking forward to engaging with the community on ways to
|
142 |
+
make the model finely respect guardrails, allowing for deployment in environments requiring moderated outputs.
|
143 |
|
144 |
+
## The Mistral AI Team
|
145 |
|
146 |
+
Albert Jiang, Alexandre Sablayrolles, Alexis Tacnet, Antoine Roux, Arthur Mensch, Audrey Herblin-Stoop, Baptiste Bout, Baudouin de Monicault, Blanche Savary, Bam4d, Caroline Feldman, Devendra Singh Chaplot, Diego de las Casas, Eleonore Arcelin, Emma Bou Hanna, Etienne Metzger, Gianna Lengyel, Guillaume Bour, Guillaume Lample, Harizo Rajaona, Jean-Malo Delignon, Jia Li, Justus Murke, Louis Martin, Louis Ternon, Lucile Saulnier, Lélio Renard Lavaud, Margaret Jennings, Marie Pellat, Marie Torelli, Marie-Anne Lachaux, Nicolas Schuhl, Patrick von Platen, Pierre Stock, Sandeep Subramanian, Sophia Yang, Szymon Antoniak, Teven Le Scao, Thibaut Lavril, Timothée Lacroix, Théophile Gervet, Thomas Wang, Valera Nemychnikova, William El Sayed, William Marshall
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|