模型简介
模型特点
模型能力
使用案例
🚀 Vistral-7B-Chat - 迈向越南语的先进大语言模型
Vistral-7B-Chat 是一款用于越南语的多轮对话大语言模型,它基于 Mistral 7B 模型扩展而来,通过多样化数据进行持续预训练和指令调优,为越南语自然语言处理任务提供了强大支持。
🚀 快速开始
要使用 Vistral-7B-Chat
进行单轮或多轮对话聊天,你可以使用以下默认聊天模板格式:
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, # change to torch.float16 if you're using V100
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 })
✨ 主要特性
- 基于强大基础模型:Vistral-7B-Chat 基于 Mistral 7B 模型扩展而来,继承了其优秀的语言理解和生成能力。
- 适配越南语:对 Mistral 7B 的分词器进行扩展,更好地支持越南语,能够处理越南语的语言特点和词汇。
- 多样化数据训练:通过多样化的越南语文本数据进行持续预训练和指令调优,使模型在各种越南语自然语言处理任务中表现出色。
- 符合安全标准:设计了一系列指令,使模型符合越南的安全标准,确保生成的回答安全、有用且无偏见。
📦 安装指南
文档未提及具体安装步骤,故跳过该章节。
💻 使用示例
基础用法
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, # change to torch.float16 if you're using V100
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 })
高级用法
文档未提及高级用法相关代码,故跳过该部分。
📚 详细文档
模型描述
我们推出了 Vistral-7B-chat,这是一款用于越南语的多轮对话大语言模型。Vistral 基于 Mistral 7B 模型扩展而来,通过多样化数据进行持续预训练和指令调优。具体而言,我们开发 Vistral 的过程包括:
- 扩展 Mistral 7B 的分词器,以更好地支持越南语。
- 在经过精心清理和去重的多样化越南语文本数据集上对 Mistral 进行持续预训练。
- 使用多样化的指令数据对模型进行有监督的微调。我们设计了一系列指令,使模型符合越南的安全标准。
GGUF 版本:可在本地计算机上运行 Vistral,点击 此处 获取。
注意:要在本地部署 Vistral(例如在 LM Studio 上),请确保使用指定的聊天模板,可从 此处 下载。此步骤对于确保 Vistral 生成准确答案至关重要。
致谢
我们感谢 Hessian AI 和 LAION 的支持和计算资源,使我们能够训练这个模型。特别感谢 LAION 提供由高斯超级计算中心(Gauss Centre for Supercomputing e.V.)和约翰·冯·诺伊曼计算研究所(John von Neumann Institute for Computing,NIC)在于利希超级计算中心(Juelich Supercomputing Centre,JSC)的超级计算机 JUWELS Booster 和 JURECA 上授予的计算预算。
数据
我们将在发布该模型的技术报告后公开数据。不过,我们已经在 CulutraY 和 CulutraX 数据集中公开了部分数据。
性能
我们使用 VMLU 排行榜 对 Vistral 模型进行了评估,这是一个可靠的框架,用于评估越南语大语言模型在各种任务中的表现。这些任务包括 STEM、人文、社会科学等领域的多项选择题。我们的模型平均得分达到 50.07%,显著超过了 ChatGPT 的 46.33% 的表现。
免责声明
尽管我们进行了广泛的红队测试和安全对齐工作,但我们的模型仍可能存在潜在风险,包括但不限于幻觉、有害内容和偏见问题。我们强烈建议研究人员和从业者充分认识到这些潜在风险,并在将模型集成到他们的工作中之前仔细评估和确保模型的安全性。用户有责任遵守和符合他们的治理和法规。作者保留对因使用该模型而导致的潜在损害或责任免责的权利。
🔧 技术细节
文档未提及具体技术实现细节,故跳过该章节。
📄 许可证
本项目采用 AFL-3.0 许可证。
📖 引用
如果你发现我们的项目有用,希望你能给我们的仓库点个星,并按以下方式引用我们的工作:huu@ontocord.ai, chienn@uoregon.edu, nguyenhuuthuat09@gmail.com 和 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,
}



