rinna/youri-7b-chat

rinna-icon

Overview

The model is the instruction-tuned version of rinna/youri-7b. It adopts a chat-style input format.


Benchmarking

Evaluation experiments suggest that rinna's youri-7b series outperforms other open-source Japanese LLMs on Japanese tasks according to our runs.

Model Model type 4-task score 6-task score 8-task score
rinna/youri-7b-instruction SFT 83.88 80.93 63.63
rinna/youri-7b-chat SFT 78.29 78.47 62.18
matsuo-lab/weblab-10b-instruction-sft SFT 78.75 75.05 59.11
rinna/youri-7b pre-trained 73.32 74.58 58.87
stabilityai/japanese-stablelm-instruct-alpha-7b SFT 70.10 71.32 54.71
elyza/ELYZA-japanese-Llama-2-7b pre-trained 71.72 69.28 53.17
elyza/ELYZA-japanese-Llama-2-7b-instruct SFT 70.57 68.12 53.14
stabilityai/japanese-stablelm-base-alpha-7b pre-trained 61.03 65.83 51.05
matsuo-lab/weblab-10b pre-trained 66.33 65.58 50.74
meta/llama2-7b pre-trained 56.33 54.80 42.97
rinna/japanese-gpt-neox-3.6b pre-trained 47.20 54.68 41.80
rinna/bilingual-gpt-neox-4b pre-trained 46.60 52.04 40.03

How to use the model

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("rinna/youri-7b-chat")
model = AutoModelForCausalLM.from_pretrained("rinna/youri-7b-chat")

if torch.cuda.is_available():
    model = model.to("cuda")

instruction = "次の日本語を英語に翻訳してください。"
input = "自然言語による指示に基づきタスクが解けるよう学習させることを Instruction tuning と呼びます。"

context = [
    {
        "speaker": "設定",
        "text": instruction
    },
    {
        "speaker": "ユーザー",
        "text": input
    }
]
prompt = [
    f"{uttr['speaker']}: {uttr['text']}"
    for uttr in context
]
prompt = "\n".join(prompt)
prompt = (
    prompt
    + "\n"
    + "システム: "
)
token_ids = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt")

with torch.no_grad():
    output_ids = model.generate(
        token_ids.to(model.device),
        max_new_tokens=200,
        do_sample=True,
        temperature=0.5,
        pad_token_id=tokenizer.pad_token_id,
        bos_token_id=tokenizer.bos_token_id,
        eos_token_id=tokenizer.eos_token_id
    )

output = tokenizer.decode(output_ids.tolist()[0])
print(output)
"""
設定: 次の日本語を英語に翻訳してください。
ユーザー: 自然言語による指示に基づきタスクが解けるよう学習させることを Instruction tuning と呼びます。
システム:  Learning to solve tasks based on natural language instructions is called instruction tuning.</s>
"""

output = output[len(prompt):-len("</s>")].strip()
input = "大規模言語モデル(だいきぼげんごモデル、英: large language model、LLM)は、多数のパラメータ(数千万から数十億)を持つ人工ニューラルネットワークで構成されるコンピュータ言語モデルで、膨大なラベルなしテキストを使用して自己教師あり学習または半教師あり学習によって訓練が行われる。"

context.extend([
    {
        "speaker": "システム",
        "text": output
    },
    {
        "speaker": "ユーザー",
        "text": input
    }
])
prompt = [
    f"{uttr['speaker']}: {uttr['text']}"
    for uttr in context
]
prompt = "\n".join(prompt)
prompt = (
    prompt
    + "\n"
    + "システム: "
)
token_ids = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt")

with torch.no_grad():
    output_ids = model.generate(
        token_ids.to(model.device),
        max_new_tokens=200,
        do_sample=True,
        temperature=0.5,
        pad_token_id=tokenizer.pad_token_id,
        bos_token_id=tokenizer.bos_token_id,
        eos_token_id=tokenizer.eos_token_id
    )

output = tokenizer.decode(output_ids.tolist()[0])
print(output)
"""
設定: 次の日本語を英語に翻訳してください。
ユーザー: 自然言語による指示に基づきタスクが解けるよう学習させることを Instruction tuning と呼びます。
システム: Learning to solve tasks based on natural language instructions is called instruction tuning.
ユーザー: 大規模言語モデル(だいきぼげんごモデル、英: large language model、LLM)は、多数のパラメータ(数千万から数十億)を持つ人工ニューラルネットワークで構成されるコンピュータ言語モデルで、膨大なラベルなしテ キストを使用して自己教師あり学習または半教師あり学習によって訓練が行われる。
システム:  Large language models (LLMs) are computer language models consisting of a deep artificial neural network with millions to billions of parameters that are trained by self-supervised learning or semi-supervised learning using vast unlabeled text corpora.</s>
"""

Tokenization

The model uses the original llama-2 tokenizer.


How to cite

@misc{RinnaYouri7bChat, 
    url={https://huggingface.co/rinna/youri-7b-chat}, 
    title={rinna/youri-7b-chat}, 
    author={Zhao, Tianyu and Sawada, Kei}
}

License

The llama2 license