模型概述
模型特點
模型能力
使用案例
🚀 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,
}



