Aerner LM-v1

事前学習から全部日本語で学習させたモデルです。 LLaMAベースで、24GBのVRAMで事前学習できる規模に小さなモデルです。 なかなか動作は高速です。

事前学習からちゃんとした日本語を食べさせてあげて、丁寧に育てたら良い子に育つのか実験しました。 ハッキリ言って、知識を持てるほど学習していないし(小さすぎてできないし)、特に役に立つ回答はしてくれませんが、 結構なんでやねん!!!ってツッコみたくなる文章を書いてくれます。 日本語に関しては、一応ちゃんとしてるよ。

サンプルコード。モデルのロードは少し時間が掛かりますが、Inferenceは結構速いです。 GenerationConfigが必須。モデルが小さいので、beam searchや repeat関係は結構重要。

from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig
import torch
import time
import random
import numpy as np

#
# Fix seed
#
seed = 42

random.seed(seed)
# Numpy
np.random.seed(seed)
# Pytorch
torch.manual_seed(seed)
torch.cuda.manual_seed(seed)
torch.backends.cudnn.deterministic = True
torch.use_deterministic_algorithms = True

torch.set_default_dtype(torch.bfloat16)



model_id = "aerner/lm-v1"


text = """### Instruction:
東京駅について説明してください。


### Context:



### Answer:
"""

with torch.no_grad():
    tokenizer = AutoTokenizer.from_pretrained(model_id)
    tokenized_input = tokenizer(text, return_tensors="pt").to('cuda')

    model = AutoModelForCausalLM.from_pretrained(
        model_id, device_map="auto", torch_dtype=torch.bfloat16)

    generation_config = GenerationConfig(
        max_new_tokens=256,
        min_new_tokens=1,
        early_stopping=True,
        do_sample=True,

        num_beams=8,
        temperature=1.0,
        top_p=0.6,
        penalty_alpha=0.4,
        no_repeat_ngram_size=4,
        repetition_penalty=1.4,

        remove_invalid_values=True,
        num_return_sequences=1,
    )

    start = time.time()

    generation_output = model.generate(
        input_ids=tokenized_input['input_ids'],
        generation_config=generation_config,
        return_dict_in_generate=True,
        output_scores=True,
    )

    for s in generation_output.sequences:
        output = tokenizer.decode(s)
        print(output)

    print(time.time() - start)
Downloads last month
19
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Datasets used to train aerner/lm-v1