🚀 Vistral-7B-Chat - Towards a State-of-the-Art Large Language Model for Vietnamese
Vistral-7B-Chat is a multi-turn conversational large language model for Vietnamese. It extends from the Mistral 7B model, using diverse data for continual pre - training and instruction tuning to offer high - quality language interaction in Vietnamese.
🚀 Quick Start
To enable single/multi - turn conversational chat with Vistral-7B-Chat
, you can use the default chat template format:
Basic Usage
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
system_prompt = "Bạn là một trợ lí Tiếng Việt nhiệt tình và trung thực. Hãy luôn trả lời một cách hữu ích nhất có thể, đồng thời giữ an toàn.\n"
system_prompt += "Câu trả lời của bạn không nên chứa bất kỳ nội dung gây hại, phân biệt chủng tộc, phân biệt giới tính, độc hại, nguy hiểm hoặc bất hợp pháp nào. Hãy đảm bảo rằng các câu trả lời của bạn không có thiên kiến xã hội và mang tính tích cực."
system_prompt += "Nếu một câu hỏi không có ý nghĩa hoặc không hợp lý về mặt thông tin, hãy giải thích tại sao thay vì trả lời một điều gì đó không chính xác. Nếu bạn không biết câu trả lời cho một câu hỏi, hãy trẳ lời là bạn không biết và vui lòng không chia sẻ thông tin sai lệch."
tokenizer = AutoTokenizer.from_pretrained('Viet-Mistral/Vistral-7B-Chat')
model = AutoModelForCausalLM.from_pretrained(
'Viet-Mistral/Vistral-7B-Chat',
torch_dtype=torch.bfloat16,
device_map="auto",
use_cache=True,
)
conversation = [{"role": "system", "content": system_prompt }]
while True:
human = input("Human: ")
if human.lower() == "reset":
conversation = [{"role": "system", "content": system_prompt }]
print("The chat history has been cleared!")
continue
conversation.append({"role": "user", "content": human })
input_ids = tokenizer.apply_chat_template(conversation, return_tensors="pt").to(model.device)
out_ids = model.generate(
input_ids=input_ids,
max_new_tokens=768,
do_sample=True,
top_p=0.95,
top_k=40,
temperature=0.1,
repetition_penalty=1.05,
)
assistant = tokenizer.batch_decode(out_ids[:, input_ids.size(1): ], skip_special_tokens=True)[0].strip()
print("Assistant: ", assistant)
conversation.append({"role": "assistant", "content": assistant })
✨ Features
- Extended Tokenizer: The tokenizer of Mistral 7B is extended to better support Vietnamese.
- Continual Pre - training: Conducted on a diverse and cleaned Vietnamese text dataset.
- Instruction Tuning: Aligned with Vietnamese safety criteria through supervised fine - tuning using diverse instruction data.
- GGUF Version: Available for local running on your computer here.
📦 Installation
To deploy Vistral locally (e.g., on LM Studio), make sure that you are utilizing the specified chat template, download here. This step is very crucial to ensure that Vistral generates accurate answers.
📚 Documentation
Model Description
We introduce Vistral-7B-chat, a multi - turn conversational large language model for Vietnamese. Vistral is extended from the Mistral 7B model using diverse data for continual pre - training and instruction tuning. In particular, our process to develop Vistral involves:
- Extend the tokenizer of Mistral 7B to better support Vietnamese.
- Perform continual pre - training for Mistral over a diverse dataset of Vietnamese texts that are meticulously cleaned and deduplicated.
- Perform supervised fine - tuning for the model using diverse instruction data. We design a set of instructions to align the model with the safety criteria in Vietnam.
Acknowledgement
We thank Hessian AI and LAION for their support and compute in order to train this model. Specifically, we gratefully acknowledge LAION for providing access to compute budget granted by Gauss Centre for Supercomputing e.V. and by the John von Neumann Institute for Computing (NIC) on the supercomputers JUWELS Booster and JURECA at Juelich Supercomputing Centre (JSC).
Data
We will make the data available after we release the technical report for this model. However, we have made some of the data available here in our CulutraY and CulutraX datasets.
💻 Usage Examples
The code example in the "Quick Start" section shows how to use the default chat template format to enable single/multi - turn conversational chat with Vistral-7B-Chat
.
📄 License
The project is licensed under the afl - 3.0 license.
🔧 Technical Details
We evaluated our Vistral model using the VMLU leaderboard, a reliable framework for evaluating large language models in Vietnamese across various tasks. These tasks involve multiple - choice questions in STEM, Humanities, Social Sciences, and more. Our model achieved an average score of 50.07%, surpassing ChatGPT's performance of 46.33% significantly.
⚠️ Important Note
Despite extensive red teaming and safety alignment efforts, our model may still pose potential risks, including but not limited to hallucination, toxic content, and bias issues. We strongly encourage researchers and practitioners to fully acknowledge these potential risks and meticulously assess and secure the model before incorporating it into their work. Users are responsible for adhering to and complying with their governance and regulations. The authors retain the right to disclaim any accountability for potential damages or liability resulting from the use of the model.
📖 Citation
If you find our project useful, we hope you would kindly star our repo and cite our work as follows: huu@ontocord.ai, chienn@uoregon.edu, nguyenhuuthuat09@gmail.com and thienn@uoregon.edu
@article{chien2023vistral,
author = {Chien Van Nguyen, Thuat Nguyen, Quan Nguyen, Huy Nguyen, Björn Plüster, Nam Pham, Huu Nguyen, Patrick Schramowski, Thien Nguyen},
title = {Vistral-7B-Chat - Towards a State-of-the-Art Large Language Model for Vietnamese},
year = 2023,
}