MediaTek Research Breeze-7B(以下简称 Breeze-7B)是一个基于 [Mistral-7B] 构建的语言模型系列,专门面向繁体中文使用场景。
[Breeze-7B-Base] 是 Breeze-7B 系列的基础模型。如果您拥有大量微调数据,需要针对特定用例进行模型调整,那么它会是合适的选择。
Breeze-7B-Instruct 衍生自基础模型 Breeze-7B-Base,因此该模型可直接用于处理常见任务。
[Breeze-7B-Instruct-64k] 是 Breeze-7B-Instruct 的一个略微修改版本,其上下文长度扩展至 64k tokens,大致相当于 88k 个繁体中文字符。
更新(2024年3月7日):Breeze-7B 当前发布版本为 v1.0。详见 Breeze-7B-Instruct-v1_0。
当前发布的 Breeze-7B 版本为 v0.1。
实用性方面:
性能方面:
此处将 Breeze-7B-Base-v0_1 与其他参数规模相近、且在中文领域公认表现优异的开源基础语言模型进行对比。 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-34B] | 34B | 63.10 | 84.57 | 49.31 | 77.42 |
| [Qwen-14B] | 14B | 51.30 | 16.95 * | 50.69 | 68.83 |
| [Yi-6B] | 6B | 49.63 | 76.61 | 34.72 | 65.35 |
| [Qwen-7B] | 7B | 42.84 | 0.0 * | 39.58 | 61.00 |
| [Breeze-7B-Base-v0_1] | 7B | 40.35 | 81.13 | 28.47 | 61.63 |
| [Mistral-7B-v0.1] | 7B | 36.93 | 79.27 | 27.78 | 64.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+(准确率) | TMMLU+(准确率) | DRCD(精确匹配率) | Table(准确率) | MT-Bench(得分) | MMLU(准确率) | MMLU(准确率) | |
|---|---|---|---|---|---|---|---|---|---|
| 中文,对话 | 中文,知识 | 中文,知识 | 中文,推理 | 中文,推理 | 英文,对话 | 英文,知识 | 英文,知识 | ||
| 零样本 | 零样本 | 五样本 | 三样本 | 零样本 | 零样本 | 零样本 | 五样本 | ||
| [Yi-34B-Chat] | 34B | 6.9 | 54.87 | 36.81 | 7.6 | 71.04 | |||
| [Qwen-14B-Chat] | 14B | 6.4 | 48.41 | 41.67 | 7.2 | 64.91 | |||
| Breeze-7B-Instruct-v0_1 | 7B | 5.7 | 41.61 | 45.83 | 7.1 | 63.26 | |||
| [Breeze-7B-Instruct-64k-v0_1] | 7B | 5.5 | 40.99 | 36.11 | 7.1 | 63.68 | |||
| [Qwen-7B-Chat] | 7B | 5.4 | 40.02 | 33.33 | 6.2 | 55.94 | |||
| [Yi-6B-Chat] | 6B | 5.0 | 44.79 | 25.69 | 6.0 | 59.45 | |||
| [Taiwan-LLM-13B-v2.0-chat] | 13B | 5.0 | 29.47 | 23.61 | -* | 50.50 | |||
| [Taiwan-LLM-7B-v2.1-chat] | 7B | 4.2 | 28.08 | 31.25 | -* | 42.72 |
| MT-Bench-tw(零样本)详细数据: 模型 | 理工科 | 信息提取 | 推理 | 数学 | 编程 | 角色扮演 | 写作 | 人文社科 | 平均分 |
|---|---|---|---|---|---|---|---|---|---|
| Yi-34B-Chat | 9.0 | 4.8 | 5.7 | 4.0 | 4.7 | 8.5 | 8.7 | 9.8 | 6.9 |
| Qwen-14B-Chat | 7.6 | 5.7 | 4.5 | 4.2 | 5.3 | 7.5 | 7.3 | 9.1 | 6.4 |
| Breeze-7B-Instruct-v0_1(https://modelers.cn/models/FuJianAscend/Breeze-7B-Instruct-v0_1) | 6.5 | 5.6 | 3.9 | 3.6 | 4.3 | 6.9 | 5.7 | 9.3 | 5.7 |
| Breeze-7B-Instruct-64k-v0_1 | 6.1 | 5.3 | 3.7 | 2.9 | 4.2 | 7.0 | 6.7 | 8.3 | 5.5 |
| Qwen-7B-Chat | 6.6 | 4.5 | 4.8 | 2.9 | 3.6 | 6.2 | 6.8 | 8.2 | 5.4 |
| Yi-6B-Chat | 7.3 | 2.7 | 3.1 | 3.3 | 2.3 | 7.2 | 5.2 | 8.8 | 5.0 |
| Taiwan-LLM-13B-v2.0-chat | 6.1 | 3.4 | 4.1 | 2.3 | 3.1 | 7.4 | 6.6 | 6.8 | 5.0 |
| Taiwan-LLM-7B-v2.1-chat | 5.2 | 2.6 | 2.3 | 1.2 | 3.4 | 6.6 | 5.7 | 6.8 | 4.2 |
| TMMLU+(零样本)详细数据: 模型 | 理工科 | 社会科学 | 人文科学 | 其他 | 平均分 |
|---|---|---|---|---|---|
| Yi-34B-Chat | 47.65 | 64.25 | 52.73 | 54.91 | 54.87 |
| Qwen-14B-Chat | 43.83 | 55.00 | 48.55 | 46.22 | 48.41 |
| Yi-6B-Chat | 37.80 | 51.74 | 45.36 | 44.25 | 44.79 |
| Breeze-7B-Instruct-v0_1(https://modelers.cn/models/FuJianAscend/Breeze-7B-Instruct-v0_1) | 37.41 | 46.81 | 42.06 | 40.16 | 41.61 |
| Breeze-7B-Instruct-64k-v0_1 | 37.88 | 46.35 | 40.31 | 39.40 | 40.99 |
| Qwen-7B-Chat | 35.44 | 46.22 | 38.35 | 40.06 | 40.02 |
| Taiwan-LLM-13B-v2.0-chat | 27.74 | 33.69 | 27.03 | 29.43 | 29.47 |
| Taiwan-LLM-7B-v2.1-chat | 25.58 | 31.76 | 27.36 | 27.61 | 28.08 |
在本测试中,我们使用[网络文章]的前700个字符作为输入,要求模型重新撰写同一篇文章。
所有推理均在Atlas 800T A2上运行(使用vllm,张量并行大小为2)。
| 模型 | 推理时间(秒) | 预估最大输入长度(字符) |
|---|---|---|
| Yi-6B-Chat | 10.62 | 5.2k |
| Breeze-7B-Instruct-v0_1(https://modelers.cn/models/FuJianAscend/Breeze-7B-Instruct-v0_1) | 10.74 | 11.1k |
| Breeze-7B-Instruct-64k-v0_1 | 10.74 | 88.8k |
| Qwen-7B-Chat | 10.86 | 9.8k |
| Qwen-14B-Chat | 18.89 | 9.8k |
| Mistral-7B-v0.1-Instruct | 20.48 | 5.1k |
| Taiwan-LLM-7B-v2.1-chat | 26.26 | 2.2k |
| Taiwan-LLM-13B-v2.0-chat | 36.80 | 2.2k |
| Yi-34B-Chat | 43.71 | 4.5k |
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)