CoolFace
Modelpublic

ce-lery/japanese-mistral-300m-base

sourceHugging Faceupdated 3y agoView on Hugging Face
4likes737downloads
Model Card

<!-- This model card has been generated automatically according to the information the Trainer had access to. You should probably proofread and complete it, then remove this comment. -->

japanese-mistral-300m-base

Overview

Welcome to my model card!

This Model feature is ...

  • —Suppression of unknown word generation by using byte fallback in SentencePiece tokenizer and conversion to huggingface Tokenizers format
  • —Pretrained by wikipedia dataset and cc100 dataset
  • —Use of Mistral 300M

Yukkuri shite ittene!

How to use the model

python
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
import torch

MODEL_NAME = "ce-lery/japanese-mistral-300m-base"
torch.set_float32_matmul_precision('high')

DEVICE = "cuda"
if torch.cuda.is_available():
    print("cuda")
    DEVICE = "cuda"
else:
    print("cpu")
    DEVICE = "cpu"

tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME,use_fast=False)
model = AutoModelForCausalLM.from_pretrained(
    MODEL_NAME,
    trust_remote_code=True,
).to(DEVICE)

# streamer = TextStreamer(tokenizer)

prompt = "大規模言語モデルとは、"

inputs = tokenizer(prompt, add_special_tokens=False,return_tensors="pt").to(model.device)
with torch.no_grad():

    outputs = model.generate(
        inputs["input_ids"],
        max_new_tokens=256,
        do_sample=True,
        early_stopping=False,
        top_p=0.95,
        top_k=50,
        temperature=0.9,
        # streamer=streamer,
        no_repeat_ngram_size=2,
        num_beams=3
    )

print(outputs.tolist()[0])
outputs_txt = tokenizer.decode(outputs[0])
print(outputs_txt)

Receipe

If you want to restruct this model, you can refer this Github repository.

I wrote the receipe for struction this model. For example,

  • —Preprocess with sentencepiece
  • —Pretraining with flash attention2 and torch.compile and DeepSpeed
  • —Fine-tuning with databricks-dolly-15k-ja

If you find my mistake,error,...etc, please create issue. If you create pulreqest, I'm very happy!

Training procedure

Training hyperparameters

The following hyperparameters were used during training:

  • —learning_rate: 0.0006
  • —trainbatchsize: 4
  • —evalbatchsize: 4
  • —seed: 42
  • —distributed_type: multi-GPU
  • —gradientaccumulationsteps: 64
  • —totaltrainbatch_size: 256
  • —optimizer: Adam with betas=(0.9,0.95) and epsilon=0.0001
  • —lrschedulertype: cosine
  • —lrschedulerwarmup_steps: 1000
  • —num_epochs: 1
  • —mixedprecisiontraining: Native AMP

Training results

Training LossEpochStepValidation Loss
4.29110.1250004.2914
3.97090.24100003.9900
3.82290.36150003.8388
3.71970.47200003.7454
3.6520.59250003.6739
3.5970.71300003.6177
3.55540.83350003.5770
3.5360.95400003.5582

Framework versions

  • —Transformers 4.35.2
  • —Pytorch 2.1.1+cu121
  • —Datasets 2.14.5
  • —Tokenizers 0.14.1