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自然语言处理部门的同事,他们的反馈和专业知识对项目有很大帮助。
引用
如果您认为我们的项目有用,请为我们的仓库加星并按以下方式引用我们的工作:



