HuggingFace镜像/Breeze-7B-Instruct-v1_0
模型介绍文件和版本分析
下载使用量0

MediaTek Research Breeze-7B-Instruct-v1_0 模型卡片

MediaTek Research Breeze-7B(以下简称 Breeze-7B)是一个基于 [Mistral-7B] 构建的语言模型系列,专为繁体中文使用场景设计。

[Breeze-7B-Base] 是 Breeze-7B 系列的基础模型。 如果您拥有大量微调数据,并希望针对特定使用场景进行模型调整,那么它会是一个合适的选择。

Breeze-7B-Instruct 源自基础模型 Breeze-7B-Base,因此该模型可直接用于处理常见任务。

目前发布的 Breeze-7B 版本为 v1.0,与 Breeze-7B-v0_1 相比,其训练过程更为精细,在英文和繁体中文上的性能均得到显著提升。

有关此模型的详细信息,请阅读我们的 论文。

实用性方面:

  • Breeze-7B-Base 在原始词汇表基础上新增了 30,000 个繁体中文 tokens。在词汇表扩展后,在同等条件下,Breeze-7B 处理繁体中文的推理速度是 Mistral-7B 和 Llama 7B 的两倍。[参见 推理性能]
  • Breeze-7B-Instruct 可直接用于常见任务,如问答、RAG、多轮对话和文本摘要。

性能方面:

  • 与 Taiwan-LLM-7B/13B-chat、QWen(1.5)-7B-Chat、Yi-6B-Chat 等同等规模的开源同期模型相比,Breeze-7B-Instruct 在繁体中文和英文基准测试中均表现出令人印象深刻的性能。[参见 聊天模型性能]

特性

  • Breeze-7B-Base-v1_0
    • 将词汇表大小从 32k 扩展至 62k,以更好地支持繁体中文
    • 8k token 上下文长度
  • Breeze-7B-Instruct-v1_0
    • 将词汇表大小从 32k 扩展至 62k,以更好地支持繁体中文
    • 8k token 上下文长度
    • 多轮对话(未针对危害性进行特殊处理)

模型详情

  • Breeze-7B-Base-v1_0
    • 微调自:[mistralai/Mistral-7B-v0.1]
    • 模型类型:因果解码器仅 transformer 语言模型
    • 语言:英语和繁体中文(zh-tw)
  • Breeze-7B-Instruct-v1_0
    • 微调自:[MediaTek-Research/Breeze-7B-Base-v1_0]
    • 模型类型:因果解码器仅 transformer 语言模型
    • 语言:英语和繁体中文(zh-tw)

基础模型性能

此处我们将 Breeze-7B-Base-v1_0 与其他参数规模相近、且在中文领域表现广受认可的开源基础语言模型进行比较。 TMMLU+、DRCD 和 Table 数据来源于 [MediaTek-Research/TCEval-v2]。 [MediaTek-Research/TCEval-v2] 衍生自 [TCEval-v1] 和 [ikala/tmmluplus]。MMLU 数据来源于 [hails/mmlu_no_train]。 我们使用基于 [EleutherAI/lm-evaluation-harness] 修改的代码来评估 TMMLU+、DRCD、Table 和 MMLU。所有选择题均采用对数似然法进行选择。

模型参数数量TMMLU+(准确率)DRCD(精确匹配)Table(准确率)MMLU(准确率)
中文,知识类中文,推理类中文,推理类英文,知识类
5 轮示例3 轮示例5 轮示例5 轮示例
[Yi-6B]6B49.6376.6134.7265.35
[Qwen1.5-7B]7B46.5974.4130.5663.07
[Breeze-7B-Base-v1_0]7B42.6780.6131.9961.24
[Mistral-7B-v0.1]7B36.9379.2727.7864.89

指令微调模型性能

本文将Breeze-7B-Instruct-v1_0与其他参数规模相近、在中文领域表现优异的开源指令微调语言模型进行对比。

