Vbd Llama2 7B 50b Chat
模型概述
模型特點
模型能力
使用案例
🚀 VBD-LLaMA2-Chat - 專為越南語打造的對話式微調LLaMA2模型
VBD-LLaMA2-Chat是基於Meta的LLaMA2-7B微調而來的模型,專門針對越南語進行了優化。該模型旨在支持越南本地構建大語言模型(LLM),通過在大規模越南語和英語語料上進行預訓練和微調,提升了模型在越南語對話場景中的表現。
📦 模型信息
屬性 | 詳情 |
---|---|
模型類型 | VBD-LLaMA2-7B-50b、VBD-LLaMA2-7B-50b-Chat |
訓練數據 | 400億越南語和160億英語標記(共560億標記) |
⚠️ 重要提示
- 使用許可:使用本模型發佈的權重,即表示您同意並遵守Meta的LLaMA-2許可條款。
- 模型風險:儘管我們已盡力減少誤導性、不準確和有害內容的生成,但模型仍存在固有風險。建議在嚴格監督的環境中使用該模型,並進行額外測試和對齊處理。使用該模型必須遵守當地法規,作者對因使用發佈的權重而產生的任何索賠、損害或其他責任不承擔責任。
🚀 快速開始
我們發佈了VBD-LLaMA2-7B-Chat,這是一個基於Meta的LLaMA2-7B專門為越南語🇻🇳微調的模型。這是我們支持社區構建越南語大語言模型(LLM)的一部分努力。該模型的預訓練權重是通過在包含1000億越南語🇻🇳標記和400億英語🇬🇧標記的語料庫上擴展LLaMA2的詞彙表,進行連續的自監督學習(SSL)訓練得到的。這種方法試圖充分利用現有語言模型的潛力,並將其適應於資源較少的語言,從而降低為這些語言構建LLM所需的硬件、時間和數據成本。隨後,使用我們內部的SFT數據集(包含200萬個越南語樣本)進行了有監督的微調(SFT)。
✨ 主要特性
- 多語言支持:模型在越南語和英語語料上進行訓練,支持多語言交互。
- 對話優化:通過監督微調,模型在對話場景中表現出色。
- 低資源適應:嘗試降低為低資源語言構建LLM的成本。
💻 使用示例
基礎用法
import torch
from transformers import AutoConfig, AutoModelForCausalLM, AutoTokenizer
model_path = "LR-AI-Labs/vbd-llama2-7B-50b-chat"
tokenizer = AutoTokenizer.from_pretrained(model_path, use_fast=False)
model = AutoModelForCausalLM.from_pretrained(
model_path, torch_dtype=torch.bfloat16,
device_map='auto',
# load_in_8bit=True
)
model.eval()
SYS_PROMPT = "A chat between a curious user and an artificial intelligence assistant. "\
"The assistant gives helpful, detailed, and polite answers to the user's questions."
def response_generate(input_prompt):
input_ids = tokenizer(input_prompt, return_tensors="pt")
outputs = model.generate(
inputs=input_ids["input_ids"].to("cuda"),
attention_mask=input_ids["attention_mask"].to("cuda"),
do_sample=True,
temperature=0.7,
top_k=50,
top_p=0.9,
max_new_tokens=1024,
eos_token_id=tokenizer.eos_token_id,
pad_token_id=tokenizer.pad_token_id
)
response = tokenizer.batch_decode(outputs, skip_special_tokens=True)[0]
response = response.split("ASSISTANT:")[-1].strip()
return response
print(response_generate(f"{SYS_PROMPT} USER: Xin chào, bạn là ai? ASSISTANT:"))
# Xin chào, ViVi là một trợ lý trí tuệ nhân tạo có thể trả lời câu hỏi của bạn và trò chuyện với bạn.
單輪對話示例
print(response_generate(f"{SYS_PROMPT} USER: Cách để nấu món phở ngon ASSISTANT:"))
多輪對話示例
turns = []
while True:
user_input = input("USER: ")
turns.append("USER: " + user_input)
bot_output = "ASSISTANT: " + response_generate("%s %s ASSISTANT:" %(SYS_PROMPT, " ".join(turns)))
print(bot_output)
turns.append(bot_output)
# USER: Xin chào
# ASSISTANT: Xin chào. Làm thế nào ViVi có thể giúp bạn?
# USER: Anh bị đau đầu quá
# ASSISTANT: Bạn có thể nói với ViVi nhiều hơn về cơn đau đầu của bạn?
# USER: anh bị đau nửa đầu về đêm, sáng dậy không tỉnh táo
# ASSISTANT: Điều quan trọng là bạn nhận thức được rằng cơn đau đầu của bạn không phải là điều hiếm gặp và nó có thể có nhiều nguyên nhân. Một số nguyên nhân phổ biến của cơn đau đầu là căng thẳng, thiếu ngủ, căng thẳng, chế độ ăn uống kém và mất nước.
# Nếu cơn đau đầu của bạn không giảm đi sau khi nghỉ ngơi và nghỉ ngơi, điều quan trọng là bạn nói chuyện với bác sĩ của bạn. Bác sĩ của bạn có thể giúp bạn xác định nguyên nhân của cơn đau đầu của bạn và đề xuất các phương pháp điều trị thích hợp.
# USER: có cách nào giảm đau tại nhà không?
# ASSISTANT: Có, có một số cách bạn có thể thử giảm đau đầu tại nhà:
# - Uống nhiều nước để giảm đau đầu do mất nước.
# - Nghỉ ngơi và ngủ nhiều hơn.
# - Áp dụng băng lạnh hoặc nóng vào khu vực đau.
# - Áp dụng thuốc giảm đau không kê đơn như ibuprofen hoặc paracetamol.
# - Thực hiện các kỹ thuật thư giãn như thiền, thở sâu hoặc yoga.
# - Massage khu vực bị ảnh hưởng.
# Điều quan trọng cần nhớ là trong khi các biện pháp khắc phục tại nhà có thể giúp giảm đau đầu, chúng không thay thế cho lời khuyên y tế chuyên nghiệp. Nếu cơn đau đầu của bạn vẫn tồn tại hoặc trở nên tồi tệ hơn, điều quan trọng là bạn nói chuyện với bác sĩ của bạn.
🔧 技術細節
預訓練方案
我們提議對30億、70億和130億參數的大語言模型(如LLaMA、Bloom、MPT、Falcon等)進行越南語和英語的持續預訓練。通過將英語潛在空間的知識轉移到越南語潛在空間,增強模型在越南語對話中的能力,同時保留其英語能力。具體步驟包括:
- 從英語/多語言大語言模型開始,如https://huggingface.co/meta-llama/Llama-2-7b-hf。
- 重建基於BPE的分詞器,保留原始標記並融入越南語音節。
- 通過微調“添加的潛在空間”同時凍結原始潛在空間,利用英越和越英翻譯任務進行知識轉移。
- 使用新的潛在空間(原始潛在空間 + 添加的潛在空間),在400億英語標記和1000億越南語標記的無監督語料上進行自監督學習(SSL)微調。採用混合訓練策略,提升模型的零樣本/少樣本能力。
- 30億參數模型的訓練時間約為8000 GPU小時(在DGX 8 A100s 40GB GPU上約44天),70億參數模型約為16000 GPU小時(在DGX 8 A100s 40GB GPU上約84天)。
- 定期評估模型,觀察改進情況並可能提前完成訓練。
自監督微調(SFT)
VBD-LLaMA2-7B-50b-Chat在200萬條對話數據上進行微調,期望在未來對話系統中得到更多應用。
📚 詳細文檔
評估
我們使用@hieunguyen1053 fork of lm-evaluation-harness在多個公開數據集上對模型進行評估,並結合VinaLLaMA作者提供的結果。評估結果如下:
越南語數據集基準測試
模型 | 模型大小 | arc_vi (acc) | hellaswag_vi (acc) | mmlu_vi (acc) | truthfulqa_vi (acc) | 平均 |
---|---|---|---|---|---|---|
URA-LLaMA-13B | 0.3752 | 0.4830 | 0.3973 | 0.4574 | 0.4282 | |
BLOOMZ-7B | 0.3205 | 0.4930 | 0.3975 | 0.4523 | 0.4158 | |
PhoGPT-7B5-Instruct | 0.2470 | 0.2578 | 0.2413 | 0.4759 | 0.3055 | |
SeaLLM-7B-chat | 0.3607 | 0.5112 | 0.3339 | 0.4948 | 0.4252 | |
Vietcuna-7b-v3 | 0.3419 | 0.4939 | 0.3354 | 0.4807 | 0.4130 | |
VinaLLaMA-2.7B-chat | 0.3273 | 0.4814 | 0.3051 | 0.4972 | 0.4028 | |
VinaLLaMA-7B-chat | 0.4239 | 0.5407 | 0.3932 | 0.5251 | 0.4707 | |
VBD-LLaMA2-7B-50b | 0.3222 | 0.5195 | 0.2964 | 0.4614 | 0.3999 | |
VBD-LLaMA2-7B-50b-Chat | 0.3585 | 0.5207 | 0.3444 | 0.5179 | 0.4354 |
英語數據集基準測試
組織 | 模型 | 模型大小 | ARC (ACC) | HellaSwag (ACC) | LAMBADA (perplexity) | MMLU (ACC) |
---|---|---|---|---|---|---|
VLSP | hoa-7b | ~7B | 0.2722 | 0.4867 | 18.53 | |
BK Lab | LLaMA-2-BK | ~7B | 0.4164 | 0.7216 | 5.010 | |
ViLM | vietcuna-7b-v3 | ~7B | 0.3976 | 0.6309 | 7.125 | |
BigScience | Bloomz-T0 | ~7B | 0.436 | 0.6401 | 6.542 | 0.3785 |
TII | Falcon-7B-Instruct | ~7B | 0.4258 | 0.6976 | 7.463 | 0.2584 |
MosaicML | MPT-7B-Chat | ~7B | 0.4258 | 0.7438 | 5.797 | 0.3762 |
Meta | LLaMA-2-Chat | ~7B | 0.442 | 0.7547 | 3.968 | 0.4832 |
AISingapore | Sealion7b | ~7B | 0.3422 | 0.6705 | 6.715 | 0.268 |
VBD | VBD-LLaMA2-7B-50b-Chat | ~7B | 0.4556 | 0.7384 | 4.645 | 0.4558 |
基於這些結果,我們的模型在越南語任務上表現與大多數模型相當或更優,證明了該方法的潛力。此外,模型在多輪對話場景中表現出色,並在多項選擇題和回答任務中展示了能力。
📄 許可證
本模型使用的許可證為LLaMA2許可證。使用我們發佈的權重即表示您同意並遵守Meta的LLaMA-2許可證條款。
💡 使用建議
- 調整“temperature”、“top_k”和“top_p”參數以適應不同的使用場景。
- 由於模型在推理、編碼或數學任務上表現不佳,且可能產生有害、有偏見的響應或不安全的回答,使用時應謹慎並驗證重要信息。
- 對於越南歷史、文化和社會相關問題,模型仍存在困難。可嘗試以下方法改進模型:
- 數據蒸餾:構建本地/領域知識的小數據集進行持續訓練。
- 模型合併/組合/集成:採用類似知識蒸餾的訓練過程,使用先前訓練的模型組合作為教師模型。
- RLHF/對齊:使用RFHF或對齊技術(如DPO)進行訓練。
- 檢索增強生成(RAG):將模型與外部知識源結合。
致謝
感謝VinBigData JSC的虛擬助理技術中心,由Dr. Kim Anh Nguyen領導,為項目提供了必要的資源。同時感謝VinBigData自然語言處理部門的同事,他們的反饋和專業知識對項目有很大幫助。
引用
如果您認為我們的項目有用,請為我們的倉庫加星並按以下方式引用我們的工作:



