语言:
- 泰语
- 英语
任务标签: 文本生成
许可证: llama3
Llama-3-Typhoon-1.5X-8B-instruct:泰语大语言模型(指令版)
Llama-3-Typhoon-1.5X-8B-instruct 是一款专为泰语 🇹🇭 设计的80亿参数指令模型。其性能可与GPT-3.5-turbo媲美,并针对应用场景、检索增强生成(RAG)、受限生成和推理任务进行了优化。
基于Typhoon 1.5 8B和Llama 3 8B Instruct构建。该模型是我们跨语言迁移实验的成果,采用任务算术模型编辑技术,将Typhoon的泰语理解能力与Llama 3 Instruct的人类对齐性能相结合。
备注:为认可Meta创建基础模型的努力并遵守许可证,我们在模型名称中明确包含"llama-3"。
模型描述
- 模型类型:基于Llama架构的80亿参数指令解码器模型
- 要求:Transformers 4.38.0或更高版本
- 主要语言:泰语 🇹🇭 和英语 🇬🇧
- 许可证:Llama 3社区许可证
性能表现
我们从语言与知识能力和指令遵循能力两个维度评估模型表现。
- 语言与知识能力:
- 使用ThaiExam和MMLU等多项选择题数据集进行评估
- 指令遵循能力:
- 基于beta用户反馈,重点关注两个因素:
- 人类对齐与推理:生成清晰且逻辑分步响应的能力
- 指令遵循:遵守指令中特定约束的能力
- 采用IFEval评估——衡量LLMs在格式、简洁性等方面的约束遵循能力
备注:我们通过翻译原始数据集并进行人工验证,构建了泰语评估对。
ThaiExam
模型 |
ONET |
IC |
TGAT |
TPAT-1 |
A-Level |
平均(ThaiExam) |
MMLU |
Typhoon-1.5 8B |
0.446 |
0.431 |
0.722 |
0.526 |
0.407 |
0.5028 |
0.6136 |
Typhoon-1.5X 8B |
0.478 |
0.379 |
0.722 |
0.5 |
0.435 |
0.5028 |
0.6369 |
gpt-3.5-turbo-0125 |
0.358 |
0.279 |
0.678 |
0.345 |
0.318 |
0.3956 |
0.700** |
** MMLU分数引用自GPT-4技术报告
MT-Bench
模型 |
MT-Bench泰语 |
MT-Bench英语 |
Typhoon-1.5 8B |
6.402 |
7.275 |
Typhoon-1.5X 8B |
6.902 |
7.9 |
gpt-3.5-turbo-0125 |
6.186 |
8.181 |
IFEval
模型 |
IFEval泰语 |
IFEval英语 |
Typhoon-1.5 8B |
0.548 |
0.676 |
Typhoon-1.5X 8B |
0.548 |
0.691 |
gpt-3.5-turbo-0125 |
0.479 |
0.659 |
技术洞察
通过模型编辑技术,我们发现生成准确泰语回答的关键特征位于模型后端(transformer块的上层)。因此在这些层级采用了较高比例的Typhoon组件以提升性能。
使用示例
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "scb10x/llama-3-typhoon-v1.5x-8b-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype=torch.bfloat16,
device_map="auto",
)
messages = [...]
input_ids = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
return_tensors="pt"
).to(model.device)
terminators = [
tokenizer.eos_token_id,
tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
outputs = model.generate(
input_ids,
max_new_tokens=512,
eos_token_id=terminators,
do_sample=True,
temperature=0.4,
top_p=0.95,
)
response = outputs[0][input_ids.shape[-1]:]
print(tokenizer.decode(response, skip_special_tokens=True))
对话模板
采用Llama 3对话模板:
{% set loop_messages = messages %}{% for message in loop_messages %}{% set content = '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' %}{% if loop.index0 == 0 %}{% set content = bos_token + content %}{% endif %}{{ content }}{% endfor %}{% if add_generation_prompt %}{{ '<|start_header_id|>assistant<|end_header_id|>\n\n' }}{% endif %}
使用范围与限制
本模型为实验性质,尚未针对所有使用场景进行全面评估。开发者应在具体应用场景中自行评估风险。
关注我们
https://twitter.com/opentyphoon
支持
https://discord.gg/us5gAYmrxw
SCB 10X Typhoon团队
- Kunat Pipatanakul, Potsawee Manakul, Sittipong Sripaisarnmongkol, Natapong Nitarach, Pathomporn Chokchainant, Kasima Tharnpipitchai
- 若Typhoon-1.5X对您的工作有帮助,请引用:
@article{pipatanakul2023typhoon,
title={Typhoon: 泰语大语言模型},
author={Kunat Pipatanakul and Phatrasek Jirabovonvisut and Potsawee Manakul and Sittipong Sripaisarnmongkol and Ruangsak Patomwong and Pathomporn Chokchainant and Kasima Tharnpipitchai},
year={2023},
journal={arXiv预印本 arXiv:2312.13951},
url={https://arxiv.org/abs/2312.13951}
}
联系我们