TMMLU+、DRCD、Table和MT-Bench-tw的数据来源于[MediaTek-Research/TCEval-v2]。[MediaTek-Research/TCEval-v2]基于[TCEval-v1]和[ikala/tmmluplus]开发。MMLU的数据来源于[hails/mmlu_no_train]。MT-Bench的数据来源于[lmsys/mt_bench_human_judgments]。

我们使用基于[EleutherAI/lm-evaluation-harness]修改的代码对TMMLU+、DRCD、Table和MMLU进行评估。所有选择题均采用对数似然法进行选项选择。

模型参数规模MT-Bench-tw(得分)TMMLU+(准确率)Table(准确率)MT-Bench(得分)MMLU(准确率)
繁体中文,对话繁体中文,知识繁体中文,推理英文,对话英文,知识
零样本零样本零样本零样本零样本
[Qwen1.5-7B-Chat]70亿6.445.6534.727.661.85
Breeze-7B-Instruct-v1_070亿6.042.6739.587.461.73
[Mistral-7B-v0.2-Instruct]70亿5.634.9533.337.659.97
[Yi-6B-Chat]60亿5.044.7925.696.059.45
[Taiwan-LLM-13B-v2.0-chat]130亿5.029.4723.61不适用*50.50
[Taiwan-LLM-7B-v2.1-chat]70亿4.228.0831.25不适用*42.72

* Taiwan-LLM模型以繁体中文回答英文多轮问题。

MT-Bench-tw(零样本)详细数据:
模型
理工科信息提取推理数学编程角色扮演写作人文社科平均分
Qwen1.5-7B-Chat95.64.72.83.78.08.09.46.4
Breeze-7B-Instruct-v1_07.85.24.24.24.17.65.99.16.0
Mistral-7B-v0.2-Instruct6.94.64.33.34.47.26.27.85.6
Yi-6B-Chat7.32.73.13.32.37.25.28.85.0
Taiwan-LLM-13B-v2.0-chat6.13.44.12.33.17.46.66.85.0
Taiwan-LLM-7B-v2.1-chat5.22.62.31.23.46.65.76.84.2
TMMLU+(零样本)详细数据:
模型
理工科社会科学人文科学其他平均分
Qwen1.5-7B-Chat41.4851.6644.0545.4045.65
Breeze-7B-Instruct-v1_036.4648.3845.1140.7542.67
Mistral-7B-v0.2-Instruct32.7938.0534.8934.0434.94
Yi-6B-Chat37.8051.7445.3644.2544.79
Taiwan-LLM-13B-v2.0-chat27.7433.6927.0329.4329.47
Taiwan-LLM-7B-v2.1-chat25.5831.7627.3627.6128.08

推理性能

在本测试中,我们使用[网络文章]的前700个字符作为输入,要求模型重新撰写同一篇文章。 所有推理均在Atlas 800T A2上运行(使用vllm,张量并行大小为2)。

模型推理时间(秒)预估最大输入长度(字符)
Qwen1.5-7B-Chat9.3538.9k
Yi-6B-Chat10.625.2k
Breeze-7B-Instruct-v1_010.7411.1k
Mistral-7B-Instruct-v0.220.485.1k
Taiwan-LLM-7B-v2.1-chat26.262.2k

使用方法

import argparse
from openmind import AutoModel, AutoTokenizer
from openmind import is_torch_npu_available

def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument("--model_name_or_path",type=str,help="Path to model",default=None,)
    args = parser.parse_args()
    return args


if __name__ == '__main__':
    if is_torch_npu_available():
        device = "npu:0"
    else:
        device = "cpu"
    args = parse_args()
    model_path = args.model_name_or_path

    tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True, add_eos_token=True)

    model = AutoModel.from_pretrained(model_path, trust_remote_code=True).to(device)

    inputs = tokenizer.encode("def print_hello_world():\tprint('Hello World!')", return_tensors="pt").to(device)
    embedding = model(inputs)[0]
    print(f'Dimension of the embedding: {embedding[0].size()}')
    print(embedding)