ptrdvn's picture
Update README.md
80e1691 verified
|
raw
history blame
6.86 kB
metadata
license: other
license_name: llama-3
license_link: https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct/raw/main/LICENSE
base_model: meta-llama/Meta-Llama-3-8B-Instruct
tags:
  - generated_from_trainer
model-index:
  - name: >-
      workspace/llm_training/axolotl/llama3-ja/output_openchat_megagon_lbgpt4_ja_8B_instruct
    results: []

Suzume - a Japanese tree sparrow

Suzume

This Suzume 8B, a Japanese finetune of Llama 3.

Llama 3 has exhibited excellent performance on many English language benchmarks. However, it also seemingly been finetuned on mostly English data, meaning that it will respond in English, even if prompted in Japanese.

We have fine-tuned Llama 3 on more than 3,000 Japanese conversations meaning that this model has the intelligence of Llama 3 but has the added ability to chat in Japanese.

Please feel free to comment on this model and give us feedback in the Community tab!

How to use

You can use the original trained model with vLLM like so:

from vllm import LLM, SamplingParams

sampling_params = SamplingParams(temperature=0.8, top_p=0.95)

llm = LLM(model="lightblue/suzume-llama-3-8B-japanese")

prompts = [
  "東京のおすすめの観光スポットを教えて下さい",
]

outputs = llm.generate(prompts, sampling_params)

for output in outputs:
    prompt = output.prompt
    generated_text = output.outputs[0].text
    print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")

Evaluation scores

We find that this is the best performing model in the 7/8B class of LLMs on a multitude of Japanese language benchmarks.

We calculate our Japanese evaluation scores using our lightblue-tech/japanese_llm_eval repo.

image/png

We also compare our Japanese model to our multilingual model using our multilingual_mt_bench repo.

lightblue/suzume-llama-3-8B-japanese lightblue/suzume-llama-3-8B-multilingual Nexusflow/Starling-LM-7B-beta gpt-3.5-turbo
Japanese 🇯🇵 6.24 6.56 6.22 7.84

Here, we find that our multilingual model outperforms our Japanese model on the Japanese MT-Bench benchmark, indicating that our multilingual model was able to generalize better to the Japanese MT-Bench benchmark from training on more data, even if that added data was not in Japanese.

Note - the discrepancy between the MT-Bench scores of the first and second evaluation of lightblue/suzume-llama-3-8B-japanese are due to the difference in system message of the two evaluation harnesses. The former's system message is in Japanese while the latter's is in English.

Training data

We train on three sources of data to create this model

Training config

Built with Axolotl

See axolotl config

axolotl version: 0.4.0

base_model: meta-llama/Meta-Llama-3-8B-Instruct
model_type: LlamaForCausalLM
tokenizer_type: AutoTokenizer  # PreTrainedTokenizerFast

load_in_8bit: false
load_in_4bit: false
strict: false

datasets:
  - path: /workspace/llm_training/axolotl/llama3-ja/openchat_megagon_lbgpt4_ja.json
    ds_type: json # see other options below
    type: sharegpt
    conversation: llama-3
dataset_prepared_path: /workspace/llm_training/axolotl/llama3-ja/prepared_openchat_megagon_lbgpt4_ja
val_set_size: 0.01
output_dir: /workspace/llm_training/axolotl/llama3-ja/output_openchat_megagon_lbgpt4_ja_8B_instruct

sequence_len: 8192
sample_packing: true
pad_to_sequence_len: true
eval_sample_packing: False

use_wandb: true
wandb_project: axolotl
wandb_entity: peterd
wandb_name: openchat_megagon_lbgpt4_ja_8B_instruct

gradient_accumulation_steps: 2
micro_batch_size: 2
num_epochs: 1
optimizer: paged_adamw_8bit
lr_scheduler: cosine
learning_rate: 1e-5

train_on_inputs: false
group_by_length: false
bf16: auto
fp16:
tf32: false

gradient_checkpointing: true
gradient_checkpointing_kwargs:
  use_reentrant: false
early_stopping_patience:
resume_from_checkpoint:
logging_steps: 1
xformers_attention:
flash_attention: true

warmup_steps: 10
evals_per_epoch: 5
eval_table_size:
saves_per_epoch: 1
debug:
deepspeed: /workspace/axolotl/deepspeed_configs/zero2.json
weight_decay: 0.0
special_tokens:
  pad_token: <|end_of_text|>

Training procedure

Training hyperparameters

The following hyperparameters were used during training:

  • learning_rate: 1e-05
  • train_batch_size: 2
  • eval_batch_size: 2
  • seed: 42
  • distributed_type: multi-GPU
  • num_devices: 3
  • gradient_accumulation_steps: 2
  • total_train_batch_size: 12
  • total_eval_batch_size: 6
  • optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  • lr_scheduler_type: cosine
  • lr_scheduler_warmup_steps: 10
  • num_epochs: 1

Training results

Training Loss Epoch Step Validation Loss
1.303 0.08 1 1.2664
1.4231 0.23 3 1.2409
1.1007 0.46 6 1.0264
1.0635 0.69 9 1.0154
1.0221 0.92 12 0.9555

Framework versions

  • Transformers 4.40.0.dev0
  • Pytorch 2.2.1+cu121
  • Datasets 2.18.0
  • Tokenizers 0.15.0