许可证:llama3.1
语言:
- 乌兹别克语(uz)
- 英语(en)
基础模型:models/Meta-Llama-3.1-8B-Instruct
库名称:transformers
标签:
- llama
- 文本生成推理
- 摘要
- 翻译
- 问答
数据集:
- yahma/alpaca-cleaned
- behbudiy/alpaca-cleaned-uz
- behbudiy/translation-instruction
评估指标:
- BLEU
- COMET
- 准确率
流水线标签:文本生成
模型描述
LLaMA-3.1-8B-Instruct-Uz模型通过混合公开可用的乌兹别克语和英语数据以及合成构建的数据进行了指令微调,以保留其原始知识的同时增强其能力。该模型旨在支持乌兹别克语的各种自然语言处理任务,如机器翻译、摘要和对话系统,确保在这些应用中具有稳健的性能。
📊 性能对比:
模型名称 |
BLEU 乌译英(单样本) |
BLEU 英译乌(单样本) |
COMET(乌译英) |
COMET(英译乌) |
乌兹别克语情感分析 |
乌兹别克语新闻分类 |
MMLU(英语)(5样本) |
Llama-3.1 8B Instruct |
23.74 |
6.72 |
84.30 |
82.70 |
68.96 |
55.41 |
65.77 |
Llama-3.1 8B Instruct Uz |
27.42 |
11.58 |
85.63 |
86.53 |
82.42 |
60.84 |
62.78 |
Mistral 7B Instruct |
7.47 |
0.67 |
68.14 |
45.58 |
62.02 |
47.52 |
61.07 |
Mistral 7B Instruct Uz |
29.39 |
16.77 |
86.91 |
88.75 |
79.13 |
59.38 |
55.72 |
Mistral Nemo Instruct |
25.68 |
9.79 |
85.56 |
85.04 |
72.47 |
49.24 |
67.62 |
Mistral Nemo Instruct Uz |
30.49 |
15.52 |
87.04 |
88.01 |
82.05 |
58.20 |
67.36 |
Google Translate |
41.18 |
22.98 |
89.16 |
90.67 |
— |
— |
— |
结果显示,在FLORES+乌译英/英译乌评估数据集上,针对乌兹别克语优化的模型在翻译基准(BLEU和COMET)、乌兹别克语情感分析和新闻分类任务中均优于其基础版本。此外,在衡量英语多任务通用语言理解的MMLU基准上,微调后的模型未表现出显著下降。(由于我们的评估方法,基础Llama模型的MMLU分数与官方分数不同。详情请参考下方链接。)
展望未来,这些模型仅为早期版本。我们正在积极改进数据整理和微调方法,以期在不久的将来提供更优的结果。此外,我们将扩大持续预训练和指令微调的数据集规模,并为乌兹别克语定制其他强大的开源大语言模型。
我们期待看到乌兹别克社区如何利用这些模型,并期待继续推进这项工作。🚀
使用方法
Llama-3.1-8B-Instruct-Uz模型可与Transformers库及原版llama
代码库配合使用。
使用Transformers
从transformers >= 4.43.0
版本开始,您可以通过Transformers的pipeline
抽象或利用Auto类结合generate()
函数运行对话推理。
请通过pip install --upgrade transformers
确保更新您的Transformers安装。
import transformers
import torch
model_id = "behbudiy/Llama-3.1-8B-Instruct-Uz"
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
model_kwargs={"torch_dtype": torch.bfloat16},
device_map="auto",
)
messages = [
{"role": "system", "content": "对给定句子执行情感分析。"},
{"role": "user", "content": "我非常喜欢这部电影!"},
]
outputs = pipeline(
messages,
max_new_tokens=256,
)
print(outputs[0]["generated_text"][-1])
注:您还可以在huggingface-llama-recipes
中找到详细的使用指南,包括本地运行、torch.compile()
、辅助生成、量化等。
使用llama
请遵循仓库中的说明。
评估方法信息
为评估翻译任务,我们使用FLORES+乌译英/英译乌数据集,合并开发集和测试集以创建更大的评估数据子集。
我们使用以下提示进行单样本乌译英评估(英译乌评估时调换"英语"和"乌兹别克语"的位置):
prompt = f'''您是一名专业的乌兹别克语-英语翻译员。您的任务是将给定的乌兹别克语文本准确翻译成英语。
指令:
1. 将文本从乌兹别克语翻译为英语。
2. 保持原意和语气。
3. 使用恰当的英语语法和词汇。
4. 如遇歧义或生僻词,根据上下文提供最可能的翻译。
5. 仅输出英文翻译,无需额外注释。
示例:
乌兹别克语:"今天天气非常好,阳光明媚。"
英语:"The weather is very nice today, the sun is shining brightly."
请将以下乌兹别克语文本翻译成英语:
"{sentence}"
'''
为评估模型在乌兹别克语情感分析中的能力,我们使用risqaliyevds/uzbek-sentiment-analysis数据集,并通过GPT-4o API为其创建二元标签(0:负面,1:正面)(参见behbudiy/uzbek-sentiment-analysis数据集)。
我们使用以下提示进行评估:
prompt = f'''根据以下文本判断情感为"积极"或"消极"。仅回复单词"积极"或"消极",无需额外文本或解释。
文本:{text}"
'''
对于乌兹别克语新闻分类,我们使用risqaliyevds/uzbek-zero-shot-classification数据集,并要求模型预测新闻类别,提示如下:
prompt = f'''将给定的乌兹别克语新闻文章分类到以下类别之一。仅提供类别编号作为答案。
类别:
0 - 政治
1 - 经济
2 - 科技
3 - 体育
4 - 文化
5 - 健康
6 - 家庭与社会
7 - 教育
8 - 生态
9 - 国际新闻
请分类以下文章:
"{text}"
答案(仅编号):"
在MMLU上,我们使用以下模板进行5样本评估,并提取模型生成的第一个标记以测量准确率:
template = "以下是关于[学科领域]的多项选择题(含答案)。
[示例问题1]
A. 文本
B. 文本
C. 文本
D. 文本
答案:[正确答案字母]
...
[示例问题5]
A. 文本
B. 文本
C. 文本
D. 文本
答案:[正确答案字母]
现在,逐步思考后仅提供以下问题正确答案对应的字母,无需额外解释或评论。
[实际MMLU测试问题]
A. 文本
B. 文本
C. 文本
D. 文本
答案:"
更多信息
更多详情和示例,请参考基础模型:
https://huggingface.co/meta-llama/Meta-Llama-3.1-8B-Instruct