Instructions to use mistralai/Mistral-7B-Instruct-v0.1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use mistralai/Mistral-7B-Instruct-v0.1 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="mistralai/Mistral-7B-Instruct-v0.1") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.1") model = AutoModelForCausalLM.from_pretrained("mistralai/Mistral-7B-Instruct-v0.1") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Inference
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use mistralai/Mistral-7B-Instruct-v0.1 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Install mistral-common: pip install --upgrade mistral-common # Start the vLLM server: vllm serve "mistralai/Mistral-7B-Instruct-v0.1" --tokenizer_mode mistral --config_format mistral --load_format mistral --tool-call-parser mistral --enable-auto-tool-choice # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "mistralai/Mistral-7B-Instruct-v0.1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/mistralai/Mistral-7B-Instruct-v0.1
- SGLang
How to use mistralai/Mistral-7B-Instruct-v0.1 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "mistralai/Mistral-7B-Instruct-v0.1" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "mistralai/Mistral-7B-Instruct-v0.1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "mistralai/Mistral-7B-Instruct-v0.1" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "mistralai/Mistral-7B-Instruct-v0.1", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use mistralai/Mistral-7B-Instruct-v0.1 with Docker Model Runner:
docker model run hf.co/mistralai/Mistral-7B-Instruct-v0.1
Possibilities injecting custom system into mistral?
Hello mistralai team, Thank you for sharing amazing work!
I am hoping to use the model for my research, and I have some question.
For llama-2 like models often able to inject custom system prompt, but it looks like there are no information about it.
Is there a way to give custom system prompt to mistral?
I am looking for the same. Please update once you find something.
Use this
[INST] System Prompt + Instruction [/INST] Model answer[INST] Follow-up instruction [/INST]
From their official site.
https://docs.mistral.ai/usage/guardrailing
If you want it for gradio. I wrote a formatting function. Remove/add accordingly.
def format_chat_prompt_mistral(message: str, chat_history, instructions: str) -> str:
if len(chat_history) == 0:
# If chat_history is empty, return instructions and message
prompt = f"<s>[INST] {instructions} Hi [/INST] Hello! how can I help you</s>[INST] {message} [/INST]"
print("sending this prompt\n==============\n",prompt,'\n---------\n')
return prompt
else:
# Initialize chat history text with the first user message and instructions
user_message, bot_message = chat_history[0]
chat_history_text = f"<s>[INST] {instructions} {user_message} [/INST] {bot_message}</s>"
# Use a list comprehension to build the rest of the chat history text
chat_history_text += "".join(f"[INST] {user_message} [/INST] {bot_message}</s>" for user_message, bot_message in chat_history[1:])
Hi all, the tokenizer.apply_chat_template() method can handle this for you:
messages = [
{"role": "system", "content": "System message here"},
{"role": "user", "content:" "User message here"}
]
prompt = tokenizer.apply_chat_template(messages)
You can see the documentation on chat templates for more information.
@Rocketknight1 @pvbhanuteja Thank you for sharing the answer!
But I also want to ask how for huggingface inference api?
Hi all, the
tokenizer.apply_chat_template()method can handle this for you:messages = [ {"role": "system", "content": "System message here"}, {"role": "user", "content:" "User message here"} ] prompt = tokenizer.apply_chat_template(messages)You can see the documentation on chat templates for more information.
This is incorrect. tokenizer.apply_chat_template will look chat_template key value from here at https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.1/blob/main/tokenizer_config.json
The format at chat_template doesn't incline with the actual mistral website. https://docs.mistral.ai/usage/guardrailing I will try to open a PR and make changes to the chat template accordingly.