项目简介
概述
Llama-3.1-Swallow-70B-Instruct-v0.1是Llama 3.1 Swallow系列中的一个大规模语言模型,此系列包括8B和70B版本。这些模型基于Meta Llama 3.1,通过在多种语料库上继续预训练而成,特别增强了日语的处理能力,同时保留了英语处理能力。应用了约2000亿个词元,来源为大规模日文网络语料库(Swallow Corpus Version 2)、日英维基百科文章、数学和代码内容等。
发布历史
在2024年10月8日,Llama-3.1-Swallow-8B和70B版本的初期版本,以及指令优化版的模型,一同释出。这些模型可以在Hugging Face上获取。
模型架构与特性
- 模型类型:请参阅Llama 3.1的模型卡了解模型架构的详细信息。
- 支持语言:日语和英语
- 使用库:使用NVIDIA的Megatron-LM库
- 分词器:详情请参见Llama 3.1博客
- 联系方式:swallow[at]nlp.c.titech.ac.jp
模型性能
在日语任务上的表现
Llama 3.1 Swallow 70B Instruct在多个日语任务中展现出优异的性能,例如JCom、JSQuAD和WMT20等任务,表现出色,特别是在机器翻译方面提高显著。
在英语任务上的表现
在英语任务中,如OpenBookQA、TriviaQA和HellaSWAG,Llama 3.1 Swallow 70B Instruct展示了良好的成绩,尤其在多项选择题和开放式问题回答上有亮眼的表现。
评价基准
针对日语和英语的评估使用了多种评价基准,如JP Language Model Evaluation Harness和Language Model Evaluation Harness等,涵盖了阅读理解、常识推理、机器翻译和代码生成等多种类型任务。
使用方法
用户可以通过安装vllm库并引入transformers库来使用该模型。以下是一个使用Python加载模型并生成文本的简单示例:
pip install vllm
from transformers import AutoTokenizer
from vllm import LLM, SamplingParams
model_name = "tokyotech-llm/Llama-3.1-Swallow-70B-Instruct-v0.1"
tokenizer = AutoTokenizer.from_pretrained(model_name)
llm = LLM(
model=model_name,
tensor_parallel_size=4,
)
sampling_params = SamplingParams(
temperature=0.6, top_p=0.9, max_tokens=512, stop="<|eot_id|>"
)
message = [
{"role": "system", "content": "あなたは誠実で優秀な日本人のアシスタントです。"},
{
"role": "user",
"content": "東京の紅葉した公園で、東京タワーと高層ビルを背景に、空を舞うツバメと草地に佇むラマが出会う温かな物語を書いてください。",
},
]
prompt = tokenizer.apply_chat_template(
message, tokenize=False, add_generation_prompt=True
)
output = llm.generate(prompt, sampling_params)
print(output[0].outputs[0].text)
训练数据集
Llama-3.1-Swallow-70B-Instruct-v0.1的指令调优部分使用了专门为日语合成的数据集,其中包括lmsys-chat-1m-synth-ja,以及其他高质量的日语和英语语料库。
该项目的详细信息和代码示例可以通过官方网站(https://swallow-llm.github.io/)获取。这个项目为想进一步探索和使用日语和英语大语言模型的研究者及开发者提供了强大的工具和资源。